Está en la página 1de 14

ESTUDIO DE

DISTRIBUCIONES
MUESTRALES POR
SIMULACIÓN
Apunte de clase
Autor: Marcos Prunello
Revisado: Nora Arnesi
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

UNIVERSIDAD NACIONAL DE ROSARIO


ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN
1. DISTRIBUCIÓN DE LA MEDIA MUESTRAL EN UNA POBLACIÓN NORMAL

Sean X 1 , X 2 , … , X n variables aleatorias independientes con la misma distribución N ( μ , σ ). La


distribución de la media aritmética es:
n
σ 1
(
X́ N μ ,
√n )
, X́= ∑ X i
n i=1
Para verificar de manera empírica lo anterior, se simulan muchas muestras (por ejemplo, 2000 ) de
distintos tamaños (por ejemplo, n=5 ,20 , 50 ó 100 ) de una variable con distribución N ( 100 ,10 ). Para cada
una de estas muestras se calcula la media aritmética X́ y se confecciona un histograma de los 2000 valores
obtenidos de X́ .
Dado que la media tiene distribución normal, los histogramas generados deben ser aproximadamente
simétricos, de forma campanular y centrados en un valor cercano a μ=100. Además, en los histogramas
debe verse reflejada la menor dispersión en la distribución de la media a medida que aumenta el tamaño
muestral. Para facilitar la comparación entre la distribución de la media obtenida empíricamente y la
correspondiente distribución normal teórica, esta última se representa con una curva y se confecciona un
gráfico de probabilidad normal (o QQ Normal).

1
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

2
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

2. DISTRIBUCIÓN DE LA MEDIA MUESTRAL EN UNA POBLACIÓN NO NORMAL

Sean X 1 , X 2 , … , X n variables aleatorias independientes e igualmente distribuidas con E ( X i ) =μ y


2
Var ( X i ) =σ finitas, cualquiera sea su distribución de probabilidad, el Teorema Central del Límite indica que
para un tamaño muestral suficientemente grande:
σ

n→∞ (
N μ,
√n )
Para verificar de manera empírica lo anterior, se simulan muchas muestras (por ejemplo, 2000 ) de
distintos tamaños (por ejemplo, n=5 ,10 , 40 o100 ) de una variable con distribución exponencial de
parámetro λ=1 (su esperanza y variancia teóricas son iguales a 1; μ=σ 2=1). Para cada una de estas
muestras se calcula la media aritmética X́ y se confecciona un histograma de los 2000 valores obtenidos de
X́ .
Dado que la distribución de la media se aproxima a la normal a medida que el tamaño muestral
aumenta, debe observarse que los histogramas generados son más simétricos para n mayores, centrados en
un valor cercano a μ=1. También en los histogramas debe verse reflejada la menor dispersión en la
distribución de la media a medida que aumenta el tamaño muestral. En cada histograma se representa con
una curva la distribución normal con esperanza μ y desvío σ / √ n y puede apreciarse que la misma describe
mejor a la distribución de la media cuanto mayor es el tamaño muestral.

3
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

4
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

3. DISTRIBUCIÓN DE LA VARIANCIA MUESTRAL

Sean X 1 , X 2 , … , X n variables aleatorias independientes con la misma distribución N ( μ , σ ). Entonces:


( n−1 ) S 2 2 2 1
n
2
Y= 2
χ n−1 , S = ∑ ( X i− X́ )
σ n−1 i=1
Recordando que la esperanza de una variable chi-cuadrado es igual a sus grados de libertad y que su
variancia es el doble de los grados de libertad, se tiene que E ( Y )= ( n−1 ) y Var ( Y )=2 ( n−1 ).
Para verificar de manera empírica lo anterior, se simulan muchas muestras (por ejemplo, 2000 ) de
distintos tamaños (por ejemplo, n=5 ,10 , 20 o 40) de una variable con distribución N (100 , 10). Para cada
una de estas muestras se calcula la variancia muestral S2 y el correspondiente valor de Y . Luego se
confecciona un histograma de los 2000 valores obtenidos de Y .
Dado que la variable Y tiene distribución chi-cuadrado con n−1 grados de libertad, los histogramas
generados deben presentar una marcada asimetría a la derecha cuando el tamaño muestral es pequeño. Se
debe observar una pérdida de dicha asimetría al aumentar n , ya que la distribución chi-cuadrado se
aproxima a la normal al aumentar sus grados de libertad. Sobre cada histograma se representa la curva de la
distribución teórica correspondiente.

