Generación de variables aleatorias

Contexto

En el contexto de la simulación de eventos discretos, generar variables aleatorias se refiere al proceso de obtener valores de variables que siguen distribuciones de probabilidad determinadas, de manera que los resultados sean inciertos pero estén sujetos a un patrón estadístico predefinido.

La simulación de eventos discretos implica modelar un sistema que evoluciona con el tiempo en pasos discretos, como en la simulación de sistemas de colas, cadenas de suministro, o procesos de fabricación. Durante la simulación, ciertos eventos ocurren en momentos aleatorios (por ejemplo, la llegada de un cliente a una tienda o el tiempo entre fallas de una máquina). Para modelar estos eventos de forma realista, es necesario simular esas incertidumbres usando variables aleatorias.

Ejemplo:

Si estamos simulando el tiempo entre llegadas de vehículos a una estación de peaje y sabemos que estas llegadas siguen una distribución exponencial (lo cual es común en procesos de Poisson), la generación de una variable aleatoria sería el proceso de generar un número aleatori que siga esa distribución exponencial. Esto se haría usando un generador de números aleatorios que proporcione valores con las características estadísticas deseadas (por ejemplo, una media de 5 minutos entre llegadas).

En resumen, generar variables aleatorias en la simulación de eventos discretos significa crear valores que simulen el comportamiento estocástico (aleatorio) del sistema, de acuerdo con las distribuciones de probabilidad que caracterizan los tiempos de espera, los tiempos entre eventos, o cualquier otro aspecto del proceso que se esté modelando.

Para la generación de variables aleatorias existen diversos métodos, entre los que se encuentran:

  • Transformada inversa.

  • Aceptación rechazo.

  • Convolución.

  • Transformada directa.

Transformada inversa.

Para generar variables aleatorias siguiendo el proceso de la transformada inversa se deben seguir los siguientes pasos:

0. \(X\) es una variable aleatoria discreta con función de masa de probabilidad \(f(x)\), y función de distribución acumulada \(F(x)\) como se muestra en la Ecuación 1

\[\begin{align} F(x) &= \sum_{k\leq x} f(k) \end{align} \tag{1}\]

A partir de \(x, f(x)\) y \(F(x)\) se puede construir una tabla de distribución como se muestra en Tabla 1.

Tabla 1: Tabla de distribución
\(x\) \(f(x)\) \(F(x)\)
\(x_1\) \(f(x_1\) \(F(x_1)\)
\(x_2\) \(f(x_2)\) \(F(x_2)\)
\(x_k\) \(f(x_k)\) \(F(x_k)\)

Posteior a la construcción de la tabla de distribución de probabilidad se genera la secuencia de \(R_i\) y se realiza la búsqueda en la tabla para encontrar la variables aleatoria generada de acuerdo al valor de \(F(x)\).

Ejemplo de generación para variable aleatoria Bernoulli

Si es una variable aleatoria que sigue una distribución Bernoulli:

\[\begin{align} X &\sim bernoulli~~(p) \end{align}\]

La función de masa de probabilidad \(f(x)\) está dada por:

\[\begin{align} f(x) &= p^x(1-p)^{1-x}\\ \\ x&= \{0,1 \}\\ \\ 0&\leq p \leq 1 \end{align}\]

\(p\) representa la probabilidad de éxito.

Teniendo \(f(x)\) se puede generar la tabla de distribución como se muestra en Tabla 2:

Tabla 2: Tabla de distribución \(X \sim~bernoulli (p)\)
\(x\) \(f(x)\) \(F(x)\)
0 \(1-p\) \(1-p\)
1 \(p\) \((1-p)+p=1\)

Dado lo anterior se puede construir la siguiente regla de decisión:

\[\begin{align} R_i \leq 1-p ~\rightarrow x_i =0\\ \\ R_i > 1-p ~\rightarrow x_i =1 \end{align}\]

Se genera entonces la secuencia de números aleatorios \(Ri\) que se muestra en la Tabla 3.

Tabla 3: Secuencia \(R_i\)
i \(R_i\)
1 0.2875775
2 0.7883051
3 0.4089769
4 0.8830174
5 0.9404673
6 0.0455565
7 0.5281055
8 0.8924190
9 0.5514350
10 0.4566147

Para el caso particular cuando \(p=0.7\), la regla de decisión sería:

\[\begin{align} R_i \leq 1-p = 0.3~\rightarrow x_i =0\\ \\ R_i > 1-p =0.3 ~\rightarrow x_i =1 \end{align}\]

Se aplica la regla de decisión y se generan, de esa manera, las variables aleatorias que se muestran en Tabla 4.

Tabla 4: Variables aleatorias \(x_i\) generadas.
i \(R_i\) \(x_i\)
1 0.2875775 0
2 0.7883051 1
3 0.4089769 1
4 0.8830174 1
5 0.9404673 1
6 0.0455565 0
7 0.5281055 1
8 0.8924190 1
9 0.5514350 1
10 0.4566147 1

Ejemplo de generación para variable aleatoria Binomial.

Si es una variable aleatoria que sigue una distribución Binomial:

\[\begin{align} X &\sim bin~~(n,p) \end{align}\]

La función de masa de probabilidad \(f(x)\) está dada por:

\[\begin{align} f(x) &= \binom{n}{x}p^x(1-p)^{n-x}\\ \\ x&= 0,1,2,...,n\\ \end{align}\]

Con:

\[\begin{align} \binom{n}{x} = \frac{n!}{x!(n-x)!} \end{align}\]

Para el caso específico con \(n= 6\) y \(p=0.6\) se puede generar la tabla de distribución como se muestra en Tabla 5:

Tabla 5: Tabla de distribución \(X \sim~bin (n,p)\)
\(x\) \(f(x)\) \(F(x)\)
0 0.004096 0.004096
1 0.036864 0.040960
2 0.138240 0.179200
3 0.276480 0.455680
4 0.311040 0.766720
5 0.186624 0.953344
6 0.046656 1.000000

Dado lo anterior se puede construir la siguiente regla de decisión:

\[\begin{align} &Devolver~xi~si:\\ \\ &F(x_{i-1}) \leq R_i \leq F(x_i)) \end{align}\]

