Tema 2. Simulación de variables aleatorias
Subtemas:
2.1. Producción de números con comportamiento estadístico pseudoaleatorio.
2.1.1. Uso del generador incluido en la hoja de cálculo.
2.1.2. Métodos congruenciales.
2.2. Simulación de otras variables aleatorias.
2.2.1. Teoría de: transformación inversa, composición, convolución y otros procedimientos.
2.2.2. Funciones inversas de hoja de cálculo, utilizables como simuladores.
2.3. Simulación de variables especiales.
2.1 Números pseudoaleatorios
Números aleatorios: Números con la misma probabilidad de ocurrencia. Serie de
números cuya secuencia no puede predecirse.
Todo proyecto de simulación requiere generar valores de variables que sigan una
cierta distribución de probabilidad. Sin embargo, es conveniente señalar que el
proceso de generación de variables aleatorias no uniformes se hace a partir de la
generación de números rectangulares, esto es, de números aleatorios distribuidos
uniformemente entre 0 y1 [~U(0,1) ].
Así pues la importancia de estos números radica en el hecho de que las variables
aleatorias de cualquier distribución pueden ser obtenidas a partir de ellos.
Propiedades necesarias de los números pseudoaleatorios
1. Uniformemente distribuidos entre 0 y 1.
2. Estadísticamente independientes.
3. Media estadísticamente igual a 0.5.
4. Varianza estadísticamente igual a 1/12.
5. Reproducibles en periodo largo (sin repetición dentro de una longitud
determinada de la sucesión), generados a través de un método rápido
que no requiera mucha capacidad de almacenamiento de la
computadora.
Generación de números pseudoaleatorios
Método de Cuadrados Medios: Es uno de los primeros procedimientos
aritméticos que se usaron para generar secuencias de números pseudoaleatorios
uniformemente distribuidos. Dicho método consta de los siguientes pasos:
1. Se escoge un número de cuatro dígitos (semilla).
2. Elevar al cuadrado dicho número y agregar ceros del lado izquierdo si es
necesario, a fin de contar con ocho dígitos.
3. Seleccionar los cuatro dígitos de en medio como el número aleatorio que se va
a utilizar.
4. Elevar al cuadrado el número de cuatro dígitos seleccionado en el paso 3
(nuevamente se agregan ceros del lado izquierdo si es necesario a fin de obtener
ocho dígitos).
5. Repita los pasos 3 y 4 hasta que obtenga la cantidad deseada de números
aleatorios.
Ejemplo: Genere 5 números aleatorios por el método de Cuadrados Medios,
tomando como semilla 2152.
𝑋0= 2152 (𝑋0)2
= 04631104 𝑋3= 6743 (𝑋3)2
= 45468049
𝑋1= 6311 (𝑋1)
2
= 39828721 𝑋4= 4680 (𝑋4)
2
= 21902400
𝑋2= 8287 (𝑋2)
2
= 68674369 𝑋5= 9024
Método Congruencial Mixto: Se basa en la aplicación de la siguiente relación de
recurrencia:
𝑋𝑛+1= (𝑎𝑋𝑛+ c) mod m
𝑋0= la semilla (𝑋0 > 0)
a = el multiplicador (a > 0) entero impar, no divisible por 3 ó 5.
c= constante aditiva (c > 0) entero impar.
m= el módulo (m > 𝑋0, m > a, m > c ).
Está basado en los Generadores de Lemher.
Determine el periodo del generador congruencial mixto:
𝑋𝑛+1= (5𝑋𝑛+ 7) mod 8 𝑋0= 4
𝑋0= 4, 𝑋1 = (5 ∗ 4+ 7) mod 8 = 27 mod 8 = 3
𝑋1= 3, 𝑋2= (5 ∗3 + 7) mod 8 = 22 mod 8 = 6
𝑋2= 6, 𝑋3= (5 ∗6 + 7) mod 8 = 37 mod 8 = 5
𝑋3= 5, 𝑋4= (5 ∗5 + 7) mod 8 = 32 mod 8 = 0
𝑋4= 0, 𝑋5= (5 ∗0 + 7) mod 8 = 7 mod 8 = 7
𝑋5= 7, 𝑋6= (5 ∗7 + 7) mod 8 = 42 mod 8 = 2
𝑋6= 2, 𝑋7= (5 ∗2 + 7) mod 8 = 17 mod 8 = 1
𝑋7= 1, 𝑋8= (5 ∗1 + 7) mod 8 = 12 mod 8 = 4
𝑋8= 4 Ya se repite la semilla, por lo tanto su periodo de vida fue de 7.
Aleatorios 𝒓𝒊 menores que 1?
Cualquier número generado por congruenciales: 0 ≤ 𝑋𝑖 ≤ 𝑚 − 1
0 ≤
𝑋𝑖
𝑚 − 1
≤ 1
Genere 6 números aleatorios usando el generador congruencial mixto con constantes:
a=11, c=15, m=23 y 𝑋0 = 6
𝑋0= 6, 𝑋1 = (11 ∗ 6+ 15) mod 23 = 81 mod 23 = 12 𝑟1= 0.5454
𝑋1= 12, 𝑋2= (11 ∗12 + 15) mod 23 = 147 mod 23 = 9 𝑟2= 0.4090
𝑋2= 9, 𝑋3= (11 ∗9 + 15) mod 23 = 114 mod 23 = 22 𝑟3= 1
𝑋3= 22, 𝑋4= (11 ∗22 + 15) mod 23 = 257 mod 23 = 4 𝑟4= 0.1818
𝑋4= 4, 𝑋5= (11 ∗4 + 15) mod 23 = 59 mod 23 = 13 𝑟5= 0.5909
𝑋5= 13, 𝑋6= (11 ∗13 + 15) mod 23 = 158 mod 23 = 20 𝑟6= 0.9090
𝑋6= 20
Ejercicio 1:
Determine el periodo del generador congruencial mixto (lineal):
𝑋𝑛+1= (7𝑋𝑛 + 9) mod 11, 𝑋0 = 5
Periodo = 10
Pruebas Estadísticas para números pseudoaleatorios
Debido a que se sabe que la secuencia generada contiene números
pseudoaleatorios en lugar de números realmente aleatorios, cada vez que se
utilice un algoritmo determinístico cabe preguntarse si la serie generada es
verdaderamente aleatoria. Se supone provienen de una distribución uniforme.
A continuación se describen algunas de las pruebas estadísticas que han sido
desarrolladas para probar la aleatoriedad de los números pseudoaleatorios.
C) Prueba de Forma
𝐻0 : 𝑅𝑖 ~ U (0,1)
𝐻𝑎 : 𝑅𝑖 ~ U (0,1)
α= 0.05
Por la Prueba Ji Cuadrada
En este caso se suele dividir el intervalo (0,1) en 10 clases y no importa
obtener frecuencias menores a 3. Para el cálculo de los grados de libertad
k=0.
Por la Prueba de Kolmogorov - Smirnov
Se ordenan los números aleatorios en orden ascendente. Se calcula la
distribución acumulada esperada mediante la expresión: F(x) =
𝑖
𝑛
Donde i es la posición que ocupa el número 𝑋𝑖 en la sucesión de aleatorios
ordenados y n es el total de números aleatorios considerados. Se calcula el
estadístico:
Max 𝐹 𝑥 − 𝑋𝑖
D) Pruebas de Independencia
Por la Prueba de Poker: Esta prueba examina en forma individual los dígitos
del número pseudoaleatorio generado. Se toman los primeros 5 dígitos del
número aleatorio y se clasifican como: par, dos pares, tercia, poker, quintilla,
full y todas diferentes (pachuca).
Con la probabilidad de ocurrencia de los eventos anteriores y con el número
de aleatorios generados se puede calcular la frecuencia esperada de cada
posible resultado, con lo cual se puede aplicar la prueba Ji Cuadrada: 𝑋2
∝,6
En este caso se toman todos los intervalos sin importar las frecuencias
menores a 3. Las probabilidades de los eventos se calculan considerando la
extracción de 5 cartas con reemplazo, de un total de 10 (numeradas del 0 al
9). Por lo tanto las probabilidades de los eventos son:
P (Pachuca) =
10
10
·
9
10
·
8
10
·
7
10
·
6
10
= 0.3024
P (Par) =
10
10
·
1
10
·
9
10
·
8
10
·
7
10
5 𝐶2= 0.504
P (Tercia) =
10
10
·
1
10
·
1
10
·
9
10
·
8
10
5 𝐶3= 0.072
Por la Prueba de Corridas:
Corridas Arriba y Abajo
E(a) =
2𝑁−1
3
V(a) =
16𝑁−29
90
Donde: a= número de corridas, N=total de aleatorios
Se utiliza la prueba 𝑍0=
𝑋−μ
σ
, donde X=a, μ=E(a), σ= 𝑉(𝑎)
Si 𝑍0 < 𝑍α/2 No se rechaza la hipótesis de independencia
Qué es una corrida? La consecución de signos iguales, cuando éstos han sido definidos
según su incremento o decremento con respecto al número anterior o con la media (0.5).
Considere los siguientes números pseudoaleatorios, determine el número de corridas.
0.2 0.4 0.6 0.3 0.1 0.8
+ + - - +
Hay 3 corridas
1 2 3
Por la prueba de Corridas Arriba y Debajo de la Media
Considere los siguientes números pseudoaleatorios, determine el número de corridas.
0.2 0.4 0.6 0.3 0.1 0.8
- - + - - +
Hay 4 corridas
1 2 3 4
E(a) =
2𝑛1𝑛2
𝑁
+
1
2
V(a) =
2(𝑛1𝑛2)(2𝑛1𝑛2−𝑁)
𝑁2(𝑁−1)
Donde: a= número de corridas, N=total de aleatorios, 𝑛1= cantidad de
aleatorios por arriba de 0.5, 𝑛2 = cantidad de aleatorios por debajo de 0.5.
Se utiliza la prueba 𝑍0=
𝑋−μ
σ
, donde X=a, μ=E(a), σ= 𝑉(𝑎)
Si 𝑍0 < 𝑍α/2 No se rechaza la hipótesis de independencia
Ejercicio 2:
Al siguiente conjunto de 30 números pseudoaleatorios realícele todas las
pruebas estadísticas de aleatoriedad vistas (media, varianza, uniformidad e
independencia (corridas arriba y abajo y corridas arriba y debajo de la media),
con un nivel de significancia del 5%. Establezca las correspondientes pruebas
de hipótesis hasta su conclusión y concluya además de una manera general al
respecto.
0.03991 0.10461 0.93716 0.16894 0.72484 0.98953 0.73251 0.25593 0.34565 0.48999
0.02345 0.67347 0.10987 0.25678 0.50502 0.71890 0.61234 0.86322 0.94134 0.39528
0.99872 0.27657 0.82345 0.12387 0.36782 0.05389 0.82474 0.59289 0.35782 0.90234
Ejercicio 2:
Al siguiente conjunto de 30 números pseudoaleatorios realícele todas las
pruebas estadísticas de aleatoriedad vistas (media, varianza, uniformidad e
independencia (corridas arriba y abajo y corridas arriba y debajo de la media),
con un nivel de significancia del 5%. Establezca las correspondientes pruebas
de hipótesis hasta su conclusión y concluya además de una manera general al
respecto.
0.03991 0.10461 0.93716 0.16894 0.72484 0.98953 0.73251 0.25593 0.34565 0.48999
0.02345 0.67347 0.10987 0.25678 0.50502 0.71890 0.61234 0.86322 0.94134 0.39528
0.99872 0.27657 0.82345 0.12387 0.36782 0.05389 0.82474 0.59289 0.35782 0.90234
2.2 Simulación/Generación de Variables Aleatorias
2.2.1 Variables Aleatorias Continuas
Toda vez que ya ha sido especificada cuál es la distribución de probabilidad que
mejor representa el comportamiento de las variables que se quieren simular, así
como el valor de sus parámetros, el siguiente paso es escoger un método que
permita la generación de valores que sigan el comportamiento especificado por la
distribución de probabilidad, pues dichos valores serán los datos de entrada del
modelo de simulación.
Existen varios algoritmos alternativos que pueden ser usados para generar variables
aleatorias que sigan una distribución específica, siendo los más comunes: el método
de la transformada inversa, el método de aceptación-rechazo y los métodos
especiales.
2.2.1 Método de la Transformada Inversa
Este método utiliza la distribución acumulada F(x) de la distribución que se va
a simular. Puesto que F(x) está definida en el intervalo de (0,1) se puede
generar un número aleatorio (𝑟𝑖) y tratar de determinar el valor de la variable
aleatoria para la cual su distribución acumulada es igual a 𝑟𝑖. Los pasos son:
1. Obtener la función de densidad (f(x)) de la distribución que se desea
simular.
2. Integrar la función f(x) desde -∞ hasta un valor x, con el fin de obtener
F(x).
3. Sustituir F(x) por 𝑟𝑖, donde 𝑟𝑖 es un número aleatorio ~U(0,1).
4. Despejar x, el número aleatorio con distribución f(x).
Ejemplo: Aplicando el método de la transformada inversa encuentre un
generador de variables aleatorias distribuidas uniformemente entre A y B.
f(x) =
1
𝐵−𝐴
𝐴 ≤ 𝑋 ≤ 𝐵
0 𝐸. 𝐶. 𝑂. 𝐶.
F(x) = −∞
𝑥
𝑓 𝑡 𝑑𝑡 = −∞
𝐴
𝑓 𝑡 𝑑𝑡 + 𝐴
𝑥 1
𝐵−𝐴
𝑑𝑡 =
1
𝐵−𝐴
t =
𝑥−𝐴
𝐵−𝐴
= F(x) = 𝑟𝑖 ∴ 𝑥𝑖 = 𝑟𝑖 (B-A) + A
F(x)
x
𝑥𝑖
f(x)
A B
1
𝐵 − 𝐴
x
A
x
~U (A, B)
Ejercicios propuestos:
1. Aplicando el método de la transformada inversa encuentre un generador de
variables aleatorias con distribución exponencial.
Llegar a: 𝑥𝑖= -β ln (1- 𝑟𝑖) si:
f(x) =
1 𝑒
β
−𝑥
β 𝑥 ≥ 0
0 𝐸. 𝐶. 𝑂. 𝐶.
β=
𝑡𝑖𝑒𝑚𝑝𝑜
𝑒𝑛𝑡𝑖𝑑𝑎𝑑𝑒𝑠
=
1
λ
∴ λ =
𝑒𝑛𝑡𝑖𝑑𝑎𝑑𝑒𝑠
𝑡𝑖𝑒𝑚𝑝𝑜
Ejercicios propuestos:
2. Aplicando el método de la transformada inversa encuentre un generador de
variables aleatorias con distribución: f(x)
f(x) =
𝑥 0 ≤ 𝑥 ≤ 1
1
2
1 ≤ 𝑥 ≤ 2
0 𝐸. 𝐶. 𝑂. 𝐶.
Llegar a: x𝑖 =
2𝑟𝑖 𝑠𝑖 𝑟𝑖 ≤
1
2
2𝑟𝑖 𝑠𝑖 𝑟𝑖 >
1
2
1/2
1
1 2
x
Ejercicios propuestos:
3. Aplicando el método de la transformada inversa encuentre un generador de variables
aleatorias con distribución:
f(x) =
5
4
− 𝑥 0 ≤ 𝑥 ≤ 1
1
4
1 ≤ 𝑥 ≤ 2 1/4
5/4
1 2
x
(0,5/4)
(1,1/4) (2,1/4)
f(x)
0
y = b + mx
5/4= b + m(0) b= 5/4
1/4= b + m(1)
1/4= 5/4 + m ∴ m= -1
y = 5/4 - x
Llegar a: x𝑖 =
5
4
−
25
16
− 2𝑟𝑖 𝑠𝑖 𝑟𝑖 ≤
3
4
𝑟𝑖 −
1
2
4 𝑠𝑖 𝑟𝑖 >
3
4
1/4
5/4
1 2
x
(0,5/4)
(1,1/4) (2,1/4)
f(x)
0
Ejercicios propuestos:
4. Aplicando el método de la transformada inversa encuentre un
generador de variables aleatorias con distribución Weibull:
f(x) = ∝ 𝛽−𝛼
𝑥𝛼−1
𝑒
−
𝑥
𝛽
𝛼
𝑥 > 0
0 𝐸. 𝐶. 𝑂. 𝐶.
Llegar a : 𝑥𝑖= β −ln(1 − 𝑟𝑖) 1/∝
2.2.2 Método de Aceptación-Rechazo
La principal dificultad de este método está en la necesidad de despejar la x de
F(x), pues en algunos casos esta función es imposible de calcular. Este método
evita esta dificultad, pues genera primero un valor de la variable aleatoria y
enseguida prueba si dicho valor proviene de la distribución de probabilidad de
la que se quieren obtener valores. Los pasos son los siguientes:
1. f(x) debe ser una distribución de probabilidad acotada y con rango finito, es
decir 𝑎 ≤ 𝑥 ≤ 𝑏.
2. Determinar la moda (M) de f(x) (el punto más alto de la distribución).
3. Generar dos números aleatorios uniformes 𝑟𝑖1 y 𝑟𝑖2.
4. Determinar el valor de la variable aleatoria x como si ésta estuviera
distribuida uniformemente entre A y B: 𝑥 = 𝐴 + (𝐵 − 𝐴)𝑟𝑖1.
5. Evaluar la función de probabilidad en x.
6. Determinar si la siguiente desigualdad se cumple: 𝑟𝑖2 ≤
𝑓 𝑥
𝑀
.
7. Si la respuesta es afirmativa se toma x como un valor simulado de la
variable aleatoria, de lo contrario, es necesario volver al paso 3 tantas veces
como sea necesario.
2.2.2 Variables Aleatorias Discretas
El método de la transformada inversa puede ser usado para generar
variables que sigan cualquier distribución discreta de probabilidad,
siempre y cuando el rango de posibles valores de la variable sea finito o
infinito numerable.
Pasos:
1. Obtener la función de densidad de probabilidad: f(x).
2. Obtener para cada valor discreto la función acumulada de la
distribución: F(x).
3. Generar números aleatorios y comparar con F(x).
4. Determinar el valor correspondiente a x.
Ejercicio: Aplicando el método de la transformada inversa, genere 10
números aleatorios distribuidos binomialmente entre 0 y 3. Considere
p=0.5.
f(0) = 3𝐶0 (0.5)0(0.5)3= 0.125
f(1) = 3𝐶1 (0.5)1
(0.5)2
= 0.375
f(0) = 3𝐶2 (0.5)2(0.5)1= 0.375
f(0) = 3𝐶3 (0.5)3(0.5)3= 0.125
Ejercicio 1:
En un almacén el uso de cierto componente se sigue la distribución que se
muestra. Las existencias de dicho componente se examinan al final de cada
semana (5 días) y si han disminuido a un nivel de 6 partes o menos, se
piden 10 unidades, Cada pedido se entrega de acuerdo con la distribución
de probabilidad que se muestra. Considerando que es lunes y existen 10
partes disponibles, simule 4 semanas de operación. Calcule el nivel de
inventario al final de cada día durante los cuales existen faltantes.
DÍA ALEATORIO DEMANDA EXISTENCIA ALEATORIO DÍAS ENTREGA
1 0.03991 0 10 - -
2 0.10461 0 10 - -
3 0.93716 3 7 - -
4 0.16894 0 7 - -
5 0.72484 2 5 0.98953 5
6 0.73251 2 3 - -
7 0.25593 0 3 - -
8 0.34565 1 2 - -
9 0.48999 1 1 - -
10 0.02345 0 11 - -
11 0.67347 2 9 - -
12 0.10987 0 9 - -
13 0.25678 0 9 - -
14 0.50502 1 8 - -
15 0.7189 2 6 0.61234 4
16 0.86322 2 4 - -
17 0.94134 3 1 - -
18 0.39528 1 0 - -
19 0.99872 4 6 - -
20 0.27657 0 6 0.82345 4
Aparentemente no
hubo faltantes durante
el periodo a simular,
por lo que el número
de días durante los
cuales existen faltantes
es 0.
Ejercicios de soporte del Tema 2
En la plataforma Moodle se presentan a manera de tarea, 5 ejercicios de
soporte al tema que deberán de realizar de manera individual y subirlos al
Moodle para el 27 de feb.
También se presentan 3 prácticas propuestas de soporte al Tema 2, las cuales
deberán subir al Moodle a más tardar el 1 de marzo.