set.seed(123)
n <- 20 # número de clientes por muestra
reps <- 30 # número de réplicas
muestras_normales <- list()
media_normal <- numeric(reps)
for (i in 1:reps) {
muestra <- rnorm(n, mean = 15, sd = 5)
muestras_normales[[i]] <- muestra
media_normal[i] <- mean(muestra)
}
df_normal <- data.frame(
Replica = rep(1:reps, each = n),
Valor = unlist(muestras_normales)
)
promedios <- tapply(df_normal$Valor, df_normal$Replica, mean)
df_normal$Promedio <- rep(promedios, each = n)
head(df_normal, 10)
## Replica Valor Promedio
## 1 1 12.197622 15.70812
## 2 1 13.849113 15.70812
## 3 1 22.793542 15.70812
## 4 1 15.352542 15.70812
## 5 1 15.646439 15.70812
## 6 1 23.575325 15.70812
## 7 1 17.304581 15.70812
## 8 1 8.674694 15.70812
## 9 1 11.565736 15.70812
## 10 1 12.771690 15.70812
set.seed(123)
n <- 20 # número de clientes por muestra
reps <- 30 # número de réplicas
media <- 3.5 # media de la distribución
lambda <- 1 / media # parámetro de tasa (λ = 1/media)
muestras_exp <- list()
media_exp <- numeric(reps)
for (i in 1:reps) {
muestra <- rexp(n, rate = lambda) # generar muestra de 20 valores
muestras_exp[[i]] <- muestra # guardar muestra
media_exp[i] <- mean(muestra) # calcular promedio de la muestra
}
df_exp <- data.frame(
Replica = rep(1:reps, each = n),
Valor = unlist(muestras_exp)
)
promedios_exp <- tapply(df_exp$Valor, df_exp$Replica, mean)
df_exp$Promedio <- rep(promedios_exp, each = n)
head(df_exp, 10)
## Replica Valor Promedio
## 1 1 2.9521004 2.839104
## 2 1 2.0181359 2.839104
## 3 1 4.6516920 2.839104
## 4 1 0.1105208 2.839104
## 5 1 0.1967384 2.839104
## 6 1 1.1077543 2.839104
## 7 1 1.0997955 2.839104
## 8 1 0.5084338 2.839104
## 9 1 9.5418276 2.839104
## 10 1 0.1020371 2.839104
IC <- function(x) {
m <- mean(x)
s <- sd(x)
n <- length(x)
error <- qt(0.975, df = n - 1) * s / sqrt(n)
c(Limite_Inferior = m - error,
Media_Muestral = m,
Limite_Superior = m + error)
}
IC_normal <- IC(media_normal)
IC_exponencial <- IC(media_exp)
IC_normal
## Limite_Inferior Media_Muestral Limite_Superior
## 14.74789 15.10888 15.46986
IC_exponencial
## Limite_Inferior Media_Muestral Limite_Superior
## 3.267943 3.486647 3.705350
tabla_resultados <- data.frame(
Distribucion = c("Normal", "Exponencial"),
Media_Muestral = c(mean(media_normal), mean(media_exp)),
Desviacion_Estandar = c(sd(media_normal), sd(media_exp)),
IC_95_Inferior = c(IC_normal[1], IC_exponencial[1]),
IC_95_Superior = c(IC_normal[3], IC_exponencial[3])
)
print(tabla_resultados)
## Distribucion Media_Muestral Desviacion_Estandar IC_95_Inferior IC_95_Superior
## 1 Normal 15.108877 0.9667275 14.747895 15.46986
## 2 Exponencial 3.486647 0.5856983 3.267943 3.70535
Análisis e interpretación (concepto):
En la simulación de la distribución normal, los tiempos de atención se agrupan cerca de 15 minutos, con poca dispersión. El intervalo de confianza del 95% resultó más estrecho, lo que refleja una estimación más precisa de la media poblacional.
En la simulación de la distribución exponencial, los tiempos entre llegadas presentan mayor variabilidad y una ligera asimetría hacia valores altos. Por ello, su intervalo de confianza es más amplio.
Estas diferencias son coherentes con la naturaleza de ambas distribuciones: la normal es simétrica y la exponencial es asimétrica a la derecha.
En este punto se busca determinar qué tipo de distribución siguen las medias de las réplicas obtenidas en los experimentos de los puntos anteriores. Para ello, se utiliza en RStudio una prueba equivalente al módulo Stat:Fit de Promodel: la prueba de normalidad de Shapiro–Wilk, complementada con el análisis visual mediante histogramas.
resultado_normal <- shapiro.test(media_normal)
resultado_exponencial <- shapiro.test(media_exp)
resultado_normal
##
## Shapiro-Wilk normality test
##
## data: media_normal
## W = 0.98049, p-value = 0.8383
resultado_exponencial
##
## Shapiro-Wilk normality test
##
## data: media_exp
## W = 0.97684, p-value = 0.7367
cat("P-valor (Distribución Normal):", resultado_normal$p.value, "\n")
## P-valor (Distribución Normal): 0.8383138
cat("P-valor (Distribución Exponencial):", resultado_exponencial$p.value, "\n")
## P-valor (Distribución Exponencial): 0.7367387
par(mfrow = c(1,2)) # dividir ventana de gráficos en 2 paneles
hist(media_normal,
main = "Medias - Distribución Normal",
xlab = "Promedio de cada réplica",
col = "skyblue", freq = FALSE)
curve(dnorm(x, mean = mean(media_normal), sd = sd(media_normal)),
add = TRUE, col = "red", lwd = 2)
hist(media_exp,
main = "Medias - Distribución Exponencial",
xlab = "Promedio de cada réplica",
col = "lightgreen", freq = FALSE)
curve(dnorm(x, mean = mean(media_exp), sd = sd(media_exp)),
add = TRUE, col = "red", lwd = 2)
En esta actividad se realizaron simulaciones de variables aleatorias bajo dos tipos de distribuciones: una distribución normal para los tiempos de atención de clientes y una distribución exponencial para los tiempos entre llegadas. Cada simulación se replicó 30 veces, registrando el promedio de cada réplica con el fin de estimar los intervalos de confianza del 95% y analizar el comportamiento de las medias obtenidas.
Los resultados mostraron que, en la distribución normal, los valores simulados se concentraron alrededor de la media teórica (15 minutos), con una dispersión relativamente baja. El intervalo de confianza obtenido fue estrecho, lo que indica mayor precisión y estabilidad en la estimación de la media poblacional.
Por otro lado, en la distribución exponencial, los tiempos entre llegadas presentaron mayor variabilidad y una asimetría hacia la derecha, típica de este tipo de distribución. El intervalo de confianza fue más amplio, reflejando mayor incertidumbre en la estimación de la media.
Al analizar las medias de las réplicas mediante la prueba de Shapiro–Wilk y los histogramas (equivalente al módulo Stat:Fit de Promodel), se observó que ambas siguen una distribución aproximadamente normal, con p-valores mayores a 0.05. Esto confirma el cumplimiento del Teorema Central del Límite (TCL), que establece que, sin importar la forma de la distribución original, la distribución de las medias muestrales tiende a ser normal cuando el tamaño de las muestras es suficiente.
En conclusión, las simulaciones permitieron comprobar experimentalmente el comportamiento esperado de las distribuciones de probabilidad: la normal como modelo simétrico y estable, y la exponencial como modelo asimétrico con mayor variabilidad. Sin embargo, las medias muestrales de ambas distribuciones convergen hacia la normalidad, demostrando la validez estadística del TCL y la importancia de los intervalos de confianza en la estimación de parámetros poblacionales.