Generación de variables aleatorias discretas Método de aceptación y rechazo Georgina Flesia FaMAF 14 de abril, 2015 Método de Aceptación y Rechazo 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 Generar Y Generar U 1 U R a ech cqY za Acepta pY Método de Aceptación y Rechazo Algorithm 1: 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 X a valores enteros no negativos tal que P(X = j) = pj , j = 0, 1, . . . . Además, el número de iteraciones requeridas para obtener X es una v.a. geométrica con media c. Demostración Sea X el valor generado por el algoritmo 1. Quiero ver que P(X = j) = pj . Observemos que I (X = j) si y sólo si (Y = j) y el algoritmo lo acepta en alguna iteración: X P(X = j) = P(j es aceptado en la iteración k ) k ≥1 I (j es aceptado en la iteración k ) significa que hay k iteraciones donde 1. en las k − 1 primeras el algoritmo rechaza 2. y en la ultima, la k -esima, Y genera j y el algoritmo lo acepta P(j aceptado en la iteración k ) = P( algoritmo rechaza k − 1 veces ) P((Y = j) ∧ j es aceptado en la k ) por la independencia de las iteraciones = P( algoritmo rechaza)k −1 P((Y = j) ∧ j es aceptado) En una iteración fija I Probabilidad de que el algoritmo acepte el valor j P((Y = j) ∧ j es aceptado) I = P(j es aceptado | (Y = j))P(Y = j) pj qj = cqj pj = c Probabilidad de que el algoritmo acepte en una iteración fija P( el algoritmo acepte) = X P((Y = j)∧ j es aceptado) = j P( el algoritmo rechace) = 1 − I X pj j 1 c G es la variable que mira el número de iteraciones necesarias, entonces G es geométrica de parámetro 1/c. c = 1 c P(X = j) P(X = j) = = P(j sea aceptado en alguna iteración) ∞ X P(j sea aceptado en la iteración k ) k =1 = ∞ X P( el algoritmo rechaza)k −1 P((Y = j) ∧ j es aceptado) k =1 k −1 ∞ X pj 1 = 1− c c k =1 = pj Ejemplo: Método de rechazo Ejemplo Generar una v.a. X con valores en {1, 2, . . . , 10} y probabilidades 0.11, 0.12, 0.09, 0.08, 0.12, 0.10, 0.09, 0.09, 0.10, 0.10 I Método de la transformada inversa: implica una media (mínima) de 5,04 iteraciones. I Método de aceptación y rechazo: c = 1.2. La media de iteraciones es 1,2. Método de Aceptación y Rechazo Algunos casos particulares: I Si Y ∼ U[1, n]. I c = maxj {n pj } I Si X es condicional a Y ≤ n. I c = 1/P(Y ≤ n) Algorithm 2: ] Y uniforme en [1,n] repeat Generar V ∼ U(0, 1); Y ← bn V c Generar U ∼ U(0, 1) until U < n pY /c; X ←Y Algorithm 3: P(X = j) = P(Y = j | Y ≤ n) repeat Simular Y until Y ≤ n; X ←Y