Está en la página 1de 56

Universidad Andrés Bello

Facultad de Ingenierı́a
Ingenierı́a Civil Industrial

Generación de Variables Aleatorias


ICI3217 - Simulación

Marcel Favereau

Primer Semestre 2022

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 1 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 2 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 3 / 52


Introducción

Una simulación que tiene algún componente aleatorio debe incluir un


muestreo, o generación, de realizaciones aleatorias a partir de distribuciones
de probabilidades

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 4 / 52


Introducción

Una simulación que tiene algún componente aleatorio debe incluir un


muestreo, o generación, de realizaciones aleatorias a partir de distribuciones
de probabilidades

Estas distribuciones a menudo son especificadas (a través de métodos


estadı́sticos) y en este capı́tulo asumiremos que una distribución ha sido
especificada de algún modo (incluyendo el valor de sus parámetros)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 4 / 52


Introducción

Una simulación que tiene algún componente aleatorio debe incluir un


muestreo, o generación, de realizaciones aleatorias a partir de distribuciones
de probabilidades

Estas distribuciones a menudo son especificadas (a través de métodos


estadı́sticos) y en este capı́tulo asumiremos que una distribución ha sido
especificada de algún modo (incluyendo el valor de sus parámetros)

En este capı́tulo también abordaremos el tema de cómo generar realizaciones


aleatorias con esta distribución, lo que desde ahora (por simplificación)
denominaremos generación de (realizaciones de) variables aleatorias

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 4 / 52


Introducción

Una simulación que tiene algún componente aleatorio debe incluir un


muestreo, o generación, de realizaciones aleatorias a partir de distribuciones
de probabilidades

Estas distribuciones a menudo son especificadas (a través de métodos


estadı́sticos) y en este capı́tulo asumiremos que una distribución ha sido
especificada de algún modo (incluyendo el valor de sus parámetros)

En este capı́tulo también abordaremos el tema de cómo generar realizaciones


aleatorias con esta distribución, lo que desde ahora (por simplificación)
denominaremos generación de (realizaciones de) variables aleatorias

Recordar de nuestro último capı́tulo que el ingrediente básico de cada método


de muestreo de variables aleatorias de cualquier distribución es una fuente
generadora de números aleatorios U (0, 1) iid

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 4 / 52


Introducción

Una simulación que tiene algún componente aleatorio debe incluir un


muestreo, o generación, de realizaciones aleatorias a partir de distribuciones
de probabilidades

Estas distribuciones a menudo son especificadas (a través de métodos


estadı́sticos) y en este capı́tulo asumiremos que una distribución ha sido
especificada de algún modo (incluyendo el valor de sus parámetros)

En este capı́tulo también abordaremos el tema de cómo generar realizaciones


aleatorias con esta distribución, lo que desde ahora (por simplificación)
denominaremos generación de (realizaciones de) variables aleatorias

Recordar de nuestro último capı́tulo que el ingrediente básico de cada método


de muestreo de variables aleatorias de cualquier distribución es una fuente
generadora de números aleatorios U (0, 1) iid

Por esta razón, es esencial que este disponible un generador de números


aleatorios U (0, 1) estadı́sticamente confiable

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 4 / 52


Introducción

Objetivo
Usar números U (0, 1) para generar realizaciones (observaciones) de otras
distribuciones de probabilidad, e incluso procesos estocásticos. Intentar que sea
rápido y reproducible

Distribuciones continua como la normal, exponencial y empı́rica

Distribuciones discretas como la binomial, Bernoulli, Poisson y empı́rica

Normal multivariada, N (µ, Σ)

Modelos autorregresivos y sus derivaciones

Movimiento browniano (Brownian motion)


En las siguientes secciones veremos algunos enfoques para generar (realizaciones
de) variables aleatorias

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 5 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 6 / 52


Método de la Transformada Inversa

Teorema de la transformada inversa


Sea X una variable aleatoria continua con cdf F (x). Luego, F (X) ∼ U (0, 1)

Demostración.
Sea Y = F (X) y supongamos que Y tiene cdf H(y). Luego,

H(y) = P(Y ≤ y) = P(F (X) ≤ y)


= P(X ≤ F −1 (y)) = F (F −1 (y)) = y,

donde podemos definir la cdf inversa F −1 (z) como

