Click here to load reader

Generación de variables aleatorias discretas Método de ...jgimenez/Modelos_y... · Marsaglia (1963) propone la siguiente mejora el método de la urna. I Se utiliza un vector v k,

  • View
    226

  • Download
    0

Embed Size (px)

Text of Generación de variables aleatorias discretas Método de ...jgimenez/Modelos_y... · Marsaglia...

  • Generacin de variables aleatorias discretasMtodo de aceptacin y rechazo

    Mtodo de composicinMtodo de la urnaMtodo de tablas

    Georgina Flesia

    FaMAF

    11 de abril, 2013

  • Mtodo de Aceptacin y Rechazo

    I Se desea simular una v. a. X discreta, con probabilidad de masapj = P(X = j), j = 0,1,2, . . . .

    I Hiptesis: Se conoce un mtodo eficiente para generar una v.a.Y , con probabilidad de masa qj = P(Y = j), j = 0,1,2, . . . , queverifica

    I Si pj 6= 0 entonces qj 6= 0.I Existe una constante c (c > 1) tal que

    pjqj c para todo j tal que pj > 0

  • Mtodo de Aceptacin y Rechazo

    1

    Generar YGenerar U

    U Recha

    za

    Acepta

    pY

    cqY

  • Mtodo de Aceptacin y Rechazo

    Algorithm 1: Mtodo de aceptacin y rechazorepeat

    Simular Y , con probabilidad de masa qY ;Generar U U(0,1)

    until U < pY/cqY ;X Y

    TeoremaEl algoritmo de aceptacin y rechazo genera una variable aleatoria Xa valores enteros no negativos tal que

    P(X = j) = pj , j = 0,1, . . . .

    Adems, el nmero de iteraciones requeridas para obtener X es unav.a. geomtrica con media c.

  • Demostracin

    Sea X el valor generado por el algoritmo 1. Quiero ver que

    P(X = j) = pj

    . Observemos queI (X = j) si y slo si (Y = j) y el algoritmo lo acepta en alguna

    iteracin:

    P(X = j) =k1

    P(j es aceptado en la iteracin k)

    I (j es aceptado en la iteracin k ) significa que hay k iteracionesdonde

    1. en las k 1 primeras el algoritmo rechaza2. y en la ultima, la k -esima, Y genera j y el algoritmo lo acepta

  • P(j aceptado en la iteracin k) =

    P( algoritmo rechaza k1 veces )P((Y = j) j es aceptado en la k)

    por la independencia de las iteraciones

    = P( algoritmo rechaza)k1 P((Y = j) j es aceptado)

  • En una iteracin fijaI Probabilidad de que el algoritmo acepte el valor j

    P((Y = j) j es aceptado) = P(j es aceptado | (Y = j))P(Y = j)

    =pjcqj

    qj

    =pjc

    I Probabilidad de que el algoritmo acepte en una iteracin

    P( el algoritmo acepte) =

    j

    P((Y = j) j es aceptado) =

    j

    pjc

    =1c

    P( el algoritmo rechace) = 1 1c

    I G es la variable que mira el nmero de iteraciones necesarias,entonces G es geomtrica de parmetro 1/c.

  • P(X = j)

    P(X = j) = P(j sea aceptado en alguna iteracin)

    =

    k=1

    P(j sea aceptado en la iteracin k)

    =

    k=1

    P( el algoritmo rechaza)k1 P((Y = j) j es aceptado)

    =

    k=1

    (1 1

    c

    )k1 pjc

    = pj

  • Ejemplo: Mtodo de rechazo

    EjemploGenerar una v.a. X con valores en {1,2, . . . ,10} y probabilidades0.11, 0.12, 0.09, 0.08, 0.12, 0.10, 0.09, 0.09, 0.10, 0.10

    I Mtodo de la transformada inversa: implica una media (mnima)de 5,04 iteraciones.

    I Mtodo de aceptacin y rechazo: c = 1.2. La media deiteraciones es 1,2.

  • Mtodo de Composicin

    Se tienen mtodos eficientes para generar valores de v. a. X1 y X2,con funciones de probabilidad de masa

    X1 :{pj j = 0,1, . . . } X2 : {qj j = 0,1, . . . .}

    El mtodo de composicin permite generar una v.a. X con funcin deprobabilidad de masa

    P(X = j) = pj + (1 )qj j = 0,1, . . . , 0 < < 1

    X =

    {X1 con probabilidad X2 con probabilidad 1

  • Mtodo de Composicin

    Algorithm 2: Algoritmo: Mtodo de composicin para dos v.a.Generar U U(0,1);if U < then

    X X1else

    X X2end

    P(X = j) = P(U < , X1 = j) + P( < U < 1, X2 = j)= P(U < )P(X1 = j) + P( < U < 1)P(X2 = j)= pj + (1 )qj

  • Mtodo de composicin

    EjemploGenerar X tal que

    pj = P(X = j) =

    {0.05 para j = 1,2,3,4,50.15 para j = 6,7,8,9,10

    (0.05) 5=0.25(0.15) 5=0.75

    Algorithm 3:Generar U U(0,1);if U

  • Mtodo de composicin

    EjemploGenerar X tal que

    pj = P(X = j) =

    {0.05 para j = 1,2,3,4,50.15 para j = 6,7,8,9,10

    (0.05)10=0.5(0.10)5=0.5

    Algorithm 4: Otra solucinGenerar U U(0,1);if U

  • Mtodo de Aceptacin y Rechazo

    Algunos casos particulares:

    I Si Y U [1,n].I Si X es condicional a Y n.

    I c = maxj{n pj}I c = 1/P(Y n)

  • Algorithm 5: ]Y uniforme en [1,n]repeat

    GenerarV U(0,1);Y bn VcGenerarU U(0,1)

    until U < n pY/c;X Y

    Algorithm 6: P(X = j) = P(Y = j | Y n)repeat

    Simular Yuntil Y n;X Y

  • Mtodo de la transformada inversa

    X : {x0, x1, . . . }, con P(X = xi) = pi .

    Algorithm 7: Transformada InversaF p0, i 0;Generar U U(0,1);while U > F do

    i i + 1;F F + pi ;

    endX xi

    I El algoritmo recorre desde un valor en adelante.I Para una v.a. discreta en general, realiza muchas bsquedas.

    Veamos algunas alternativas.

  • Mtodo de la Urna

    I X toma un nmero finito de valores: {x1, x2, . . . , xn}I Cada pi = ki 10q , con ki entero y q fijo. Esto es:

    ni=1

    ki = 10q

    q: es el nmero mximo de dgitos decimales.I v : un vector de tamao 10q que contiene ki veces cada

    elemento xi .v = x1 . . . x1

    k1

    x2 . . . x2 k2

    . . . xn . . . xn kn

    Algorithm 8: Algoritmo: Variante AGenerar U U(0,1);J b10qUc+ 1;X vJ

  • Mtodo de la Urna

    EjemploX toma valores x1 = 8, x2 = 9, x3 = 10 y x4 = 11, con probabilidadesp1 = 0.2, p2 = 0.1, p3 = 0.4 y p4 = 0.3.

    q = 1

    p1 = 2 101, p2 = 1 101, p3 = 4 101, p4 = 3 101.

    v = 8 8 9 10 10 10 10 11 11 11

    U = 0.378 J = 4 X 10

  • Mtodo de la Urna

    Por qu funciona?

    P(X = j) = P(k1 + . . . kj1 < b10qUc k1 + . . . kj1 + kj)

    =kj

    10q= pj

    I Desventaja: Necesita 10q lugares de almacenamiento.I Advertencia: Si se redondean los datos para utilizar un q ms

    chico, recordar que

    ki debe resultar 1.

  • Mtodo de la Tabla

    Marsaglia (1963) propone la siguiente mejora el mtodo de la urna.I Se utiliza un vector vk , para cada posicin decimal:

    k = 1,2, . . . ,q.I En vk se almacena xi tantas veces como indique su posicin

    decimal k -sima.I Se calcula dk la probabilidad de ocurrencia del dgito de orden k :

    dk =suma de los dgitos de orden k en las probabilidades

    10k

  • Mtodo de la Tabla

    EjemploSea X con distribucin p(1) = 0.15, p(2) = 0.20, p(3) = 0.43,p(4) = 0.22,

    v = 1 2 2 3 3 3 3 4 4 m = 9

    w = 1 1 1 1 1 3 3 3 4 4 n = 10

    d1 =1 + 2 + 4 + 2

    10= 0.9 d2 =

    5 + 0 + 3 + 2100

    = 0.1

  • Mtodo de la tabla

    m = 9n = 10d1 = 0.9d2 = 0.1

    Algorithm 10: Mtodo de la tabla (Ejemplo)Input: v , w , m, nGenerar U U(0,1);if U < 0.9 then

    Generar V U(0,1);J bmVc;X vJ

    elseGenerar V U(0,1);J bnVc;X wJ

    end

  • Mtodo de la tabla

    Por qu funciona el algoritmo?

    P(X = 3) = P(X = 3 | elegir decenas)P(elegir decenas)+ P(X = 3 | elegir centenas)P(elegir centenas)

    =49

    0.9 +310

    0.1

    = 0.43

    I Ventaja sobre el anterior: mucho menor costo dealmacenamiento. (19 lugares en lugar de 100).

    I Desventaja: "Mayor" tiempo de ejecucin.