Jhon Sebastian Vargas Fernandez
Ing. Quimica
Carlos Daniel Albarracin Cruz
Ing. Sistemas
Juan Sebastian Parra Cardenas
Ing. Electrica
Juan Diego Blanco Segura
Ing. Quimica
Santiago Cubides
Ing. Sistemas
library(ggplot2)
library(dplyr)
library(flextable)
library(nortest)
set.seed(123)

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.

A) Muestra de 16 datos.

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
cat("Porcentaje que contiene la media:", 
    mean(resultados_16$contiene_media) * 100)
## Porcentaje que contiene la media: 96

B) Muestra de 25 datos.

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
cat("Porcentaje que contiene la media:", 
    mean(resultados_25$contiene_media) * 100)
## Porcentaje que contiene la media: 91

C) Muestra de 36 datos.

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
cat("Porcentaje que contiene la media:", 
    mean(resultados_36$contiene_media) * 100)
## Porcentaje que contiene la media: 94