F −1 (z) = mı́n{x : F (x) ≥ z} z ∈ [0, 1]

La representación anterior puede ser aplicada a distribuciones continuas o


discretas. Veamos cómo funciona esto en la siguiente figura
Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 7 / 52
Método de la Transformada Inversa: Distribuciones
Continuas
La idea del método de la transformada inversa es generar x a partir de u

1.0
cdf (0, 1)

0.8 u = F(x) = 0.75

0.6
u U(0, 1)

0.4

0.2
x = F 1(u) = 0.68
0.0
4 2 0 2 4
x (0, 1)
Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 8 / 52
Método de la Transformada Inversa: Distribuciones
Continuas

¿Cómo usamos este resultado?


Sea U ∼ U (0, 1). Luego, F (X) = U significa que la variable aleatoria F −1 (U )
tiene la misma distribución que X

Método de la transformada inversa


El método de la transformada inversa para generar una variable aleatoria X con
cdf F (x) es el siguiente:
1 Muestrear U desde U (0, 1)
2 Retornar X = F −1 (U )

Ejemplo: distribución uniforme


La distribución U (a, b), con F (x) = x−a
b−a , para a ≤ x ≤ b.
Despejando X en F (X) = (X − a)/(b − a) = U nos da X = a + (b − a)U

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 9 / 52


Método de la Transformada Inversa: Distribuciones
Continuas

Ejemplo: distribución exponencial


La distribución Exp(λ), con F (x) = 1 − e−λx , para x ∈ R+ .
Despejando X en F (X) = U nos da
1 1
X = − ln(1 − U ) o X = − ln(U )
λ λ

Ejemplo: distribución de Weibull


β
La distribución Weib(λ, β), con F (x) = 1 − e−(λx) , para x ∈ R+ .
Despejando X en F (X) = U nos da
1 1 1 1
X= − ln(1 − U ) β o X= − ln(U ) β
λ λ

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 10 / 52


Método de la Transformada Inversa: Distribuciones
Continuas

Ejemplo: distribución triangular


