Está en la página 1de 18

Generacin de variables aleatorias continuas Mtodo de rechazo

Patricia Kisbye
FaMAF

22 de abril, 2010

El mtodo de rechazo

Sea X una v. a. con densidad f : F (x) = P(X x) =

f (t) dt.

Supongamos que se tiene un mtodo para generar Y , con densidad g, y que f (y ) c, g(y ) para todo y R tal que f (y ) = 0.

El mtodo de rechazo para generar X a partir de Y tiene el siguiente algoritmo:

Mtodo de rechazo

Algoritmo: Mtodo de aceptacin 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 mtodo de rechazo tiene densidad f . 2. El nmero de iteraciones del algoritmo es una variable aleatoria geomtrica con media c.

Clculo de la cota c

h(x) =

f (x) g(x)

Debe analizarse si h(x) est acotada superiormente. Determinar mximos locales de h. Evaluar h en los extremos (nitos) del intervalo. Analizar si h posee mximos absolutos. Determinar el mximo de h en base a la informacin anterior.

Ejemplo
Ejemplo
Utilizar el mtodo de rechazo para generar una v. a. con funcin de densidad f (x) = 20x(1 x)3 , 0 < x < 1.

f (x) =

( + ) 1 x (1 x)1 I(0,1) (x) ()()

Variable

X es una v. a. Beta (2, 4). Est acotada en (0, 1). Se puede aplicar el mtodo de rechazo con g(x) = 1, 0 < x < 1. Hallar c tal que f (x) f (x) = c g(x) 1

Ejemplo

h(x) h (x)

f (x) = 20x(1 x)3 , 1 = 20(1 x)2 (1 4x)

0<x <1

Puntos crticos: x = 1/4. h(0) = h(1) = 0, luego 0 y 1 no son mximos. h(1/4) > 0, por lo tanto x = 1/4 es un mximo. h(1/4) = 135/64 es el valor mximo de h c= 135 = 2.109375 64

Ejemplo

Puntos crticos: x = 1/4. h(1) = h(0) = 0, luego no es un mximo. x = 1/4 es un mximo. h(1/4) = 135/64 es el valor mximo: c.

Ejemplo

f (x) 1280 256 f (x) = = x(1 x)3 = x(1 x)3 c g(x) 135/64 135 27 Algoritmo: Mtodo de aceptacin y rechazo repeat Generar V U(0, 1); Generar U U(0, 1) until U < 256 V (1 V )3 ; 27 X V El promedio del nmero de ciclos es c = 135 2.11. 64

Ejemplo
Ejemplo
3 Generar una v. a. con densidad gamma ( 2 , 1):

f (x) = Kx 1/2 ex , con K = 1/( 3 ) = 2/ . 2 X gamma(, ) =

x > 0,

x 1 e x . ()

E[X ] = /. X toma valores reales, no negativos. En el ejemplo, la media es 3/2. Es razonable rechazar con una exponencial de igual media.

Ejemplo: generacin de gamma ( 3 , 1) 2

Y E( 2 ) 3
2 g(x) = 3 e2/3 x ,

x > 0.
1/2 x/3

f (x)/g(x) = 3K 2 3 1/2 c = 3 2e

Ejemplo: generacin de gamma ( 3 , 1) 2

f (x) = cg(x) Algoritmo: Mtodo de rechazo repeat Generar V U(0, 1); Y 3 log(V ); 2 Generar U U(0, 1) until U < X Y
2e 1/2 3

2e 3

1/2

x 1/2 ex/3

c=3

3 2e

1/2

1.257

Y 1/2 eY /3 ;

Ejemplo
Es cierto que es razonable rechazar con una exponencial de igual media que la gamma? Tomamos g(x) = ex , exponencial con razn , media 1/. Obtenemos: f (x) Kx 1/2 e(1)x = , g(x) 0<<1

Mximo en Valor mximo

1 , 0 < < 1. 2(1 ) K c = (2(1 ))1/2 e1/2 . x=

2 minimiza el valor de c. 3

Generacin de una v. a. normal

Ejemplo
Generar una v. a. normal estndar, es decir, Z con densidad
2 1 f (x) = ex /2 . 2

|Z | tiene densidad f|Z | (x) =

2 2 e x /2 , 2

en 0 < x < .

Si sabemos generar |Z |, generamos Z por composicin.

Generacin de una v. a. normal

Para generar |Z |: Elegimos g(x) = ex , 0 < x < . Resulta c = c 1.32. 2e/

Generacin de una v. a. normal

f (x) (x 1)2 = exp cg(x) 2 Generacin 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

U < exp{ (Y 1) } 2 log(U) >


(Y 1)2 2

Y2 = log(U) E(1).

Generacin de una v. a. normal

Generacin de |Z | repeat Generar Y1 E(1); Generar Y2 E(1) until Y2 > (Y1 1)2 /2} ; |Z | Y1 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. Luego podemos generar la normal y tambin una exponencial.

Generacin de una v. a. normal

Generacin 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

Generacin de una v. a. normal

Observaciones. c 1.32. Para generar una secuencia de normales, se puede utilizar X como siguiente exponencial: en promedio, se necesitan generar 1.64 exponenciales y calcular 1.32 cuadrados.

También podría gustarte