La Ley de los Grandes Números (LGN) establece que, cuando el tamaño de una muestra aleatoria aumenta, el promedio muestral tiende a aproximarse al valor esperado teórico de la variable aleatoria.
En el presente trabajo se realiza una comprobación empírica de esta ley mediante simulaciones Monte Carlo desarrolladas en el lenguaje R. El estudio se contextualiza en la operación de un call center, donde la variabilidad de la demanda y de los tiempos de atención constituye un problema fundamental para la planificación operativa.
Se analizan dos variables aleatorias:
Se generan muestras de tamaños:
\[ n = 10,\ 50,\ 100,\ 1000,\ 10000 \]
y en cada caso se calcula el promedio muestral para verificar su convergencia hacia el valor esperado teórico.
Demostrar empíricamente la Ley de los Grandes Números mediante simulaciones Monte Carlo aplicadas al contexto operativo de un call center.
Los call centers representan sistemas altamente dependientes de procesos aleatorios. La llegada de llamadas y el tiempo de atención presentan incertidumbre natural y requieren modelos probabilísticos para su análisis.
En este estudio se consideran dos fenómenos fundamentales:
Estas variables permiten evaluar cómo el promedio muestral se estabiliza cuando aumenta el número de observaciones.
Sea:
\[ X = \text{Número de llamadas recibidas por hora} \]
La variable se modela mediante una distribución de Poisson:
\[ X \sim Poisson(\lambda = 25) \]
donde:
\[ \lambda = 25 \]
representa el número promedio de llamadas por hora.
\[ E[X] = \lambda = 25 \]
\[ Var(X) = \lambda = 25 \]
\[ \sigma_X = \sqrt{25} = 5 \]
Se espera que el call center reciba, en promedio, 25 llamadas por hora.
Sea:
\[ Y = \text{Tiempo de atención por llamada (minutos)} \]
La variable se modela mediante una distribución Gamma:
\[ Y \sim Gamma(\alpha = 4,\ \beta = 2) \]
donde:
\[ E[Y] = \frac{\alpha}{\beta} = \frac{4}{2} = 2 \]
\[ Var(Y) = \frac{\alpha}{\beta^2} = \frac{4}{4} = 1 \]
\[ \sigma_Y = 1 \]
El tiempo promedio esperado de atención es de 2 minutos por llamada.
Se generaron muestras aleatorias con tamaños:
\[ n = 10,\ 50,\ 100,\ 1000,\ 10000 \]
Para la variable discreta se utilizó:
rpois()Para la variable continua:
rgamma()En cada simulación se calcularon:
datos_demo <- data.frame(
Operador = 1:10,
Llamadas = rpois(10, lambda = 25),
Tiempo_Atencion = round(rgamma(10, shape = 4, rate = 2), 2)
)
kable(
datos_demo,
caption = "Primeros 10 datos simulados del call center"
) %>%
kable_styling(full_width = FALSE)| Operador | Llamadas | Tiempo_Atencion |
|---|---|---|
| 1 | 27 | 3.41 |
| 2 | 19 | 1.08 |
| 3 | 15 | 1.63 |
| 4 | 32 | 1.60 |
| 5 | 30 | 3.61 |
| 6 | 23 | 3.99 |
| 7 | 28 | 3.74 |
| 8 | 21 | 1.80 |
| 9 | 20 | 2.41 |
| 10 | 12 | 3.74 |
simular_poisson <- function(n, lambda){
datos <- rpois(n, lambda)
media <- mean(datos)
ic <- t.test(datos)$conf.int
error <- abs(media - lambda)
promedio_acumulado <- cumsum(datos)/seq_along(datos)
lista <- list(
datos = datos,
media = media,
ic = ic,
error = error,
promedio_acumulado = promedio_acumulado
)
return(lista)
}
simular_gamma <- function(n, shape, rate){
datos <- rgamma(n, shape = shape, rate = rate)
esperado <- shape/rate
media <- mean(datos)
ic <- t.test(datos)$conf.int
error <- abs(media - esperado)
promedio_acumulado <- cumsum(datos)/seq_along(datos)
lista <- list(
datos = datos,
media = media,
ic = ic,
error = error,
promedio_acumulado = promedio_acumulado
)
return(lista)
}La variable discreta representa el número de llamadas recibidas por hora.
\[ X \sim Poisson(25) \]
\[ E[X] = 25 \]
## Tamaño de muestra: 10
## Promedio muestral: 25.5
## Valor esperado teórico: 25
## Diferencia absoluta: 0.5
df <- data.frame(x=res$datos)
ggplot(df,aes(x=x))+
geom_histogram(
aes(y=after_stat(density)),
binwidth=1,
fill="steelblue",
color="white"
)+
stat_function(
fun=dpois,
args=list(lambda=25),
color="red",
linewidth=1
)+
geom_vline(
xintercept=25,
color="darkgreen",
linewidth=1.2,
linetype="dashed"
)+
labs(
title="Poisson - n = 10",
x="Número de llamadas",
y="Densidad"
)+
theme_minimal()Interpretación.
Para \(n=10\), el promedio muestral presenta una variabilidad considerable debido al tamaño reducido de la muestra.
## Tamaño de muestra: 50
## Promedio muestral: 24.98
## Valor esperado teórico: 25
## Diferencia absoluta: 0.02
## Tamaño de muestra: 100
## Promedio muestral: 25.5
## Valor esperado teórico: 25
## Diferencia absoluta: 0.5
## Tamaño de muestra: 1000
## Promedio muestral: 24.887
## Valor esperado teórico: 25
## Diferencia absoluta: 0.113
## Tamaño de muestra: 10000
## Promedio muestral: 25.002
## Valor esperado teórico: 25
## Diferencia absoluta: 0.002
tabla_poisson <- data.frame(
n = muestras,
Promedio_Muestral = sapply(resultados_poisson,function(x) round(x$media,4)),
Valor_Esperado = 25,
Diferencia_Absoluta = sapply(resultados_poisson,function(x) round(x$error,4))
)
kable(
tabla_poisson,
caption = "Resumen de convergencia - Variable discreta"
) %>%
kable_styling(full_width = FALSE)| n | Promedio_Muestral | Valor_Esperado | Diferencia_Absoluta | |
|---|---|---|---|---|
| 10 | 10 | 25.5000 | 25 | 0.5000 |
| 50 | 50 | 24.9800 | 25 | 0.0200 |
| 100 | 100 | 25.5000 | 25 | 0.5000 |
| 1000 | 1000 | 24.8870 | 25 | 0.1130 |
| 10000 | 10000 | 25.0017 | 25 | 0.0017 |
trayectoria_poisson <- cumsum(
rpois(10000,25)
)/seq_len(10000)
df_conv <- data.frame(
n = 1:10000,
promedio = trayectoria_poisson
)
ggplot(df_conv,aes(x=n,y=promedio))+
geom_line(color="steelblue")+
geom_hline(
yintercept=25,
color="red",
linetype="dashed",
linewidth=1
)+
scale_x_log10()+
labs(
title="Convergencia estocástica - Poisson",
x="Tamaño muestral",
y="Promedio acumulado"
)+
theme_minimal()La variable continua representa el tiempo de atención por llamada.
\[ Y \sim Gamma(4,2) \]
\[ E[Y] = 2 \]
## Tamaño de muestra: 10
## Promedio muestral: 2.136
## Valor esperado teórico: 2
## Diferencia absoluta: 0.136
df <- data.frame(x=res$datos)
ggplot(df,aes(x=x))+
geom_histogram(
aes(y=after_stat(density)),
bins=10,
fill="skyblue",
color="white"
)+
stat_function(
fun=dgamma,
args=list(shape=4,rate=2),
color="blue",
linewidth=1
)+
geom_vline(
xintercept=2,
color="darkgreen",
linewidth=1.2,
linetype="dashed"
)+
labs(
title="Gamma - n = 10",
x="Tiempo de atención",
y="Densidad"
)+
theme_minimal()## Tamaño de muestra: 50
## Promedio muestral: 1.995
## Valor esperado teórico: 2
## Diferencia absoluta: 0.005
## Tamaño de muestra: 100
## Promedio muestral: 1.972
## Valor esperado teórico: 2
## Diferencia absoluta: 0.028
## Tamaño de muestra: 1000
## Promedio muestral: 1.994
## Valor esperado teórico: 2
## Diferencia absoluta: 0.006
## Tamaño de muestra: 10000
## Promedio muestral: 2.008
## Valor esperado teórico: 2
## Diferencia absoluta: 0.008
tabla_gamma <- data.frame(
n = muestras,
Promedio_Muestral = sapply(resultados_gamma,function(x) round(x$media,4)),
Valor_Esperado = 2,
Diferencia_Absoluta = sapply(resultados_gamma,function(x) round(x$error,4))
)
kable(
tabla_gamma,
caption = "Resumen de convergencia - Variable continua"
) %>%
kable_styling(full_width = FALSE)| n | Promedio_Muestral | Valor_Esperado | Diferencia_Absoluta | |
|---|---|---|---|---|
| 10 | 10 | 2.1363 | 2 | 0.1363 |
| 50 | 50 | 1.9949 | 2 | 0.0051 |
| 100 | 100 | 1.9721 | 2 | 0.0279 |
| 1000 | 1000 | 1.9939 | 2 | 0.0061 |
| 10000 | 10000 | 2.0077 | 2 | 0.0077 |
trayectoria_gamma <- cumsum(
rgamma(10000,shape=4,rate=2)
)/seq_len(10000)
df_conv2 <- data.frame(
n = 1:10000,
promedio = trayectoria_gamma
)
ggplot(df_conv2,aes(x=n,y=promedio))+
geom_line(color="darkorange")+
geom_hline(
yintercept=2,
color="red",
linetype="dashed",
linewidth=1
)+
scale_x_log10()+
labs(
title="Convergencia estocástica - Gamma",
x="Tamaño muestral",
y="Promedio acumulado"
)+
theme_minimal()comparacion <- data.frame(
n = 1:10000,
Poisson = trayectoria_poisson/25,
Gamma = trayectoria_gamma/2
)
ggplot(comparacion,aes(x=n))+
geom_line(aes(y=Poisson,color="Poisson"))+
geom_line(aes(y=Gamma,color="Gamma"))+
geom_hline(
yintercept=1,
linetype="dashed",
color="black"
)+
scale_x_log10()+
labs(
title="Comparación normalizada de convergencia",
x="Tamaño muestral",
y="Promedio normalizado"
)+
theme_minimal()Los resultados muestran claramente la Ley de los Grandes Números.
En muestras pequeñas:
En muestras grandes:
En ambas variables se observa una estabilización clara aproximadamente desde:
\[ n \approx 1000 \]
La simulación confirma empíricamente la Ley de los Grandes Números.
Para la variable Poisson, el promedio converge hacia:
\[ E[X]=25 \]
\[ E[Y]=2 \]
El efecto del azar disminuye conforme aumenta el tamaño muestral.
Los gráficos de convergencia muestran que las trayectorias se estabilizan alrededor del valor esperado teórico.
En aplicaciones operativas de call centers, contar con suficientes observaciones permite estimaciones más precisas sobre demanda y tiempos de atención.
Ross, S. (2014). Introduction to Probability Models. Academic Press.
Wackerly, D., Mendenhall, W., & Scheaffer, R. (2010). Estadística matemática con aplicaciones. Cengage Learning.
R Core Team. (2025). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing.
Xie, Y. (2015). Dynamic Documents with R and knitr. Chapman & Hall/CRC.
Xie, Y., Allaire, J., & Grolemund, G. (2018). R Markdown: The Definitive Guide.