5
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

4. DISTRIBUCIÓN DE LA PROPORCIÓN MUESTRAL

Sea p la proporción poblacional. Para un tamaño muestral n suficientemente grande, se llega a


demostrar que la distribución de la proporción muestral ^p de una muestra de tamaño n se aproxima a la
normal:
p(1−p)
^p
n →∞
( √
N p,
n )
Para verificar de manera empírica lo anterior, se simulan muchas muestras (por ejemplo, 2000 ) de
distintos tamaños (por ejemplo, n=5 ,20 , 30 o 100 ) a partir de una población con p=0.3. Para cada una de
estas muestras se calcula la proporción muestral ^py se confecciona un histograma de los 2000 valores
obtenidos.
Dado que la distribución de ^p se aproxima a la normal a medida que el tamaño muestral aumenta, debe
observarse que los histogramas generados son más simétricos y de forma campanular cuando n es grande.
Se debe apreciar además que los valores obtenidos de ^p están centrados alrededor del verdadero valor
p=0.3 y que su dispersión disminuye al incrementar el tamaño de la muestra. En cada histograma se
representa con una curva la distribución normal con esperanza p y desvío √ pq /n y puede apreciarse que la
misma describe mejor a la distribución de la media cuanto mayor es n .

6
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

BIBLIOGRAFÍA CONSULTADA

Meyer, P. (1973). Probabilidad y Aplicaciones Estadísticas. Wilmington: Addison-Wesley Iberoamericana.

SOFTWARE UTILIZADO

R Core Team (2014). R: A language and environment for statistical computing. R Foundation for Statistical
Computing, Vienna, Austria. URL http://www.R-project.org/.

7
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

CÓDIGO DE R
library(lattice)
library(gridExtra)

1. DISTRIBUCIÓN DE LA MEDIA MUESTRAL EN UNA POBLACIÓN NORMAL

# Elegir valores (4 tamaños muestrales distintos)


mu <- 100
sigma <- 10
cant <- 2000
n <- c(5, 20, 50, 100)

# Esperanza y error estándar de la media muestral


esperanza <- mu
EE <- sigma/sqrt(n)

# Histogramas y gráficos de probabilidad normal


hist.y.qq <- function(i){
tabla <- matrix( data = rnorm(cant * n[i], mean = mu, sd = sigma), nrow = n[i],
ncol = cant )
todas.las.medias <- colMeans(tabla)
return(list(
histogram(todas.las.medias,
type = "density",
main = list(paste("Distribución de la media muestral.\n",
cant, " muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Media aritmética", cex=1.1),
ylab = list("Densidad", cex=1.1),
col = "darkolivegreen3",
ylim = c(0,0.43),
xlim = c(80,120),
scales = list( tck=c(1,0), cex = 1.2),
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "black", lwd = 1.7,
args = list(mean=esperanza,sd=EE[[i]]))
grid.text(paste("Prom. de las\nmedias = ",
round(mean(todas.las.medias),2), "\nDE de las\nmedias = ",
round(sd(todas.las.medias),2)), unit(.78, "npc"), unit(.75,
"npc"),gp=gpar(fontsize=13))
grid.text(substitute(mu == k, list(k=esperanza)),unit(.18,
"npc"), unit(.9, "npc"),gp=gpar(fontsize=13))
grid.text(substitute(sigma == k, list(k=sigma)), unit(.18,
"npc"), unit(.8, "npc"),gp=gpar(fontsize=13))
grid.text(substitute(sigma/sqrt(n) == k,
list(k=round(EE[[i]],2))), unit(.18, "npc"), unit(.68,
"npc"),gp=gpar(fontsize=13))
}),
qqmath(todas.las.medias,
main = list(paste("QQ Normal de la variable media aritmética.\n",
cant, " muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Cuantiles normales", cex=1.1),
ylab = list("Media aritmética", cex=1.1),
scales = list( tck=c(1,0), cex = 1.2),
prepanel = prepanel.qqmathline,
panel = function(x, ...) {
panel.qqmathline(x, ...)
panel.qqmath(x, ...)
})

8
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

))}
print(hist.y.qq(1)[[1]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[1]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[1]], position=c(0,0,0.5,0.5), more=T)
print(hist.y.qq(4)[[1]], position=c(0.5,0,1,0.5), more=F)
print(hist.y.qq(1)[[2]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[2]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[2]], position=c(0,0,0.5,0.5), more=T)
print(hist.y.qq(4)[[2]], position=c(0.5,0,1,0.5), more=F)

