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.