Modelado y Simulación Numérica
Daniel Pérez Palau
Tema 6. Generación de variables aleatorias
Universidad Internacional de La Rioja
Introducción
• Una variable aleatoria (v.a.) se define como una función que
asigna a cada posible resultado de un experimento un número real.
• No conocer a priori el valor que va a tomar una variable no significa
que sea imposible llegar a saber muchas cosas importantes sobre
ella. La distribución de una variable aleatoria determina qué
valores puede tomar y con qué probabilidad.
• El conjunto de valores que puede tomar recibe el nombre de
soporte.
• En función del soporte podemos clasificarlas como:
– Distribuciones discretas: tienen soporte finito o numerable.
– Distribuciones continuas: Tienen soporte no numerable.
5
Variables aleatorias continuas
• En este tema nos centraremos en la generación de v.a. continuas.
– Las discretas las veremos en los temas 9 y 10.
• Una v.a. continua se caracteriza por:
– y la función de densidad: Es una función real de variable real
no negativa que toma valores positivos sólo en el soporte de la
variable (fuera del soporte valdrá cero). Se verifica que,
𝑏
𝑃 𝑎 < 𝑋 < 𝑏 = න 𝑓 𝑥 𝑑𝑥 , න 𝑓 𝑥 𝑑𝑥 = 1
𝑎 𝑆𝑋
– la función de distribución F(x) de la v.a.: mide la probabilidad
acumulada desde −∞ hasta el valor 𝑥.
𝑥
𝐹 𝑥 = 𝑃 𝑋 ≤ 𝑥 = න 𝑓 𝑡 𝑑𝑡
−∞
𝑑𝐹 𝑥
Se verifica 𝑓 𝑥 =
𝑑𝑥
6
Métodos de generación: generalidades
• Estas variables presentarán una distribución estadística específica,
cuyos parámetros serán conocidos o podremos estimarlos.
• Asumiremos que la distribución está completamente caracterizada.
• Seleccionaremos el método de generación atendiendo a diferentes
factores, como por ejemplo:
– precisión,
– eficiencia de cálculo,
– complejidad,
– robustez,
– facilidad de implementación,
– …
7
Métodos de generación: bibliotecas
Existen bibliotecas que disponen de las v.a.
• Excel (rand(), norminv(rand(),mu,sig),…)
• Matlab (rand, normrnd(mu,sig),…)
Si no se dispone de una rutina de generación, será necesario
programarla con el fin de incluirla en el modelo que se esté
construyendo.
Veremos los siguientes métodos de generación de variables aleatorios:
- Transformada inversa
- Composición
- Aceptación rechazo
- Convolución
8
El método de la transformada inversa
Dada una v.a. 𝑋, con una función de distribución conocida 𝐹(𝑥), si
disponemos de un número aleatorio uniforme 𝑝 entre 0 y 1, el objetivo
será obtener el valor de 𝑥 que verifique que 𝐹(𝑥) = 𝑝. Para ello
recurriremos a despejar 𝑥 en la expresión anterior, obteniendo,
𝑥 = 𝐹 −1 𝑝
9
El método de la transformada inversa
Este método se usa generalmente para distribuciones sencillas en las
que 𝐹 −1 es fácilmente calculable.
Ejemplos:
• La distribución uniforme(a,b)
• La distribución exponencial
• La distribución Weibull.
Computacionalmente, es el método de generación de v.a. más sencillo,
pero no siempre es el más eficiente.
10
Ejemplo 2 (exponencial)
Continuemos por la distribución exponencial, que tiene la función de
densidad,
𝜆𝑒 −𝜆𝑥 , 𝑥 ≥0,
𝑓 𝑥 =ቊ 𝜆>0
0 , x<0
Y función de distribución,
𝑥 −𝜆𝑥 ,
𝐹 𝑥 = න 𝑓 𝑡 𝑑𝑡 = ቊ 1 − 𝑒 𝑥≥0
∞ 0 , x<0
𝜆 se interpreta como el número medio de ocurrencias por unidad de
tiempo (nº coches en un semáforo/dia, nº de correos/hora,…)
13
Ejemplo 2 (exponencial)
Para generar la variable aleatoria, seguiremos los siguientes pasos:
1. Obtener el valor de 𝐹(𝑥). En el caso de la exponencial,
𝐹 𝑥 = 1 − 𝑒 −𝜆𝑥 , 𝑥≥0
2. Fijar 𝐹(𝑥) = 𝑅, siendo 𝑅 un número aleatorio con distribución
uniforme en el intervalo (0, 1). (ver tema anterior)
3. A partir de la expresión 1 − 𝑒 −𝜆𝑥 = 𝑅 despejamos 𝑥:
ln 1 − 𝑅
𝑥=−
𝜆
Este expresión es el generador para la distribución exponencial
4. Generamos números aleatorios uniformemente distribuidos en
[0,1], 𝑅1 , 𝑅2 , 𝑅3 , … 𝑅𝑖 y sustituirlos en la expresión anterior con el
fin de obtener una v.a. distribuida uniformemente:
ln 1 − 𝑅
𝑋𝑖 = −
𝜆
14