2. DISTRIBUCIÓN DE LA MEDIA MUESTRAL EN UNA POBLACIÓN NO NORMAL

# Elegir valores (4 tamaños muestrales distintos)


cant <- 2000
n <- c(5, 10, 40, 100)

# Esperanza y error estándar de la media muestral


esperanza <- 1
EE <- 1/sqrt(n)

# Histogramas y gráficos de probabilidad normal


hist.y.qq <- function(i){
lambda <- 1
tabla <- matrix( data = rexp(cant * n[i], rate = lambda), nrow = n[i], ncol =
cant )
todas.las.medias <- colMeans(tabla)
return(list(
histogram(todas.las.medias,
type = "density",
main = list(paste("Distribución de la media muestral.\n", cant, "
muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Media aritmética", cex=1.1),
ylab = list("Densidad", cex=1.1),
col = "darkolivegreen3",
ylim = c(0,4.2),
xlim = c(0,2.8),
scales = list( tck=c(1,0), cex = 1.2),
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "black", lwd = 1.7, args =
list(mean=esperanza,sd=EE[[i]]))
grid.text(paste("Prom. de las\nmedias = ",
round(mean(todas.las.medias),2), "\nDE de las\nmedias = ",
round(sd(todas.las.medias),2)), unit(.8, "npc"), unit(.75,
"npc"),gp=gpar(fontsize=13))
grid.text(substitute(mu == k, list(k=esperanza)),unit(.18,
"npc"), unit(.9, "npc"),gp=gpar(fontsize=13))
grid.text(substitute(sigma == k, list(k=sqrt(lambda))), unit(.18,
"npc"), unit(.8, "npc"),gp=gpar(fontsize=13))
grid.text(substitute(sigma/sqrt(n) == k,
list(k=round(EE[[i]],2))), unit(.18, "npc"), unit(.68,
"npc"),gp=gpar(fontsize=13))
}),
qqmath(todas.las.medias,
main = list(paste("QQ Normal de la variable media aritmética.\n",
cant, " muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Cuantiles normales", cex=1.1),
ylab = list("Media aritmética", cex=1.1),
scales = list( tck=c(1,0), cex = 1.2),

9
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

prepanel = prepanel.qqmathline,
panel = function(x, ...) {
panel.qqmathline(x, ...)
panel.qqmath(x, ...)
})))}
print(hist.y.qq(1)[[1]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[1]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[1]], position=c(0,0,0.5,0.5), more=T)
print(hist.y.qq(4)[[1]], position=c(0.5,0,1,0.5), more=F)
print(hist.y.qq(1)[[2]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[2]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[2]], position=c(0,0,0.5,0.5), more=T)
print(hist.y.qq(4)[[2]], position=c(0.5,0,1,0.5), more=F)

3. DISTRIBUCIÓN DE LA VARIANCIA MUESTRAL

# Elegir valores (4 tamaños muestrales distintos)


mu <- 100
sigma <- 10
cant <- 2000
n <- c(5, 10, 20, 40)

# Esperanza y error estándar de la variancia muestral


esperanza <- n-1
EE <- 2*(n-1)

# Histogramas
histogramas <- function(i){
tabla <- matrix( data = rnorm(cant * n[i], mean = mu, sd = sigma), nrow = n[i],
ncol = cant )
s2 <- apply(tabla,2,var)
y <- s2 * (n[i]-1) / (sigma^2)
return(
histogram(y,
type = "density",
main = list(paste("Distribución de la variancia muestral.\n", cant,
" muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list(expression( Y == (n-1) * S^2 / sigma^2), cex=1.1),
ylab = list("Densidad", cex=1.1),
col = "darkolivegreen3",
ylim = c(0,0.2),
xlim = c(0,70),
scales = list( tck=c(1,0), cex = 1.2),

panel = function(x, ...) {


panel.histogram(x, ...)
panel.mathdensity(dmath = dchisq, col = "black", lwd = 1.7, args
= list(df = n[i]-1))
grid.text(paste("E(Y) = n-1 = ", substitute(k, list(k=n[i]-1))),
unit(.99, "npc"), unit(.95, "npc"),gp=gpar(fontsize=13), just="right")
grid.text(paste("Var(Y) = 2(n-1) = ", substitute(k,
list(k=2*(n[i]-1)))), unit(.99, "npc"), unit(.82, "npc"),gp=gpar(fontsize=13),
just="right")
ver = substitute(paste(sigma(Y) == sqrt(2*(n-1)), " =", k),
list(k=round(sqrt(2*(n[i]-1)),2)))
grid.text(ver, unit(.99, "npc"), unit(.67,
"npc"),gp=gpar(fontsize=13), just="right")

10
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

grid.text(paste("Prom. de las Y = ", round(mean(y),2), "\


nVariancia de las Y = ", round(var(y),2), "\nDE de las Y = ", round(sd(y),2),
sep=""), unit(.99, "npc"), unit(.35, "npc"),gp=gpar(fontsize=13), just = "right")
})

)}
print(histogramas(1), position=c(0,0.5,0.5,1), more=T)
print(histogramas(2), position=c(0.5,0.5,1,1), more=T)
print(histogramas(3), position=c(0,0,0.5,0.5), more=T)
print(histogramas(4), position=c(0.5,0,1,0.5), more=F)

#### ¿Y SI X NO ES NORMAL? ####


# Repetimos lo anterior pero con una variable con distribución exponencial
cant <- 2000
n <- c(5, 10, 20, 40)
gl <- n-1
2gl <- 2*(n-1)

# Histogramas
histogramas <- function(i){
tabla <- matrix( data = rexp(cant * n[i], rate=1), nrow = n[i], ncol = cant )
s2 <- apply(tabla,2,var)
y <- s2 * (n[i]-1)
return(
histogram(y,
type = "density",
main = list(paste("Distribución de la variancia muestral.\n", cant,
" muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list(expression( Y == (n-1) * S^2 / sigma^2), cex=1.1),
ylab = list("Densidad", cex=1.1),
col = "darkolivegreen3",
ylim = c(0,0.14),
xlim = c(0,110),
scales = list( tck=c(1,0), cex = 1.2),

panel = function(x, ...) {


panel.histogram(x, ...)
panel.mathdensity(dmath = dchisq, col = "black", lwd = 1.7, args
= list(df = n[i]-1))
grid.text(paste("n-1 = ", substitute(k, list(k=n[i]-1))),
unit(.99, "npc"), unit(.95, "npc"),gp=gpar(fontsize=13), just="right")
grid.text(paste("2(n-1) = ", substitute(k, list(k=2*(n[i]-1)))),
unit(.99, "npc"), unit(.82, "npc"),gp=gpar(fontsize=13), just="right")
ver = substitute(paste(sqrt(2*(n-1)), " =", k),
list(k=round(sqrt(2*(n[i]-1)),2)))
grid.text(ver, unit(.99, "npc"), unit(.67,
"npc"),gp=gpar(fontsize=13), just="right")

grid.text(paste("Prom. de las Y = ", round(mean(y),2), "\


nVariancia de las Y = ", round(var(y),2), "\nDE de las Y = ", round(sd(y),2),
sep=""), unit(.99, "npc"), unit(.35, "npc"),gp=gpar(fontsize=13), just = "right")
})

)}
print(histogramas(1), position=c(0,0.5,0.5,1), more=T)
print(histogramas(2), position=c(0.5,0.5,1,1), more=T)
print(histogramas(3), position=c(0,0,0.5,0.5), more=T)
print(histogramas(4), position=c(0.5,0,1,0.5), more=F)

11
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

4. DISTRIBUCIÓN DE LA PROPORCIÓN MUESTRAL

# Elegir valores (4 tamaños muestrales distintos)


p <- 0.3
cant <- 2000
n <- c(5, 20, 30, 100)

# Esperanza y error estándar de la proporción muestral


esperanza <- p
EE <- sqrt(p*(1-p)/n)

# Histogramas y gráficos de probabilidad normal


hist.y.qq <- function(i){
tabla <- matrix( data = rbinom(cant * n[i], 1, p), nrow = n[i], ncol = cant )
proporciones.muestrales <- colMeans(tabla)
return(list(
histogram(proporciones.muestrales,
type = "density",
main = list(paste("Distribución de la proporción muestral.\n",
cant, " muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Proporción muestral", cex=1.1),
ylab = list("Densidad", cex=1.1),
col = "darkolivegreen3",
ylim = c(0,10),
xlim = c(0,1),
scales = list( tck=c(1,0), cex = 1.2),
panel = function(x, ...) {
panel.histogram(x, ...)
panel.mathdensity(dmath = dnorm, col = "black", lwd = 1.7, args =
list(mean=esperanza,sd=EE[[i]]))
grid.text(paste("Prom. de las prop.\nmuestrales = ",
round(mean(proporciones.muestrales),4), "\nDE de las prop.\nmuestrales = ",
round(sd(proporciones.muestrales),4)), unit(.99, "npc"), unit(.75,
"npc"),gp=gpar(fontsize=13), just="right")
grid.text(substitute(p == k, list(k=esperanza)),unit(.01, "npc"),
unit(.9, "npc"),gp=gpar(fontsize=13), just="left")
grid.text(substitute(sqrt(p*q/n) == k, list(k=round(EE[[i]],4))),
unit(.01, "npc"), unit(.75, "npc"),gp=gpar(fontsize=13), just="left")
}),
qqmath(proporciones.muestrales,
main = list(paste("QQ Normal de la proporción muestral.\n", cant, "
muestras de tamaño n = ",n[i],".",sep=""), cex = 1.3),
xlab = list("Cuantiles normales", cex=1.1),
ylab = list("Proporción muestral", cex=1.1),
scales = list( tck=c(1,0), cex = 1.2),
prepanel = prepanel.qqmathline,
panel = function(x, ...) {
panel.qqmathline(x, ...)
panel.qqmath(x, ...)
})))}
print(hist.y.qq(1)[[1]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[1]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[1]], position=c(0,0,0.5,0.5), more=T)
print(hist.y.qq(4)[[1]], position=c(0.5,0,1,0.5), more=F)
print(hist.y.qq(1)[[2]], position=c(0,0.5,0.5,1), more=T)
print(hist.y.qq(2)[[2]], position=c(0.5,0.5,1,1), more=T)
print(hist.y.qq(3)[[2]], position=c(0,0,0.5,0.5), more=T)

12
[MÉTODOS ESTADÍSTICOS I] ESTUDIO DE DISTRIBUCIONES MUESTRALES POR SIMULACIÓN

print(hist.y.qq(4)[[2]], position=c(0.5,0,1,0.5), more=F)

13

También podría gustarte