Objetivo

Generar dos conjuntos de datos mediante simulación y réplicas:

  1. Tiempo de atención en banco: 𝑋∼𝑁(𝜇=15,𝜎=5).
  1. Tiempo entre llegadas: 𝑌∼Exponencial(media=3.5).

Luego, con las 30 medias de réplica de cada caso, calcular el IC del 95% para la media poblacional y analizar diferencias entre distribuciones.

Réplicas

R <- 30

Caso Normal

n_norm <- 20
mu_norm <- 15
sd_norm <- 5

Caso Exponencial

n_exp <- 20
mu_exp <- 3.5
lambda_exp <- 1 / mu_exp

Función: IC t de Student para un vector de observaciones x

ci_t <- function(x, conf = 0.95) {
n <- length(x)
m <- mean(x)
s <- sd(x)
tcrit <- qt(1 - (1 - conf)/2, df = n - 1)
se <- s / sqrt(n)
hw <- tcrit * se
c(media = m, n = n, s = s, se = se, tcrit = tcrit,
IC_inf = m - hw, IC_sup = m + hw)
}
  1. Simulación con replicate() Para la Exponencial se usa 𝑛=20 por réplica, en simetría con el caso Normal.
  1. Normal(15, 5) — 20 observaciones por réplica, 30 réplicas -> 30 promedios
means_norm <- replicate(R, mean(rnorm(n_norm, mean = mu_norm, sd = sd_norm)))
  1. Exponencial(media=3.5) — n_exp observaciones por réplica, 30 réplicas -> 30 promedios
means_exp <- replicate(R, mean(rexp(n_exp, rate = lambda_exp)))

Primeras medias.

head_norm <- head(means_norm, 10)
head_exp <- head(means_exp, 10)
data.frame(replica = 1:10,
media_normal = round(head_norm, 4),
media_exponencial = round(head_exp, 4))
##    replica media_normal media_exponencial
## 1        1      15.7377            2.9569
## 2        2      17.0011            3.7250
## 3        3      15.8823            3.5497
## 4        4      14.2290            2.9436
## 5        5      15.6072            5.6229
## 6        6      13.8320            2.9542
## 7        7      15.9122            2.3582
## 8        8      16.1468            3.0805
## 9        9      14.7820            2.3220
## 10      10      13.9880            2.9227
  1. Estimación e IC 95% (usando las 30 medias)
ci_norm <- ci_t(means_norm, conf = 0.95)
ci_exp <- ci_t(means_exp, conf = 0.95)
ic_tabla <- data.frame(
Conjunto = c("Normal(15,5) — medias por réplica",
"Exponencial(media=3.5) — medias por réplica"),
n_replicas = c(as.integer(ci_norm["n"]), as.integer(ci_exp["n"])),
media_muestral = c(ci_norm["media"], ci_exp["media"]),
sd_de_medias = c(ci_norm["s"], ci_exp["s"]),
se_gran_media = c(ci_norm["se"], ci_exp["se"]),
t_critico = c(ci_norm["tcrit"],ci_exp["tcrit"]),
IC95_inf = c(ci_norm["IC_inf"], ci_exp["IC_inf"]),
IC95_sup = c(ci_norm["IC_sup"], ci_exp["IC_sup"])
)
knitr::kable(ic_tabla, digits = 4, caption = "IC 95% para la media (basado en 30 medias de réplica).")
IC 95% para la media (basado en 30 medias de réplica).
Conjunto n_replicas media_muestral sd_de_medias se_gran_media t_critico IC95_inf IC95_sup
Normal(15,5) — medias por réplica 30 14.9587 0.9816 0.1792 2.0452 14.5922 15.3252
Exponencial(media=3.5) — medias por réplica 30 3.2657 0.7053 0.1288 2.0452 3.0023 3.5290
par(mfrow = c(1, 2))
hist(means_norm, breaks = 10, main = "Medias por réplica — Normal",
xlab = "media réplica", ylab = "Frecuencia")
lines(density(means_norm), lwd = 2)

hist(means_exp,  breaks = 10, main = "Medias por réplica — Exponencial",
xlab = "media réplica", ylab = "Frecuencia")
lines(density(means_exp), lwd = 2)

par(mfrow = c(1, 1))
  1. Análisis y comparación

Cobertura respecto a los valores teóricos

