set.seed(412)
mu= 35.5; sigma= 4.5 # Estos son los parámetros de la población de la que se sacan las muestras
n= 30
ns= 100 # Simulando 100 muestras de n= 30 cada una, de la población mencionada arriba
mean <- numeric(ns) # Vector para almacenar los promedios de cada muestra
sd <- numeric(ns) # Vector para almacenar las desviaciones típicas de cada muestra
ee <- numeric(ns) # Vector para almacenar los errores típicos calculados con cada muestra
ls <- numeric(ns) # Vector para almacenar los límites superiores IC.95%
li <- numeric(ns) # Vector para almacenar los límites inferiores IC.95%
### Simulando los muestreos aleatorios
for (i in 1:ns) {
x <- rnorm(n=n, mean=mu, sd= sigma) # muestra aleatoria de tamaño (n)= 30
mean[i] <- mean(x)
sd[i] <- sd(x)
ee[i] <- sd(x)/sqrt(n)
ls[i] <- mean(x) + (1.96 *(sd(x)/sqrt(n)) )
li[i] <- mean(x) - (1.96 * (sd(x)/sqrt(n)) )
}
### Aquí podemos ver una posible muestra que pudo haber salido de esta población (la #50)
LS <- ls[50] ## Límite superior [IC.95%]
LI <- li[50] ## Límite inferior [IC.95%]
valores <- data.frame(cbind("límite inferior" = LI, "promedio"= mean[50], "límite superior"= LS), row.names = NULL)
valores
## límite.inferior promedio límite.superior
## 1 33.24954 35.06675 36.88395
a <- data.frame( cbind(mean, sd,ee,li,ls) ) ## Aquí las 100 muestras con sus IC.95% para la media de la población. (Ver gráfico al final)
plot(mean, type="n", ylim=c(min(a$li), max(a$ls))) # Aquí las 100 muestras con sus IC.95% para la media de la población
abline( h= mu, col=2, lwd= 3)
points(a$mean, pch=20)
points(ns/2, a$mean[50], col="blue", pch=20, cex= 2)
segments(c(1:ns),a$li, c(1:ns), a$ls)
segments(ns/2,LI, ns/2, LS, col="blue", lwd= 3)
Vemos en color rojo, mu=35.5, la media poblacional; y en azul, la estimación de la media poblacional (IC.95%) a partir de la muestra #50. Teóricamente, el 5% de las muestras, no contiene a mu.