Realizar una simulación en R de 100 intervalos de confianza del 90% de una distribución normal con una media y desviación estándar propuesta por cada grupo y con tamaños de muestra de 16, 25 y 36 datos, con una instrucción que confirme si un intervalo dado contiene al verdadero valor del parámetro elegido o no.
media_real <- 50
sigma_real <- 8
num_sim <- 100
n <- 16
resultados_16 <- data.frame(
IC_inf = numeric(num_sim),
IC_sup = numeric(num_sim),
contiene_media = logical(num_sim)
)
for (i in 1:num_sim) {
muestra <- rnorm(n, mean = media_real, sd = sigma_real)
test <- t.test(muestra, conf.level = 0.90)
resultados_16$IC_inf[i] <- test$conf.int[1]
resultados_16$IC_sup[i] <- test$conf.int[2]
resultados_16$contiene_media[i] <- (media_real >= resultados_16$IC_inf[i] & media_real <= resultados_16$IC_sup[i])
}
head(resultados_16, 10)## IC_inf IC_sup contiene_media
## 1 48.83456 55.23812 TRUE
## 2 44.07035 50.57525 TRUE
## 3 47.90494 54.40036 TRUE
## 4 47.98507 53.45392 TRUE
## 5 45.84071 53.23541 TRUE
## 6 50.29743 54.74664 FALSE
## 7 45.77681 52.75515 TRUE
## 8 45.53105 51.13598 TRUE
## 9 44.08859 52.56841 TRUE
## 10 46.03032 53.15018 TRUE
## Porcentaje que contiene la media: 96
media_real <- 50
sigma_real <- 8
num_sim <- 100
n <- 25
resultados_25 <- data.frame(
IC_inf = numeric(num_sim),
IC_sup = numeric(num_sim),
contiene_media = logical(num_sim)
)
for (i in 1:num_sim) {
muestra <- rnorm(n, mean = media_real, sd = sigma_real)
test <- t.test(muestra, conf.level = 0.90)
resultados_25$IC_inf[i] <- test$conf.int[1]
resultados_25$IC_sup[i] <- test$conf.int[2]
resultados_25$contiene_media[i] <-
(media_real >= resultados_25$IC_inf[i] &
media_real <= resultados_25$IC_sup[i])
}
head(resultados_25, 10)## IC_inf IC_sup contiene_media
## 1 49.98294 56.31983 TRUE
## 2 47.22178 53.29957 TRUE
## 3 46.79341 52.66818 TRUE
## 4 46.83060 52.58187 TRUE
## 5 47.48521 54.27359 TRUE
## 6 46.11047 51.69644 TRUE
## 7 47.51476 53.37003 TRUE
## 8 48.70932 52.82769 TRUE
## 9 47.79560 52.23238 TRUE
## 10 46.14185 52.04033 TRUE
## Porcentaje que contiene la media: 91
media_real <- 50
sigma_real <- 8
num_sim <- 100
n <- 36
resultados_36 <- data.frame(
IC_inf = numeric(num_sim),
IC_sup = numeric(num_sim),
contiene_media = logical(num_sim)
)
for (i in 1:num_sim) {
muestra <- rnorm(n, mean = media_real, sd = sigma_real)
test <- t.test(muestra, conf.level = 0.90)
resultados_36$IC_inf[i] <- test$conf.int[1]
resultados_36$IC_sup[i] <- test$conf.int[2]
resultados_36$contiene_media[i] <-
(media_real >= resultados_36$IC_inf[i] &
media_real <= resultados_36$IC_sup[i])
}
head(resultados_36, 10)## IC_inf IC_sup contiene_media
## 1 47.63157 51.67215 TRUE
## 2 46.94900 50.03126 TRUE
## 3 48.58189 52.44636 TRUE
## 4 47.07236 51.11382 TRUE
## 5 47.92654 52.48926 TRUE
## 6 48.91186 53.79581 TRUE
## 7 45.96436 50.35600 TRUE
## 8 48.57909 54.01516 TRUE
## 9 47.68379 52.80427 TRUE
## 10 45.95096 50.49544 TRUE
## Porcentaje que contiene la media: 94