# ============================================
# PASO 1: GENERAR LOS DATOS SIMULADOS
# ============================================

set.seed(123)  # Para reproducibilidad

n <- 20        # Número de clientes por réplica
replicas <- 30 # Número de repeticiones

# Distribución Normal: tiempo de atención (media=15, sd=5)
promedios_normal <- replicate(replicas, mean(rnorm(n, mean = 15, sd = 5)))

# Distribución Exponencial: tiempo entre llegadas (media=3.5)
promedios_exponencial <- replicate(replicas, mean(rexp(n, rate = 1/3.5)))

# Mostrar los primeros valores de ejemplo
head(promedios_normal)
## [1] 15.70812 14.74371 15.53243 14.40041 16.87547 13.20310
head(promedios_exponencial)
## [1] 4.128988 4.585578 2.883060 4.145512 2.433087 5.055695
# ============================================
# PASO 2: CREAR TABLAS CON LAS 30 RÉPLICAS
# ============================================

# Crear dataframes para mostrar los resultados
df_normal <- data.frame(Replica = 1:replicas, Promedio = promedios_normal)
df_exp <- data.frame(Replica = 1:replicas, Promedio = promedios_exponencial)

# Mostrar todas las réplicas simuladas
cat("=== DISTRIBUCIÓN NORMAL ===\n")
## === DISTRIBUCIÓN NORMAL ===
print(df_normal)
##    Replica Promedio
## 1        1 15.70812
## 2        2 14.74371
## 3        3 15.53243
## 4        4 14.40041
## 5        5 16.87547
## 6        6 13.20310
## 7        7 14.80825
## 8        8 14.13332
## 9        9 15.83445
## 10      10 14.33221
## 11      11 15.29742
## 12      12 14.80830
## 13      13 14.88379
## 14      14 16.04741
## 15      15 16.97471
## 16      16 14.80494
## 17      17 15.25109
## 18      18 14.62870
## 19      19 15.14293
## 20      20 14.26677
## 21      21 13.94018
## 22      22 16.03292
## 23      23 14.81796
## 24      24 16.50615
## 25      25 16.34905
## 26      26 13.62300
## 27      27 16.26086
## 28      28 15.50509
## 29      29 14.79653
## 30      30 13.75702
cat("\n=== DISTRIBUCIÓN EXPONENCIAL ===\n")
## 
## === DISTRIBUCIÓN EXPONENCIAL ===
print(df_exp)
##    Replica Promedio
## 1        1 4.128988
## 2        2 4.585578
## 3        3 2.883060
## 4        4 4.145512
## 5        5 2.433087
## 6        6 5.055695
## 7        7 2.420080
## 8        8 3.680780
## 9        9 3.666126
## 10      10 5.784791
## 11      11 3.814230
## 12      12 3.536007
## 13      13 3.273484
## 14      14 3.077473
## 15      15 3.484573
## 16      16 3.514125
## 17      17 3.001881
## 18      18 3.330810
## 19      19 2.939259
## 20      20 3.131979
## 21      21 3.081971
## 22      22 4.381512
## 23      23 3.474137
## 24      24 4.233632
## 25      25 3.391420
## 26      26 3.213681
## 27      27 4.132584
## 28      28 4.064521
## 29      29 3.356930
## 30      30 3.208657
# ============================================
# PASO 3: ESTADÍSTICAS E INTERVALOS DE CONFIANZA (95%)
# ============================================

intervalo_confianza <- function(x, nivel = 0.95) {
  media <- mean(x)
  sd_muestral <- sd(x)
  n <- length(x)
  error <- qt(1 - (1 - nivel)/2, df = n - 1) * sd_muestral / sqrt(n)
  li <- media - error
  ls <- media + error
  return(data.frame(Media = media, Desv_Estandar = sd_muestral,
                    IC_Inferior = li, IC_Superior = ls))
}

# Calcular resultados
res_normal <- intervalo_confianza(promedios_normal)
res_exp <- intervalo_confianza(promedios_exponencial)

cat("\n=== ESTADÍSTICOS - DISTRIBUCIÓN NORMAL ===\n")
## 
## === ESTADÍSTICOS - DISTRIBUCIÓN NORMAL ===
print(res_normal)
##      Media Desv_Estandar IC_Inferior IC_Superior
## 1 15.10888     0.9667275    14.74789    15.46986
cat("\n=== ESTADÍSTICOS - DISTRIBUCIÓN EXPONENCIAL ===\n")
## 
## === ESTADÍSTICOS - DISTRIBUCIÓN EXPONENCIAL ===
print(res_exp)
##      Media Desv_Estandar IC_Inferior IC_Superior
## 1 3.614219      0.729924    3.341661    3.886777
# ============================================
# PASO 4: VISUALIZACIÓN Y COMPARACIÓN
# ============================================

par(mfrow = c(1, 2))  # dos gráficos lado a lado

hist(promedios_normal, col = "lightblue", 
     main = "Promedios - Distribución Normal", 
     xlab = "Tiempo promedio (min)", border = "white")

hist(promedios_exponencial, col = "lightgreen", 
     main = "Promedios - Distribución Exponencial", 
     xlab = "Tiempo promedio (min)", border = "white")

resultados y conclusiones

Distribución Normal: Los tiempos de atención muestran una dispersión simétrica alrededor de la media (≈15 min), con un intervalo de confianza estrecho gracias a la menor variabilidad.

Distribución Exponencial: Los tiempos entre llegadas presentan una forma asimétrica (sesgada a la derecha), con mayor variabilidad, lo que genera un intervalo de confianza más amplio.

La diferencia principal radica en que la normal asume tiempos promedio estables, mientras que la exponencial representa procesos más aleatorios y con alta probabilidad de tiempos cortos.