Académique Documents
Professionnel Documents
Culture Documents
M. Teresa Rodrı́guez
Proposición
Supongamos que X tiene función de distribución continua F (x) y
estrictamente creciente siempre que 0 < F (x) < 1. Sea U ∼ U (0, 1).
Entonces, la variable aleatoria F −1 (U ) tiene como función de distribución
a F.
FX (x) = P (F −1 (U ) ≤ x) = P (F (F −1 (U )) ≤ F (x))
= P (U ≤ F (x)) = F (x)
M. Teresa Rodrı́guez (EIO I) SIMULACIÓN 3 / 52
Método de inversión
Generar U ∼ U (0, 1)
X = F −1 (U )
Ejemplo
Vamos a simular de la distribución uniforme continua.
1
Sea X ∼ U (a, b), de modo que f (x) = b−a para a < x < b. Entonces
0 x<a
x−a
F (x) = b−a a≤x<b
1 x≥b
x−a
U =
b−a
x = a + U (b − a)
Ejemplo (continuación)
El algoritmo para generar un valor de X es
Generar U ∼ U (0, 1)
X = a + U (b − a)
Ejemplo
Vamos simular de la distribución exponencial.
Ejemplo (continuación)
Entonces, genero U ∼ U (0, 1) y tomo
U = 1 − exp{−λx}
exp{−λx} = 1 − U
−λx = ln(1 − U )
ln(1 − U )
x = −
λ
o equivalentemente, x = − ln(U
λ
)
Ejemplo (continuación)
El algoritmo para generar un valor de X es
Generar U ∼ U (0, 1)
X = − ln(U
λ
)
Ejemplo
Vamos a simular de la distribución Gamma.
λn
f (x) = exp{−λx}xn−1 para x > 0
(n − 1)!
y la función de distribución es
Zx
λn
F (x) = exp{−λy}y n−1 dy para x > 0
(n − 1)!
0
Ejemplo (continuación)
Al no existir una fórmula explı́cita de la integral anterior, no resulta posible
aplicar directamente el método de inversión.
n
X
Xi ∼ Gamma(n, λ)
i=1
Ejemplo (continuación)
Esto sugiere utilizar el siguiente algoritmo
Entonces, como
X
X X+1
X
Ti ≤ 1 < Ti
i=1 i=1
X+1
P
vamos a ir generando valores hasta que Ti > 1
i=1
Hacer t = 0, i = 0
Hasta que t > 1
Generar U ∼ U (0, 1)
t = t − λ1 ln U
i=i+1
X = i − 1 y salir
X
X X+1
X
Ti ≤ 1 < Ti
i=1 i=1
X X+1
1X 1 X
− ln Ui ≤ 1 < − ln Ui
λ λ
i=1 i=1
X
Y X+1
Y
Ui ≥ e−λ > Ui
i=1 i=1
P (X = r) = P ([Y ] = r) = P (r ≤ Y < r + 1)
r+1
Z
= λe−λs ds = (e−λ )r (1 − e−λ ) = (1 − p)r p
r
Generar U ∼ U (0, 1)
h i
ln U
Hacer X = ln(1−p) y salir
Rx
f (y)dy Zx
−∞
= = f (y)dy = F (x)
R∞
f (y)dy −∞
−∞
M. Teresa Rodrı́guez (EIO I) SIMULACIÓN 21 / 52
Método del rechazo
Observamos que
f (y)
f (x) R∞ g(y)
R g(y) 1
P (aceptar x) = P (Ua ≤ g(x) ) =
a dua dy = a , es decir
−∞ 0
1
la eficiencia del método es a
Si W ={número de pruebas hasta aceptar un valor}, entonces
W ∼ Geom( a1 )
Además, E(W ) = a, es decir, el número medio de iteraciones
necesarias hasta conseguir aceptar un valor es a
Cuanto más pequeño sea a, es decir, más próximo esté a 1, mejor
será el método
Ejemplo
Vamos a generar de la distribución beta. Supongamos que queremos
generar X ∼ Beta(3, 4)
La función de densidad es
Γ(3 + 4) 3−1
f (x) = x (1 − x)4−1 = 60x2 (1 − x)3
Γ(3)Γ(4)
Ejemplo (continuación)
Sea Y ∼ U (0, 1), de forma que g(y) = 1 para 0 < y < 1
Entonces,
f (x) 2
arg max = arg max 60x2 (1 − x)3 =
0<x<1 g(x) 0<x<1 5
f (2/5) 1296 f (x) 625 2
y por tanto, a = g(2/5) = 625 y ag(x) = 1296 60x (1 − x)3
Ejemplo (continuación)
El algoritmo para generar X es
625 2
Hasta que U2 ≤ 1296 60U1 (1 − U1 )3
Generar U1 ∼ U (0, 1) y U2 ∼ U (0, 1)
Hacer X = U1 y salir
Ejemplo
Vamos a generar de la distribución Gamma. La función de densidad de
la distribución Gamma(α, 1) es
xα−1 e−x
f (x) =
Γ(α)
para 0 ≤ x < ∞ y α > 0
Ejemplo (continuación)
Entonces, f (x) ≤ ag(x) si
xα−1 si 0 ≤ x ≤ 1
g(x) = k
e−x si x > 1
R1 R∞
donde k y α−1 dy + k e−y dy = 1, es decir k = 1
1
+ 1e
0 1 α
Ejemplo (continuación)
Si 0 ≤ x ≤ 1, entonces
y si x > 1
1
de donde a = Γ(α)k
Ejemplo (continuación)
Entonces
e−x
f (x) si 0 ≤ x ≤ 1
=
ag(x) xα−1 si x > 1
Ejemplo (continuación)
El algoritmo es
e−Y
si 0 ≤ Y ≤ 1
Hasta que U ≤
Y α−1 si Y > 1
Generar U ∼ U (0, 1)
Generar Y ∼ g
Hacer X = Y y salir
Z
f (x) = g(x|y)dH(y)
Generar Y ∼ H
Generar X ∼ g(·|Y ) y salir
Ejemplo
Vamos a simular la densidad predictiva de un modelo Bayesiano
Z
f (x) = f (x|θ)dπ(θ)
Ejemplo
Vamos a simular de una mixtura de exponenciales
f (y) = ny −n−1
si y > 1 y n ≥ 1
Y = H −1 (U )
H(Y ) = U
1 − Y −n = U
Y = (1 − U )−1/n
M. Teresa Rodrı́guez (EIO I) SIMULACIÓN 35 / 52
Método de composición
Ejemplo (continuación)
Es decir, genero U ∼ U (0, 1) y entonces Y = U −1/n
El algoritmo es el siguiente
n
X n
X
f (x) = pi g(x|Y = i) = pi gi (x)
i=1 i=1
n
P
siendo pi = P (Y = i), pi = 1 y gi (x) funciones de densidad
i=1
Generar Y ∼ {pi }
Generar X ∼ gY y salir
M. Teresa Rodrı́guez (EIO I) SIMULACIÓN 37 / 52
Distribución normal
Método de inversión
U 0.135 − (1 − U )0.135
X = F −1 (U ) ≈
0.1975
n
Ui − n2
P
X = i=1
p
n/12
tiene como distribución asintótica una N (0, 1)
n
Ui − n2
P
12
X = i=1
X
p = Ui − 6
n/12 i=1
Método de Box-Muller
1 x2 1 y2
f (x, y) = f (x)f (y) = √ exp{− } √ exp{− }
2π 2 2π 2
1 2
x +y 2
= exp{− }
2π 2
R2 = X 2 + Y 2
Y
tan θ =
X
Entonces
X = R cos θ
Y = R sin θ
∂X ∂X cos θ
−R sin θ cos2 θ + sin2 θ
∂R2 ∂θ
2R
1
J = ∂Y ∂Y
=
sin θ = =
∂R2 ∂θ
2R R cos θ 2 2
Entonces
1 1 −r2
f (r2 , θ) = exp{ }
2 2π 2
para r2 ≥ 0 y 0 ≤ θ ≤ 2π
Además
1 1 −r2
f (r2 , θ) = exp{ } = f (θ)f (r2 )
2π 2 2
Generar U1 , U2 ∼ U (0, 1)
√
Hacer X = −2 ln U1 cos{2πU2 }
√
Hacer Y = −2 ln U1 sin{2πU2 } y salir
Variante de Marsaglia
A = {(x, y) ∈ R2 : −1 ≤ x ≤ 1, −1 ≤ y ≤ 1}
C = {(x, y) ∈ R2 : x2 + y 2 ≤ 1}
1
De esta forma (V1 , V2 ) ∼ U (C), de donde f (v1 , v2 ) = π
R2 = V12 + V22
V2
tan θ =
V1
V1 = R cos θ
V2 = R sin θ
1
siendo J = 2
Entonces
1
f (r2 , θ) = = f (θ)f (r2 )
2π
Entonces,
√ volviendo a las√ecuaciones de Box-Muller, se hace
X = −2 ln U1 cos θ = −2 ln U1 VR1
√ √
Se hace Y = −2 ln U1 sin θ = −2 ln U1 VR2
Ahora, como U = V12 + V22 ≤ 1 y en este caso, √
R2 = U = V12 + V22 ∼ U (0, 1), sustituyo U1 por U y R por U
Entonces
r
√ V1 −2 ln U
X = −2 ln U √ = V1
U U
r
√ V2 −2 ln U
Y = −2 ln U √ = V2
U U
Hasta que U ≤ 1
Generar U1 , U2 ∼ U (0, 1), hacer V1 = 2U1 − 1, V2 = 2U2 − 1 y
U = V12 + V22
q q
Hacer X = V1 −2Uln U e Y = V2 −2Uln U y salir