Se genera entonces la secuencia de números aleatorios \(Ri\), y se aplica la regla, obteniendo las variables que se muestran en la Tabla 6.

Tabla 6: Secuencia \(R_i\)
\(x\) \(f(x)\) \(F(x)\) \(R_i\) \(x_i\)
0 0.004096 0.004096 0.7456200 4
1 0.036864 0.040960 0.7817124 5
2 0.138240 0.179200 0.0200371 1
3 0.276480 0.455680 0.7760854 5
4 0.311040 0.766720 0.0669101 2
5 0.186624 0.953344 0.6447951 4
6 0.046656 1.000000 0.9293860 5

Ejemplo de generación para variable aleatoria Poisson.

Si es una variable aleatoria que sigue una distribución Poisson:

\[\begin{align} X &\sim Poisson~~(\lambda) \end{align}\]

La función de masa de probabilidad \(f(x)\) está dada por:

\[\begin{align} f(x) &= \frac{e^{-\lambda}\lambda^x}{x!} \\ x&= 0,1,2,...\\ \end{align}\]

Para el caso específico con \(\lambda=3\) se puede generar la tabla de distribución como se muestra en Tabla 7:

Tabla 7: Tabla de distribución \(X \sim~Poisson(\lambda)\)
\(x\) \(f(x)\) \(F(x)\)
0 0.0497871 0.0497871
1 0.1493612 0.1991483
2 0.2240418 0.4231901
3 0.2240418 0.6472319
4 0.1680314 0.8152632
5 0.1008188 0.9160821
6 0.0504094 0.9664915
7 0.0216040 0.9880955
8 0.0081015 0.9961970
9 0.0027005 0.9988975
10 0.0008102 0.9997077

Dado lo anterior se puede construir la siguiente regla de decisión:

\[\begin{align} &Devolver~xi~si:\\ \\ &F(x_{i-1}) \leq R_i \leq F(x_i)) \end{align}\]

Se genera entonces la secuencia de números aleatorios \(Ri\), y se aplica la regla, obteniendo las variables que se muestran en la Tabla 8.

Tabla 8: Secuencia \(R_i\)
\(x\) \(f(x)\) \(F(x)\) \(R_i\) \(x_i\)
0 0.0497871 0.0497871 0.7456200 4
1 0.1493612 0.1991483 0.7817124 4
2 0.2240418 0.4231901 0.0200371 0
3 0.2240418 0.6472319 0.7760854 4
4 0.1680314 0.8152632 0.0669101 1
5 0.1008188 0.9160821 0.6447951 3
6 0.0504094 0.9664915 0.9293860 6
7 0.0216040 0.9880955 0.7176422 4
8 0.0081015 0.9961970 0.9277365 6
9 0.0027005 0.9988975 0.2842301 2
10 0.0008102 0.9997077 0.5557249 3