La distribución Tria(0, 1, 2) tiene pdf
(
x si 0 ≤ x < 1
f (x) = .
2 − x si 1 ≤ x ≤ 2

La cdf es
x2
(
2 si 0 ≤ x < 1
F (x) = (x−2)2 .
1− si 1 ≤ x ≤ 2
2

Si U < 1/2, resolvemos X 2 /2 = U para obtener X = 2U . p
Si U ≥ 1/2, la única raı́z de 1 − (X − 2)2 /2 = U en [1, 2] es X = 2 − 2(1 − U ).
√ √
Ası́, por ejemplo, si U = 0,3, tomamos X = 2 · 0,3 = 0,6

Observación: ¡No reemplazar U por 1 − U aquı́!


Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 11 / 52
Método de la Transformada Inversa: Distribuciones
Continuas

Ejemplo: distribución normal estándar


Desafortunadamente, la cdf inversa Φ−1 (·) no tiene forma analı́tica. ¡Esto es a
menudo un problema con el método de la transformada inversa!
Solución fácil: Hacer una tabla de búsqueda (lookup table). E.g., si U = 0,975,
entonces Z = Φ−1 (U ) = 1,96.
Aproximación portátil bruta: la siguiente aproximación da al menos un lugar
decimal de precisión para 0,00134 ≤ U ≤ 0,98865:

U 0,135 − (1 − U )0,135
Z = Φ−1 (U ) ≈ .
0,1975
Por ejemplo, si U = 0,975, usando la aproximación previa tenemos Z ≈ 1,9688

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 12 / 52


Método de la Transformada Inversa: Distribuciones
Continuas

Ejemplo: distribución normal estándar


Aquı́ hay una solución portátil mejor: la siguiente aproximación tiene un error
absoluto ≤ 0,45 · 10−3 :

c0 + c1 t + c2 t2
 
Z = sign(U − 1/2) t − ,
1 + d1 t + d2 t2 + d3 t3

donde sign(x) ∈ {1, 0, −1} si x ∈ R+ , x = 0 o x ∈ R− , respectivamente,


  21
 2
t= − ln mı́n(U, 1 − U ) ,

c0 = 2,515517, c1 = 0,802853, c2 = 0,010328,


d1 = 1,432788, d2 = 0,189269, d3 = 0,001308.

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 13 / 52


Método de la Transformada Inversa: Distribuciones
Continuas

En cualquier caso, si Z ∼ N (0, 1) y quisiéramos X ∼ N (µ, σ 2 ), sólo tomar


X ← µ + σZ

Ejemplo: distribución normal estándar


Suponer que se quiere generar X ∼ N (10, 9), y se comienza con U = 0,85. Luego,

X = µ + σZ
= 10 + 3Φ−1 (0,85)
= 10 + 3 · (1,0364)
= 13,1093

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 14 / 52


Método de la Transformada Inversa: Distribuciones
Discretas
Para distribuciones discretas, a menudo es mejor construir una tabla

Ejemplo discreto pequeño: distribución Bernoulli

x P(X = x) F (x) U (0, 1)’s


0 1−p 1−p [0, 1 − p]
1 p 1 (1 − p, 1]
Si U ≤ 1 − p, entonces tomar X = 0; en otro caso, X = 1. Por ejemplo, si p = 0,75 y generamos
U = 0,17, tomamos X = 0.
Alternativamente, podemos construir la siguiente tabla “al revés” (que no es estrictamente transformada
inversa, pero es la que suelo usar)

x P(X = x) U (0, 1)’s


1 p [0, p]
0 1−p (p, 1]

Si U ≤ p, tomar X = 1; en otro caso, X = 0

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 15 / 52


Método de la Transformada Inversa: Distribuciones
Discretas

Ejemplo
Suponer que tenemos una pmf discreta un poco menos trivial

x P(X = x) F (x) U (0, 1)’s


−1 0,6 0,6 [0,0, 0,6]
2,5 0,3 0,9 (0,6, 0,9]
4 0,1 1,0 (0,9, 1,0]

Por tanto, si U = 0,63, tomamos X = 2,5

A veces hay una forma fácil de evitar construir una tabla

Ejemplo: distribución uniforme discreta


La distribución uniforme discreta en k ∈ {1, 2, . . . , n} es representada como P(X = k) = 1/n.
Claramente, X = dnU e, donde d·e es la función techo (ceiling ). Ası́ que, si n = 10 y U = 0,376, entonces
X = d3,76e = 4

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 16 / 52


Método de la Transformada Inversa: Distribuciones
Discretas

Ejemplo: distribución geométrica


La distribución geométrica con pmf

f (k) = q k−1 p,

y cdf
F (k) = 1 − q k
para k ∈ {1, 2, . . . }, donde q = 1 − p. Por lo tanto, luego de un poco de álgebra
   
ln(1 − U ) ln(U )
X = mı́n{k : 1 − q k ≥ U } = ∼ .
ln(1 − p) ln(1 − p)

Por ejemplo, si p = 0,3 y U = 0,72, obtenemos


 
ln(0,28)
X= =4
ln(0,7)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 17 / 52


Método de la Transformada Inversa: Distribuciones
Discretas

Observación: También podemos generar Geom(p) contando experimentos Bern(p)


hasta obtener un éxito
Ejemplo: distribución geométrica
Queremos generar X ∼ Geom(1/6). Esto es lo mismo que contar el número de
lanzamientos de dados hasta que aparezca un 3 (o cualquier número particular),
donde los experimentos Bern(1/6) son los lanzamientos iid de dados.
Por ejemplo, si se lanza 6, 2, 1, 4, 3, entonces se detienen los lanzamientos en el
experimento Bernoulli X = 5, y esa es la respuesta

Pero la vida no siempre consiste en lanzar un dado. Una forma general de generar
una Geom(p) es contar el número de experimentos hasta Ui ≤ p. Por ejemplo, si
p = 0,3, entonces U1 = 0,71, U2 = 0,96 y U3 = 0,12 implican que X = 3

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 18 / 52


Método de la Transformada Inversa: Distribuciones
Discretas

Observación: si se tiene una distribución discreta como la Pois(λ) con un número


infinito de valores, se pueden escribir las entradas de la tabla hasta que la cdf sea
cercana a uno, generar exactamente un U , y luego buscar hasta encontrar
X = F −1 (U ), i.e., xi tal que U ∈ (F (xi−1 ), F (xi )]

x P(X = x) F (x) U (0, 1)’s


x1 f (x1 ) F (x1 ) [0, F (x1 )]
x2 f (x2 ) F (x2 ) (F (x1 ), F (x2 )]
x3 f (x3 ) F (x3 ) (F (x2 ), F (x3 )]
.. .. .. ..
. . . .

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 19 / 52


Método de la Transformada Inversa: Distribuciones
Discretas

Ejemplo: distribución de Poisson


e−2 2x
Suponer X ∼ Pois(2), tal que f (x) = x! para x ∈ {0, 1, 2, 3, . . . }

x P(X = x) F (x) U (0, 1)’s


0 0,1353 0,1353 [0, 0,1353]
1 0,2707 0,4060 (0,1353, 0,4060]
2 0,2707 0,6767 (0,4060, 0,6767]
3 0,1804 0,8571 (0,6767, 0,8571]
.. .. .. ..
. . . .

Por ejemplo, si U = 0,581, entonces X = 2

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 20 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Si no se puede encontrar una buena distribución teórica para modelar una cierta
variable aleatoria, se podrı́a utilizar la cdf empı́rica de los datos {Xi }i∈[n] ,

Z(x)
F̂n (x) ≡ ,
n
donde [n] = {1, 2, . . . , n} y Z(x) representa el número de Xi ’s ≤ x. Notar que
F̂n (x) es una función escalonada con saltos de altura 1/n (cada vez que se
produce una observación).
Una ventaja de este método es que incluso aunque X es continua, el lema
Glivenko-Cantelli dice que F̂n (x) → F (x) para todo x cuando n → ∞. Ası́, F̂n (x)
es una buena aproximación a la verdadera cdf, F (x)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 21 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas
Para esto, primero se definen los puntos ordenados, X(1) ≤ X(2) ≤ · · · ≤ X(n) .
E.g., si X1 = 4, X2 = 1 y X3 = 6, entonces X(1) = 1, X(2) = 4 y X(3) = 6

𝐹(𝑥)
cdf empírica 𝐹෠𝑛 (𝑥)
1

cdf verdadera 𝐹(𝑥)


2
3

1
3

1 2 3 4 5 6 7 𝑥

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 22 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas
n = 10 observaciones n = 30 observaciones
1.0 cdf (0, 1) cdf (0, 1)
cdf empírica cdf empírica
0.8
0.6
F(x)

0.4
0.2
0.0
n = 50 observaciones n = 500 observaciones
1.0 cdf (0, 1) cdf (0, 1)
cdf empírica cdf empírica
0.8
0.6
F(x)

0.4
0.2
0.0
4 2 0 2 4 4 2 0 2 4
x x

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 23 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Dado que sólo se tiene un número finito de n observaciones, podemos convertir la


cdf empı́rica en una variable aleatoria continua usando una interpolación lineal
entre los X(i) ’s. Sea


 0 x < X(1)
i−1 x−X(i)
F (x) = + (n−1)(X(i+1) −X(i) ) X(i) ≤ x < X(i+1) , ∀i ∈ [n − 1] ,
 n−1
1 x ≥ X(n)

y
1 Definir F (X) = U ∼ U (0, 1). Sea P = (n − 1)U y I = dP e
2 Resolver para obtener X = X(I) + (P − I + 1)(X(I+1) − X(I) )

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 24 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Ejemplo
𝐹(𝑥)
cdf empírica 𝐹෠𝑛 (𝑥)
Suponer X(1) = 1, X(2) = 4 y X(3) = 6. 1

Si U = 0,73, entonces 𝑈 = 0.73 cdf verdadera 𝐹(𝑥)

P = (n − 1)U = 1,46 y I = dP e = 2. 2
3

Ası́, cdf interpolada 𝐹(𝑥)

X = X(I) + (P − I + 1)(X(I+1) − X(I) ) 3

= X(2) + (1,46 − 2 + 1)(X(3) − X(2) ) 𝑋 = 4.92

1 2 3 4 5 6 7 𝑥

= 4 + (0,46)(6 − 4) = 4,92

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 25 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Check (forma un poco distinta):


(
0 + x−1 1 ≤ x < 4 (caso i = 1)
F (x) = 1 2·(4−1)x−4
.
2 + 2·(6−4) 4 ≤ x ≤ 6 (caso i = 2)

Estableciendo F (X) = U y resolviendo para los dos casos, tenemos


(
1 + 6U U < 12
X= .
2 + 4U U ≥ 12

Luego U = 0,55 implica X = 2 + 4 · (0,55) = 4,2

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 26 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Ejemplo
Podemos usar una cdf empı́rica aproximada cuando se trabaja con datos
agrupados. Veamos una muestra de 100 tiempos de reparación

Intervalo Frecuencia Frecuencia relativa F̂ (x) aproximada


0,25 ≤ x ≤ 0,5 31 0,31 0,31
0,5 < x ≤ 1,0 10 0,10 0,41
1,0 < x ≤ 1,5 25 0,25 0,66
1,5 < x ≤ 2,0 34 0,34 1,00

¿Cómo construir una realización X desde F̂ (x)? Usar el hecho de que


F̂ (X) ∼ U (0, 1) y aplicar la transformada inversa, i.e., X = F̂ −1 (U )

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 27 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas

Por ejemplo, si U ∈ (0,66, 1,0] (las últimas dos entradas F̂ (x) de la tabla),
entonces
 −1
F̂ (1,0) − F̂ −1 (0,66)

X = F̂ −1 (0,66) + (U − 0,66)
1,0 − 0,66
 
2,0 − 1,5
= 1,5 + (U − 0,66)
1,0 − 0,66
= 1,5 + 1,471 · (U − 0,66)

Por lo tanto, e.g., si U = 0,77, entonces X = 1,66181

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 28 / 52


Método de la Transformada Inversa: Distribuciones
Continuas Empı́ricas
Para hacer esto de forma general, se necesita:
1 Generar U ∼ U (0, 1)
2 Encontrar el intervalo F̂ (x) en el cual se encuentre U , i.e., i tal que
ri < U ≤ ri+1 . En el ejemplo anterior,
r1 r2 r3 r4 r5
0,0 0,31 0,41 0,66 1,0

3 Sea xi el extremo izquierdo del i-ésimo intervalo X, y sea αi el recı́proco de


la pendiente del i-ésimo intervalo
x1 x2 x3 x4 x5
0.25 0.50 1.0 1.5 2.0

α1 α2 α3 α4 α5
0.81 5.0 2.0 1.47 -

4 X = xi + αi (U − ri )
Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 29 / 52
Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 30 / 52


Método de Composición: Idea General

Suponer una variable aleatoria que proviene de dos variables aleatorias. E.g., un
avión puede salir tarde por dos razones: retrasos en el tráfico aéreo y en el
mantenimiento, que componen el tiempo total de retraso

Objetivo del método de composición


Generar una variable aleatoria con cdf

X
F (x) = pi Fi (x),
i=1

donde pi > 0 para todo i, 1> p = 1, y los Fi (x)’s son cdf’s “fáciles” para generar
realizaciones. Esto se hace de la siguiente manera
1 Generar I ∈ Z+ tal que P(I = i) = pi para todo i
2 Retornar X de la cdf FI (x)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 31 / 52


Método de Composición: Idea General

Demostración.
Por la ley de probabilidad total (ver Capı́tulo 1), X tiene cdf F (x):

X
P(X ≤ x) = P(X ≤ x|I = i)P(I = i)
i=1
X∞
= Fi (x)pi
i=1
= F (x)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 32 / 52


Método de Composición: Ejemplo

Distribución de Laplace
La distribución exponencial doble (o Laplace) es representada por
( (
0,5ex x<0 0,5ex x<0
f (x) ≡ y F (x) ≡
0,5e−x x>0 1 − 0,5e−x x>0
𝑓(𝑥)

𝐹(𝑥)

𝑥 𝑥

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 33 / 52


Método de Composición: Ejemplo

Distribución de Laplace
Por ahora, descompongamos X en distribuciones “exponenciales negativas” y
exponenciales regulares
( (
ex x<0 0 x<0
F1 (x) ≡ y F2 (x) ≡ .
1 x>0 1 − e−x x>0

Luego, F (X) = 0,5F1 (x) + 0,5F2 (x).


Usaremos la transformada inversa para resolver F1 (X) = eX = U en términos de
X la mitad de las veces, y F2 (X) = 1 − e−X = U la otra mitad. Luego,
(
ln(U ) c.p. 0,5
X←
− ln(U ) c.p. 0,5

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 34 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 35 / 52


Método de Convolución: Idea General

Definición 4.1
Convolución hace referencia a la suma de cosas

Ejemplo: distribución binomial


Pn
Si {Xi }i∈[n] ∼ Bern(p) son iid, entonces Y = i=1 Xi ∼ Bin(n, p).
Ya sabemos cómo obtener variables aleatorias Bernoulli a través de la
transformada inversa: suponer que {Ui }i∈[n] son U (0, 1) iid. Si Ui ≤ p, definir
Xi = 1; en otro caso, definir Xi = 0. Repetir para i = 1, . . . , n. Sumar hasta
obtener Y .
Por ejemplo, si Y ∼ Bin(3, 0,4) y U1 = 0,63, U2 = 0,17 y U3 = 0,81, entonces
Y =0+1+0=1

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 36 / 52


Método de Convolución: Ejemplos

Ejemplo: distribución triangular


Se puede mostrar que si U1 y U2 son U (0, 1) iid, entonces U1 + U2 es
Tria(0, 1, 2). (Esto es más fácil–pero quizás no más rápido–que nuestro método de
la transformada inversa)

+ =

0 1 0 1 0 1 2

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 37 / 52


Método de Convolución: Ejemplos

Ejemplo: distribución de Erlang


Pn
Si {Xi }i∈[n] ∼ Exp(λ) son iid, entonces Y = i=1 Xi ∼ Erlang(λ). Por la
transformada inversa, tenemos
n
X
Y = Xi
i=1
n  
X 1
= −
ln(Ui )
i=1
λ
Y n 
1
= − ln Ui .
λ i=1

Esto sólo toma una evaluación de logaritmo natural, por lo que es bastante
eficiente

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 38 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 39 / 52


Método de Aceptación y Rechazo: Idea General

Motivación
La mayorı́a de las cdf’s no pueden ser invertidas fácilmente. Aceptación y rechazo
(A-R) muestrea desde una distribución que es “casi” la que queremos, y luego lo
ajusta al “aceptar” sólo una cierta proporción de estas muestras

Ejemplo simple
Generar una variable aleatoria U (2/3, 1). Aquı́ está el algoritmo A-R
1 Generar U ∼ U (0, 1)
2 Si U ≥ 2/3, se acepta X ← U . En otro caso, se rechaza y se vuelve al Paso 1

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 40 / 52


Notación
Suponer que queremos simular una variable aleatoria continua X con pdf f (x),
pero que es difı́cil de generar directamente. También suponer que podemos
fácilmente generar una variable aleatoria con pdf h(x) ≡ t(x)/c, donde t(x)
“mayoriza” (majorizes) f (x), i.e.,
t(x) ≥ f (x) x ∈ R,
y Z Z
c≡ t(x)dx ≥ f (x)dx = 1,
R R
donde asumimos que c < ∞
0.5 f(x)
t(x)
0.4

0.3
f(x)

0.2 Rechazar

0.1
Aceptar
0.0
6 4 2 0 2 4 6
x
Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 41 / 52
Notación

Usualmente, f (x) y t(x) son conocidas como las distribuciones objetivo (target) y
propuesta (proposal), respectivamente

Teorema 5.1 (von Neumann 1951)


Definir g(x) ≡ f (x)/t(x) y notar que 0 ≤ g(x) ≤ 1 para todo x. Sea U ∼ U (0, 1),
y sea Y una variable aleatoria (independiente de U ) con pdf h(y) = t(y)/c. Si
U ≤ g(Y ), entonces Y tiene pdf (condicional) f (y)

Esto sugiere el siguiente algoritmo

Resultado: Muestra de f (x) a partir de h(y)


repetir
Generar U desde U (0, 1)
Generar Y desde h(y) (independiente de U )
g(Y ) = ft(Y
(Y ) f (Y )
) = c·h(Y )
hasta que U ≤ g(Y );
devolver X ← Y

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 42 / 52


Ejemplo

Ejemplo
Generar una variable aleatoria con pdf f (x) = 60x3 (1 − x)2 para 0 ≤ x ≤ 1. Esta
no se puede invertir analı́ticamente. Notar que el máximo ocurre en x = 0,6, y
f (0,6) = 2,0736.
Usando la majorizing function t(x) = 2,0736 para 0 ≤ x ≤ 1 (que no es muy
R1
eficiente), obtenemos c = 0 t(x)dx = 2,0736, y ası́

t(y)
h(y) = = 1,
c
con 0 ≤ y ≤ 1 (i.e., una pdf U (0, 1)), y

f (y) 60y 3 (1 − y)2


g(y) = = .
t(y) 2,0736

E.g., si generamos U = 0,13 e Y = 0,25, entonces U ≤ g(0,25) = 60Y 3 (1 − Y )2 ,


ası́ tomamos X ← 0,25

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 43 / 52


Ejemplo

Ejemplo
−x 2
Generar una variable aleatoria semi-normal estándar con pdf f (x) = √2 e 2

para x ∈ R+ . Usando la majorizing function
r
2e −x
t(x) = e ≥ f (x) ∀x ≥ 0,
π
tenemos

2e ∞ −x
r Z r
2e
c= e dx = = 1,3155,
π 0 π
t(y)
h(y) = = e−y ,
c
y
f (y) −(y−1)2
g(y) = =e 2
t(y)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 44 / 52


Ejemplo

Podemos usar el resultado de la semi-normal para generar una realización N (0, 1)


de la siguiente forma:
1 Generar U desde U (0, 1)
2 Generar X desde la distribución semi-normal
3 Retornar (
−X U ≤ 0,5
Z= .
X U > 0,5

Recordatorio: Podemos entonces generar una variable aleatoria N (µ, σ 2 ) usando


la transformación obvia µ + σZ

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 45 / 52


Contenido

1 Introducción

2 Método de la Transformada Inversa

3 Método de Composición

4 Método de Convolución

5 Método de Aceptación y Rechazo

6 Otros Métodos

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 46 / 52


Método Box-Muller

El método Box-Muller es una forma sencilla para generar normales estándar

Teorema 6.1
Si U1 , U2 son U (0, 1) iid, entonces
p
Z1 = −2 ln(U1 ) cos(2πU2 )
p
Z2 = −2 ln(U1 ) sin(2πU2 )

son N (0, 1) iid

Notar que los cálculos trigonométricos deben realizarse en radianes

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 47 / 52


Método Box-Muller

1.0
3

0.8
2

0.6 1

Z2
U2

0
0.4
1

0.2 2

3
0.0
0.0 0.2 0.4 0.6 0.8 1.0 4 3 2 1 0 1 2 3 4
U1 Z1

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 48 / 52


Método Box-Muller

Algunos corolarios interesantes siguen directamente de Box-Muller

Ejemplo
Notar que
Z12 + Z22 ∼ χ2 (1) + χ2 (1) ∼ χ2 (2).
Pero,

Z12 + Z22 = −2 ln(U1 ) cos2 (2πU2 ) + sin2 (2πU2 )




= −2 ln(U1 )
= Exp(1/2).

Por tanto, acabamos de demostrar que

χ2 (2) ∼ Exp(1/2)

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 49 / 52


Método Polar

Este método es un poco más rápido que Box-Muller. Se puede resumir como:
1 Generar U (0, 1) iid U1 , U2 .
Sea Vi = 2Ui − 1 para i = 1, 2, y W = V12 + V22 .
2 Si W > 1, rechazar y volver al Paso 1. En otro caso, definir
p
Y = −2 ln(W )/W ,

y aceptar Zi ← Vi Y para i = 1, 2.
Luego, Z1 y Z2 son N (0, 1) iid

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 50 / 52


Polar Method

Estado
1.2 Aceptado 3
Rechazado
1.0 2

0.8 1

0.6 0

Z2
U2

0.4 1
0.2 2
0.0
3
0.2
4
0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 4 3 2 1 0 1 2 3 4
U1 Z1

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 51 / 52


Universidad Andrés Bello
Facultad de Ingenierı́a
Ingenierı́a Civil Industrial

Generación de Variables Aleatorias


ICI3217 - Simulación

Marcel Favereau

Primer Semestre 2022

Marcel Favereau (UNAB) Generación de Variables Aleatorias ICI3217 / 2022-1 52 / 52

También podría gustarte