Generación de variables aleatorias continuas Método de rechazo

Anuncio
Generación de variables aleatorias continuas
Método de rechazo
Georgina Flesia
FaMAF
18 de abril, 2013
Método de Aceptación y Rechazo
Repaso
I
Se desea simular una v. a. X discreta, con probabilidad de masa
pj = P(X = j), j = 0, 1, 2, . . . .
I
Hipótesis: Se conoce un método eficiente para generar una v.a.
Y , con probabilidad de masa qj = P(Y = j), j = 0, 1, 2, . . . , que
verifica
I
I
Si pj 6= 0 entonces qj 6= 0.
Existe una constante c (c > 1) tal que
pj
≤c
qj
para todo j tal que pj > 0
Método de Aceptación y Rechazo
Algoritmo: Método de aceptación y rechazo
repeat
Simular Y , con probabilidad de masa qY ;
Generar U ∼ U(0, 1)
until U < pY /cqY ;
X ←Y
Teorema
El algoritmo de aceptación y rechazo genera una variable aleatoria
discreta tal que
P(Xj ) = pj ,
j = 0, 1, . . . .
Además, el número de iteraciones requeridas para obtener X es una
v.a. geométrica con media c.
El método de rechazo
Veamos la version para variables continuas
Rx
I
Sea X una v. a. con densidad f : F (x) = P(X ≤ x) =
I
Supongamos que se tiene un método para generar Y , con
densidad g, y que
f (y )
≤ c,
g(y )
−∞
f (t) dt.
para todo y ∈ R tal que f (y ) 6= 0.
El método de rechazo para generar X a partir de Y tiene el siguiente
algoritmo:
Método de rechazo
Algoritmo: Método de aceptación y rechazo
repeat
Generar Y , con densidad g;
Generar U ∼ U(0, 1)
until U < f (Y )/(cg(Y ));
X ←Y
Teorema
1. La v. a. generada por el método de rechazo tiene densidad f .
2. El número de iteraciones del algoritmo es una variable aleatoria
geométrica con media c.
Cálculo de la cota c
h(x) =
f (x)
≤c
g(x)
¿Es h acotada superiormente? ¿Existe un máximo de h?
I
I
Determinar puntos críticos de h.
Un punto crítico x0 es un máximo local de h si en un entorno
(a, b) de x0 ocurre:
I
I
I
h0 (x) > 0 para x < x0 y h0 (x) < 0 para x > x0 , o
h00 (x0 ) < 0.
Evaluar h en los extremos del intervalo.
Ejemplo
Utilizar el método de rechazo para generar una v. a. con función de
densidad
f (x) = 20x(1 − x)3 ,
0 < x < 1.
f (x) =
Γ(α + β) α−1
x
(1 − x)β−1 I(0,1) (x)
Γ(α)Γ(β)
Variable β
I
X es una v. a. Beta (2, 4).
I
Está acotada en (0, 1).
I
Se puede aplicar el método de rechazo con g(x) = 1, 0 < x < 1.
I
Hallar c tal que
f (x)
f (x)
=
≤c
g(x)
1
Ejemplo
h(x)
h0 (x)
f (x)
= 20x(1 − x)3 ,
1
= 20(1 − x)2 · (1 − 4x)
=
0<x <1
I
Puntos críticos: x = 1 y x = 1/4.
I
h(0) = h(1) = 0, luego 0 y 1, los extremos del intervalo, no son
máximos.
I
h(1/4) = 135/64 > 0 por lo cual x = 1/4 es un máximo.
I
h(1/4) = f (1/4) = 135/64 es el valor máximo de h
c=
135
= 2.109375
64
Ejemplo
I
Puntos críticos: x = 1 y
x = 1/4.
I
f (1) = 0, luego no es un
máximo.
I
x = 1/4 es un máximo.
I
h(1/4) = f (1/4) = 135/64 es
el valor máximo: c.
Ejemplo
f (x)
f (x)
1280
256
=
=
x(1 − x)3 =
x(1 − x)3
c g(x)
135/64
135
27
Algoritmo: Método de aceptación y rechazo
repeat
Generar V ∼ U(0, 1);
Generar U ∼ U(0, 1)
3
until U < 256
27 V (1 − V ) ;
X ←V
I
El promedio del número de ciclos es c =
135
≈ 2.11.
64
Ejemplo
Generar una v. a. con densidad gamma ( 32 , 1):
f (x) = Kx 1/2 e−x ,
√
con K = 1/Γ( 32 ) = 2/ π.
X ∼ gamma(α, β) =
x > 0,
β α −βx α−1
e
x
.
Γ(α)
E[X ] = α /β.
I
X toma valores reales, no negativos.
I
En el ejemplo, la media es 3/2.
I
Es razonable rechazar con una exponencial de igual media.
Pero podemos despues verificar si no podemos hacer un
algoritmo mejor.
Ejemplo: generación de gamma ( 32 , 1)
I
Y ∼ E( 23 )
I
g(x) = 32 e−2/3 x ,
I
h(x) = f (x)/g(x) =
3K 1/2 −x/3
e
2 x
3 1/2
c = 3 2πe
I
x > 0.
Ejemplo
h(x)
=
h0 (x)
=
0
=
f (x)
= CTE x 1/2 e−x/3 ,
0<x
g(x)
−1 −x/3
1
e
]
CTE [ x −1/2 e−x/3 + x 1/2
2
3
1 −1/2 −x/3
−1 −x/3
x
e
+ x 1/2
e
2
3
3
2
|x| =
3
2
I
Puntos críticos:
I
h(0) < h( 32 ); h(2) < h( 23 ), luego 0 extremo del intervalo, no es
máximo y h( 32 es el máximo.
3 1/2
h( 32 = 3 2πe
por lo cual
I
cuando x>0.
c=3
3
2πe
1/2
Generación de una v. a. exponencial
Sabemos que
I
I
I
Si X ∼ E(λ), entonces c · X también es exponencial.
λ
c · X ∼ E( ).
c
Calculamos la inversa de la función de distribución de X ∼ E(1):
FX (x)
=
1 − e−x
u
=
1 − e−x
1−u
=
e−x
x
=
− loge (1 − u)
X ∼ E(1)
X ∼ E(λ)
Generar U;
X ← −log(U)
Generar U;
1
X ← − log(U)
λ
Ejemplo: generación de gamma ( 32 , 1)
f (x)
=
cg(x)
2e
3
1/2
x 1/2 e−x/3
Algoritmo: Método de rechazo
repeat
Generar V ∼ U(0, 1);
Y ← − 32 log(V );
Generar U ∼ U(0, 1)
1/2 1/2 −Y /3
until U < 2e
Y e
;
3
X ←Y
c=3
3
2πe
1/2
≈ 1.257
Ejemplo
I
¿Es cierto que es ”razonable” rechazar con una exponencial de
igual media que la gamma?
Tomamos g(x) = λ e−λx , exponencial con razón λ, media 1/λ.
Obtenemos:
f (x)
Kx 1/2 e−(1−λ)x
=
,
g(x)
λ
→
Máximo en
Valor máximo
λ=
→
0<λ<1
1
,
0 < λ < 1.
2(1 − λ)
K
c = (2(1 − λ))−1/2 e−1/2 .
λ
x=
2
minimiza el valor de c.
3
Generación de una v. a. normal
Ejemplo
Generar una v. a. normal estándar, es decir, Z con densidad
2
1
f (x) = √ e−x /2 .
2π
2
√2 e −x /2 ,
2π
en 0 < x < ∞.
I
|Z | tiene densidad f|Z | (x) =
I
Si sabemos generar |Z |, generamos Z por composición.
Generación de una v. a. normal
Para generar |Z |:
I
Elegimos g(x) = e−x ,
0 < x < ∞.
p
Resulta c = 2e/π
I
c ≈ 1.32.
I
Generación de una v. a. normal
f (x)
(x − 1)2
= exp −
.
cg(x)
2
Generación de |Z |
repeat
Generar V ∼ U(0, 1);
Y ← − log(V );
Generar U ∼ U(0, 1)
2
until U < exp{− (Y −1)
};
2
|Z | ← Y
2
I
U < exp{− (Y −1)
}
2
I
− log(U) >
I
Y2 = − log(U) ∼ E(1).
(Y −1)2
2
Generación de una v. a. normal
Generación de |Z |
repeat
Generar Y1 ∼ E(1);
Generar Y2 ∼ E(1)
until Y2 > (Y1 − 1)2 /2};
|Z | ← Y1
I
Si Y2 > (Y1 − 1)2 /2}, entonces X = Y2 − (Y1 − 1)2 /2 es
exponencial con media 1, por la propiedad de falta de memoria.
I
Luego podemos generar la normal y también una exponencial.
Generación de una v. a. normal
Generación de Z normal y X exponencial
repeat
Generar Y1 ∼ E(1);
Generar Y2 ∼ E(1)
until Y2 − (Y1 − 1)2 /2 > 0;
X ← Y2 − (Y1 − 1)2 /2;
Generar U ∼ U(0, 1);
if U < 0.5 then
Z = Y1
else
Z = −Y1
end
Generación de una v. a. normal
Observaciones.
I
c ≈ 1.32.
I
Para generar una secuencia de normales, se puede utilizar X
como siguiente exponencial:
I
en promedio, se necesitan generar 1.64 exponenciales y calcular
1.32 cuadrados.
Descargar