El objetivo es simular dos conjuntos de datos, uno proveniente de una distribución Normal y otro de una Exponencial, para luego calcular y comparar los intervalos de confianza del 95% para la media poblacional utilizando R.
Se generan dos conjuntos de datos. Cada conjunto consta de 30 promedios, donde cada promedio se calcula a partir de una muestra de 20 observaciones.
# Fijar una semilla para que los resultados sean reproducibles
set.seed(108)
# ---- Parámetros generales de la simulación ----
n_clientes <- 20 # Tamaño de la muestra para cada réplica
n_replicas <- 30 # Número de réplicas (y de promedios a generar)
# ---- Simulación 1: Distribución Normal ----
media_normal <- 15
sd_normal <- 5
# Generamos 30 promedios. Cada uno es la media de 20 observaciones normales.
promedios_normal <- replicate(n_replicas, {
mean(rnorm(n = n_clientes, mean = media_normal, sd = sd_normal))
})
# ---- Simulación 2: Distribución Exponencial ----
media_exponencial <- 3.5
# La función rexp() usa el parámetro 'rate', que es el inverso de la media (1/media)
rate_exponencial <- 1 / media_exponencial
# Generamos 30 promedios. Cada uno es la media de 20 observaciones exponenciales.
promedios_exponencial <- replicate(n_replicas, {
mean(rexp(n = n_clientes, rate = rate_exponencial))
})
# Creamos un dataframe con los promedios generados para mostrarlo en una tabla
datos_generados <- data.frame(
Replica = 1:n_replicas,
Promedio_Normal = promedios_normal,
Promedio_Exponencial = promedios_exponencial
)
Primero, se presentan los 30 promedios generados para cada distribución.
# Usamos knitr::kable para una mejor visualización de la tabla
knitr::kable(
datos_generados,
digits = 4, # Redondear a 4 decimales
caption = "Promedios generados en cada una de las 30 réplicas."
)
| Replica | Promedio_Normal | Promedio_Exponencial |
|---|---|---|
| 1 | 15.5015 | 3.5962 |
| 2 | 14.5551 | 2.9714 |
| 3 | 14.0798 | 3.5905 |
| 4 | 15.0548 | 3.2346 |
| 5 | 14.4162 | 5.8516 |
| 6 | 14.9841 | 2.8101 |
| 7 | 14.8825 | 3.8382 |
| 8 | 14.1413 | 4.2209 |
| 9 | 13.3930 | 3.0193 |
| 10 | 15.3046 | 3.4426 |
| 11 | 15.4650 | 3.5574 |
| 12 | 14.8838 | 4.0923 |
| 13 | 13.5007 | 3.2282 |
| 14 | 16.5930 | 1.0134 |
| 15 | 13.6221 | 3.8923 |
| 16 | 14.1551 | 3.4020 |
| 17 | 17.0762 | 3.5426 |
| 18 | 13.6482 | 3.8105 |
| 19 | 16.4446 | 2.8545 |
| 20 | 16.4219 | 2.9017 |
| 21 | 14.5952 | 4.2740 |
| 22 | 15.7000 | 4.3853 |
| 23 | 14.9013 | 3.7886 |
| 24 | 15.8654 | 2.8841 |
| 25 | 13.7646 | 2.9940 |
| 26 | 13.1012 | 3.3544 |
| 27 | 16.1001 | 3.2291 |
| 28 | 14.1579 | 4.8690 |
| 29 | 15.1275 | 4.0602 |
| 30 | 14.1397 | 3.0804 |
A continuación, calculamos la media muestral, la desviación estándar y el intervalo de confianza del 95% para cada uno de los dos conjuntos de 30 promedios.
# ---- Cálculos para los promedios de la Normal ----
media_muestral_normal <- mean(promedios_normal)
sd_muestral_normal <- sd(promedios_normal)
# Usamos t.test(), que calcula directamente el intervalo de confianza
ic_test_normal <- t.test(promedios_normal, conf.level = 0.95)
# ---- Cálculos para los promedios de la Exponencial ----
media_muestral_exponencial <- mean(promedios_exponencial)
sd_muestral_exponencial <- sd(promedios_exponencial)
ic_test_exponencial <- t.test(promedios_exponencial, conf.level = 0.95)
# ---- Creación de la tabla de resumen ----
# Extraemos los límites del IC para ponerlos en columnas separadas
tabla_resumen <- data.frame(
Distribucion_Origen = c("Normal", "Exponencial"),
Media_Muestral = c(media_muestral_normal, media_muestral_exponencial),
Desviacion_Estandar = c(sd_muestral_normal, sd_muestral_exponencial),
lim_inf =c(ic_test_normal$conf.int[1],ic_test_exponencial$conf.int[1]),lim_sup =c(ic_test_normal$conf.int[2],ic_test_exponencial$conf.int[2]))
| Distribucion_Origen | Media_Muestral | Desviacion_Estandar | lim_inf | lim_sup |
|---|---|---|---|---|
| Normal | 14.8525 | 1.0424 | 14.4633 | 15.2418 |
| Exponencial | 3.5263 | 0.8185 | 3.2207 | 3.8319 |
Comentario sobre los resultados y diferencias
Los resultados muestran diferencias claras entre las dos distribuciones simuladas. En la distribución Normal, los promedios se concentran alrededor de una media muestral de 14.85, con una desviación estándar de 1.04, lo que indica una baja variabilidad entre las réplicas. El intervalo de confianza del 95% (14.46 a 15.24) confirma que la media poblacional real se encuentra muy cerca del valor esperado (15).
En contraste, la distribución Exponencial presenta una media muestral de 3.53 y una desviación estándar de 0.82, lo que evidencia una mayor dispersión relativa. Su intervalo de confianza (3.22 a 3.83) es más amplio en proporción al promedio, reflejando la naturaleza asimétrica de esta distribución, con valores más concentrados cerca de cero y algunos más altos menos frecuentes.
En conjunto, los resultados son coherentes con la teoría estadística: la distribución Normal genera promedios más estables y simétricos, mientras que la Exponencial produce mayor variabilidad y asimetría. Esto demuestra que la simulación en R representa correctamente el comportamiento esperado de cada distribución y permite observar cómo la forma de los datos influye en la precisión de las estimaciones de la media.