En esta actividad se simulan dos tipos de distribuciones (Normal y Exponencial) para estimar la media poblacional y calcular el intervalo de confianza del 95%.
set.seed(918)
n <- 20
replicas <- 30
promedios_normal <- replicate(replicas, mean(rnorm(n, mean = 15, sd = 5)))
promedios_normal
## [1] 14.37396 15.12705 14.65880 15.96216 15.51175 16.50018 14.65503 14.21101
## [9] 15.69697 16.92851 15.22403 14.90179 13.78487 16.03668 16.28252 15.22204
## [17] 18.81978 17.47733 15.98620 13.10230 15.20750 15.56373 12.52294 15.85289
## [25] 14.29406 15.63190 15.67718 14.02967 16.20684 16.04294
promedios_normal <- replicate(replicas, mean(rnorm(n, mean = 15, sd = 5)))
promedios_normal
## [1] 13.58442 15.23401 15.25115 17.31169 15.48314 16.10676 12.67289 15.57862
## [9] 16.54404 15.05896 16.62248 15.96032 14.31387 15.35181 13.66817 15.31956
## [17] 17.47773 14.81109 14.56849 14.30177 13.56658 17.62934 16.74258 14.06106
## [25] 15.30566 17.44384 13.51990 15.15044 18.48592 14.44546
promedios_exponencial <- replicate(replicas, mean(rexp(n, rate = 1/3.5)))
promedios_exponencial
## [1] 2.919395 4.196069 3.797266 4.564394 3.764193 3.614262 3.725186 2.218576
## [9] 2.489003 2.466997 3.970335 3.919318 4.092186 3.650303 2.673587 3.785614
## [17] 3.858793 3.209714 3.239874 3.375227 2.742227 3.566851 2.546269 2.930833
## [25] 3.886627 2.683877 3.242156 3.344192 3.323945 4.369076
IC_media <- function(datos, nivel = 0.95) {
media <- mean(datos)
desv <- sd(datos)
n <- length(datos)
error <- qt((1 + nivel)/2, df = n - 1) * desv / sqrt(n)
c(inf = media - error, sup = media + error)
}
# Distribución Normal
ic_normal <- IC_media(promedios_normal)
media_normal <- mean(promedios_normal)
desv_normal <- sd(promedios_normal)
# Distribución Exponencial
ic_exponencial <- IC_media(promedios_exponencial)
media_exp <- mean(promedios_exponencial)
desv_exp <- sd(promedios_exponencial)
# Tabla resumen
resultados <- data.frame(
Distribucion = c("Normal", "Exponencial"),
Media_Muestral = c(media_normal, media_exp),
Desviacion = c(desv_normal, desv_exp),
IC_95_inf = c(ic_normal[1], ic_exponencial[1]),
IC_95_sup = c(ic_normal[2], ic_exponencial[2])
)
resultados
## Distribucion Media_Muestral Desviacion IC_95_inf IC_95_sup
## 1 Normal 15.385725 1.4275177 14.852682 15.918769
## 2 Exponencial 3.405545 0.6152095 3.175822 3.635268
par(mfrow = c(1, 2))
hist(promedios_normal, main = "Promedios - Distribución Normal",
xlab = "Tiempo promedio (min)", col = "lightblue", border = "white")
hist(promedios_exponencial, main = "Promedios - Distribución Exponencial",
xlab = "Tiempo promedio (min)", col = "lightgreen", border = "white")