Mostraremos a continuación el comportamiento de la distibución de la media muestral \(\bar{X}\) en diferentes escenarios.
mu <- 50 # media
sd <- 1 # desviación estándar
n <- 100 # tamaño de la muestra
m <- 1000 # número de réplicas
set.seed(1981)
datos <- rnorm(n*m,mu,sd) # simulamos datos
Xbar <- rep(0)
Z <- rep(0)
for(i in 1:m){
Xi <- sample(datos,n)
Xbar[i] <- mean(Xi)
Z[i] <- (Xbar[i]-mu)/(sd/sqrt(n)) # normal estándar
}
Ahora, debemos graficar las réplicas, para observar el comportamiento de la media muestral \(\bar{X}\).
par(mfrow=c(1,2))
hist(Xbar,freq = F,main="",xaxs="i",yaxs="i",xlim=c(49.3,50.6),
ylim=c(0,4),xlab="Xbar",ylab="Densidad",col="lightblue")
x <-seq(49.3,50.6,length=1000)
lines(x,dnorm(x,mu,sd/sqrt(n)),col="blue",lwd=2)
hist(Z,freq = F,main="",xaxs="i",yaxs="i",xlim=c(-4,4),ylim=c(0,0.4),xlab="Z",ylab="",col="lightpink")
z <- seq(-4,4,length=1000)
lines(z,dnorm(z),col="red",lwd=2)
Notamos la forma acampanada de la distribución normal tanto de \(\bar{X}\) como de \(Z\). Es importante tener en cuenta que era algo de esperarse, pues desde el inicio los datos son normales, y por resultado ya visto, la distribución de la media muestral \(\bar{X}\) es exactamente normal.
A continuación veamos un ejemplo de una variable que no es normal, pero al ir aumentando el tamaño de la muestra, la distribución de la media se va aproximando a la normal, resultado del TCL.
Supongamos un vector de tamaños de muestras y tamaños de réplicas. En el siguiente código simularemos los datos.
nn <- 20
p <- 0.5
n <- c(10,20,30,100,1000,10000) # vector de tamaños de muestras
m <- c(10,20,30,100,1000,10000) # número de réplicas
Xi <- list(0)
for(k in 1:6){
set.seed(2021)
Xi[[k]] <-matrix(rbinom(n[k]*m[k],nn,p),ncol=m[k],nrow=n[k])
}
Ahora calculamos las medias y graficamos cada distribución.
mu <- nn*p
sd <- sqrt(nn*p*(1-p))
Xbar <- list(0)
Z <- list(0)
for(k in 1:6){
Xbar[[k]] <- apply(Xi[[k]],2,mean)
Z[[k]] <- (Xbar[[k]]-mu)/(sd/sqrt(n[k]))
}
par(mfrow=c(2,3))
for(k in 1:6){
hist(Z[[k]],freq=F,main="",xaxs="i",yaxs="i",xlab="",ylab="",
xlim=c(-4,4),ylim=c(0,0.5),col="lightgreen")
z <- seq(-4,4,length=1000)
lines(z,dnorm(z),col="green4",lwd=2)
}
Observamos como cada vez que aumentamos el tamaño de la muestra, la distribución de la media muestral se aproxima a una normal estándar, como lo asegura en TCL.