mu_en_ic_norm <- (mu_norm >= ic_tabla$IC95_inf[1] && mu_norm <= ic_tabla$IC95_sup[1])
mu_en_ic_exp  <- (mu_exp  >= ic_tabla$IC95_inf[2] && mu_exp  <= ic_tabla$IC95_sup[2])

data.frame(
Conjunto = c("Normal(15,5)", "Exponencial(media=3.5)"),
mu_teorico = c(mu_norm, mu_exp),
dentro_IC95 = c(mu_en_ic_norm, mu_en_ic_exp)
)
##                 Conjunto mu_teorico dentro_IC95
## 1           Normal(15,5)       15.0        TRUE
## 2 Exponencial(media=3.5)        3.5        TRUE

Expectativas teóricas sobre la variabilidad de las medias de réplica La desviación estándar de una media muestral es 𝜎/√𝑛.

Por tanto, con estos parámetros, las medias por réplica de la Exponencial tenderán a ser menos dispersas que las de la Normal. Además, al promediar 𝑛=20 valores, ambas distribuciones de medias se vuelven más simétricas (CLT), pero la Normal ya parte de simetría, mientras que la Exponencial (asimétrica en crudo) muestra medias notablemente más simétricas y estables.

R <- 30
tcrit <- qt(0.975, df = R - 1)
sd_media_norm <- sd_norm / sqrt(n_norm)
sd_media_exp <- mu_exp / sqrt(n_exp)
se_gran_media_norm <- sd_media_norm / sqrt(R)
se_gran_media_exp <- sd_media_exp / sqrt(R)
half_norm <- tcrit * se_gran_media_norm
half_exp <- tcrit * se_gran_media_exp

data.frame(
Conjunto = c("Normal", "Exponencial"),
sd_media_replicas = c(sd_media_norm, sd_media_exp),
se_de_la_gran_media = c(se_gran_media_norm, se_gran_media_exp),
semiancho_IC95_esperado = c(half_norm, half_exp)
)
##      Conjunto sd_media_replicas se_de_la_gran_media semiancho_IC95_esperado
## 1      Normal         1.1180340           0.2041241               0.4174808
## 2 Exponencial         0.7826238           0.1428869               0.2922365

Es decir:

datos_norm <- data.frame(replica = 1:R, media = means_norm)
datos_exp  <- data.frame(replica = 1:R, media = means_exp)

knitr::kable(head(datos_norm, 10), digits = 4, caption = "Primeras 10 medias — Normal")
Primeras 10 medias — Normal
replica media
1 15.7377
2 17.0011
3 15.8823
4 14.2290
5 15.6072
6 13.8320
7 15.9122
8 16.1468
9 14.7820
10 13.9880
knitr::kable(head(datos_exp,  10), digits = 4, caption = "Primeras 10 medias — Exponencial")
Primeras 10 medias — Exponencial
replica media
1 2.9569
2 3.7250
3 3.5497
4 2.9436
5 5.6229
6 2.9542
7 2.3582
8 3.0805
9 2.3220
10 2.9227

TODO:

knitr::kable(datos_norm, digits = 4)
replica media
1 15.7377
2 17.0011
3 15.8823
4 14.2290
5 15.6072
6 13.8320
7 15.9122
8 16.1468
9 14.7820
10 13.9880
11 15.9370
12 13.1292
13 15.1935
14 12.6510
15 15.1717
16 14.1372
17 15.3753
18 14.0223
19 14.1907
20 15.7384
21 14.3720
22 15.8017
23 14.7693
24 15.7860
25 14.2163
26 14.2905
27 15.8219
28 15.6425
29 14.7942
30 14.6013
knitr::kable(datos_exp,  digits = 4)
replica media
1 2.9569
2 3.7250
3 3.5497
4 2.9436
5 5.6229
6 2.9542
7 2.3582
8 3.0805
9 2.3220
10 2.9227
11 3.3187
12 3.3946
13 3.2573
14 4.0238
15 2.0899
16 4.4027
17 2.5957
18 3.4044
19 3.3201
20 3.6144
21 3.1499
22 2.5941
23 3.3310
24 3.3696
25 4.0716
26 3.3225
27 2.1881
28 2.9777
29 3.4767
30 3.6313

ILUSTRACION 1


ILUSTRACION 1

ILUSTRACION 2
ILUSTRACION 2