27
Método Polar para generación de variables normales Generación de eventos en Procesos de Poisson Georgina Flesia FaMAF 25 de abril, 2013

Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método Polar para generación de variablesnormales

Generación de eventos en Procesos dePoisson

Georgina Flesia

FaMAF

25 de abril, 2013

Page 2: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método polar

Con este método se generan dos variables normales independientes.

Si X e Y son normales estándar independientes, entonces

R2 = X 2 + Y 2, tan(θ) =YX

determinan variables R2 y Θ independientes.

f (x , y) =1

2πexp(−(x2 + y2)/2)

f (d , θ) =12

12π

e−d/2, 0 < d <∞, 0 < θ < 2π.

R2 y Θ resultan independientes, con R2 ∼ E(1/2) y Θ ∼ U(0,2π).

Page 3: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método polar

Método polarGenerar U1, U2 ∼ U(0,1);R2 ← −2 log(U);Θ← 2πU2;X ← R cos(Θ);Y ← R sen(Θ)

Transformaciones de Box-Muller:I X ←

√−2 log(U1) cos(2πU2)

I Y ←√−2 log(U1) sen(2πU2)

I El cálculo de funciones trigonométricas lo hace poco eficiente.I Se puede mejorar generando uniformes V1 y V2 en el círculo

unitario, para evitar el cálculo directo del seno y el coseno.

Page 4: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método polar

I Generar un par (V1,V2) uniformemente distribuido en el círculounitario.

I U ∼ U(0, 1), entonces 2U ∼ U(0, 2) y 2U − 1 ∼ U(−1, 1),I V1 = 2U1 − 1, V2 = 2U2 − 1, rechazo hasta que entren en el

círculo.I R2 = V 2

1 + V 22 resulta uniforme en (0,1).

I Θ = arctan V2/V1 es uniforme en (0,2π).I sen(θ) = V2

R

I cos(θ) = V1R

Page 5: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método polar

Transformacionesde Box Muller

X = (−2 log U)1/2 V1

(V 21 + V 2

2 )1/2

Y = (−2 log U)1/2 V2

(V 21 + V 2

2 )1/2

I S = V 21 + V 2

2 y Θ son independientes, luego podemos tomar

U = S = V 21 + V 2

2

Page 6: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Método polar

Transformacionesde Box Muller

X = (−2 log S)1/2 V1

S1/2

Y = (−2 log S)1/2 V2

S1/2

Método polar (última versión)repeat

Generar V1, V2 ∼ U(−1,1);S ← V 2

1 + V 22

until S < 1;

X ←√−2 log S

S V1;

Y ←√−2 log S

S V2

Page 7: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Generación de v. a. normales

Existen otros métodos de generación de v. a. normales. Uno de elloses el método rectangle-wedge-tail :

|Z |, Z ∼ N(0,1)

I 15 rectángulos (≈ 92%)I 15 ”triángulos”.I 1 cola.

Método de composición:I 15 distr. uniformes.I 16 restantes: método de

rechazo.Referencia: Donald E. Knuth,Seminumerical Algorithms, p.p.122 en adelante.

Page 8: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson homogéneo

N(t), t ≥ 0,

es un proceso de Poisson homogéneo de razón λ, λ > 0, si:I N(0) = 0 proceso comienza en cero

�� ������ ���� ��

t1 tn−1 tnt3t2

N(tn)− N(tn−1)N(t1)

0I En dos intervalos de tiempo disjuntos, las variables ”número de

llegadas” son independientes.I La distribución del número de llegadas depende sólo de la

longitud del intervalo.

N(s) ∼ N(t + s)− N(t), s < t .

Page 9: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Ocurrencia de 1 o más eventos

I La probabilidad de que ocurra un evento en un intervalo detiempo pequeño es proporcional al tamaño del intervalo.Constante = λ.

limh→0

P(N(h) = 1)

h= λ,

I La probabilidad de ocurrencia de dos o más eventos en unintervalo muy pequeño es cero.

limh→0

P(N(h) ≥ 2)

h= 0.

Page 10: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Consecuencias

I Supongamos que N(t) es el número de llegadas en el intervalode tiempo [0, t ], que forma un proceso de Poisson de tasa λ.Entonces, la distribución de cada N(t) es Poisson de tasa λt

I

�� ������ ���� ��X1 X3 Xn

e1 e2 e3 en−1 en

X2

{Xj}, la sucesión de tiempos entre llegadas, son v.a.independientes, igualmente distribuidas, con distribuciónexponencial con parámetro λ.

Xi ∼ E(λ), i = 1,2, . . . .

I Sn el tiempo hasta la n esima legada es Gamma de parámetros(n, λ).

Page 11: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Generación de un Proceso de Poisson homogéneo

�� ������ ���� ��X1 X3 Xn

e1 e2 e3 en−1 en

X2

Para generar los primeros n eventos de un Proceso de Poissonhomogéneo, generamos exponenciales Xi ∼ E(λ), 1 ≤ i ≤ n:

I Primer evento: al tiempo X1.I j-ésimo evento: al tiempo X1 + X2 + · · ·+ Xj , para 1 ≤ j ≤ n.

Para generar los eventos en las primeras T unidades de tiempo,generamos eventos hasta que j + 1 excede a T .

Page 12: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson homogéneo: Primer método

Generacion de eventos en el intervalot ← 0, I ← 0;while true do

Generar U ∼ U(0,1);if t − 1

λ log U > T thenstop

elset ← t − 1

λ log U;I ← I + 1;S[I]← t

endend

I I: número de eventos.I S[I]: tiempo en el que ocurre el evento I.I S[1],S[2], . . . , están en orden creciente.

Page 13: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson homogéneo: Segundo método

Supongamos quiero generar los primeros tiempos de arribo hastat = T .

I La variable N(T ) es el número de eventos hasta el tiempo T ,con distribución Poisson λT .

I Dado N(T ), la distribución de los tiempos de arribo en unProceso de Poisson homogéneo de razón λ es uniforme en(0,T ).

Luego, para generar los eventos hasta el tiempo T :I Generar una v. a. Poisson de media λT , y tomar n = N(T ).I Generar n v. a. uniformes U1,U2, . . . ,Un.I Los tiempos de arribo son: TU1,TU2, . . . ,TUn.

Notar que deben ordenarse los tiempos de arribo.

Page 14: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

El proceso de Poisson no homogéneo

N(t), t ≥ 0

es un proceso de Poisson no homogéneo con función de intensidadλ(t), t ≥ 0, si:

I N(0) = 0

I para cada n ≥ 1 y cada partición 0 ≤ t0 < t1 < · · · < tn se tieneque N(t0), N(t1)− N(t0), . . . , N(tn)− N(tn−1) son variablesaleatorias independientes.

I limh→0P(N(t + h)− N(t) = 1)

h= λ(t),

I limh→0P(N(t + h)− N(t) = 1) ≥ 2)

h= 0.

Page 15: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Número de eventos en (t , t + s]

ProposiciónPara cada t ≥ 0 y s > 0 se tiene que N(t + s)− N(t) es una variablealeatoria Poisson con media

m(t + s)−m(t) =

∫ t+s

tλ(x) dx .

CorolarioSi λ(t) = λ (es constante), N(t + s)− N(t) es una variable aleatoriaPoisson con media λt .

Page 16: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Poisson homogéneo y Poisson no homogéneo

Supongamos queI Existen eventos del tipo A y eventos del tipo B.I Independientemente de lo que ocurrió antes, si ocurre un evento

del tipo A entonces ocurre uno del tipo B con probabilidad p(t).I N(t)= número de eventos del tipo A en [0, t ]I M(t)= número de eventos del tipo B en [0, t ].

ProposiciónSi (N(t))t≥0 es un proceso de Poisson homogéneo con razón λ > 0,entonces M(t)t≥0 es un proceso de Poisson no homogéneo confunción de intensidad λ(t) = λ · p(t), ∀t > 0.

Page 17: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Poisson homogéneo y Poisson no homogéneo

I El proceso M(t) cumple con las condiciones de comenzar en elcero, tener incrementos independientes y probabilidad nula deobservar instantáneamente mas de un evento.

I Para ver la tasa instantánea de observar un evento

P(1 evento del tipo B en [t , t + h]) = P(un evento y es de tipo B)

+ P(dos o mas eventos y exactamente uno es de tipo B)

∼ λhp(t)

Page 18: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Generación de un Proceso de Poisson no homogéneo

Algoritmo de adelgazamiento

I En un Proceso de Poisson no homogéneo, con intensidad λ(t),los incrementos no son estacionarios,

I la intensidad λ(t) indica la tasa de ocurrencia de los eventos,

I si λ(t) ≤ λ, entonces λ(t) = λ · p(t) con p(t) = λ(t)λ < 1,

I podemos considerar p(t) = λ(t)/λ como la probabilidad deocurrencia de un cierto evento de un Proceso de Poissonhomogéneo de razón λ, y "adelgazar" el proceso homogéneopara obtener el proceso no homogeneo de intensidad λp(t).

Page 19: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Algoritmo de adelgazamiento

Generación de eventos en el inter-valot ← 0, I ← 0;while true do

Generar U ∼ U(0,1);if t − 1

λ log U > T thenstop

elset ← t − 1

λ log U;Generar V ;if V < λ(t)/λ then

I ← I + 1;S[I]← t

endend

end

I I: número de eventos.I S[1],S[2], . . . ,: tiempos de

eventos.I El algoritmo es más eficiente

cuánto más cerca esté λ deλ(t).

Page 20: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

Método de adelgazamiento mejorado

Un mejora consiste en particionar el intervalo (0,T ) en subintervalos,y aplicar el algoritmo anterior en cada uno de ellos:0 = t0 < t1 < · · · < tk < tk+1 = T

λ(s) ≤ λj ,si j − 1 ≤ s < j

Page 21: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneot ← 0; J ← 1; I ← 0;while true do

Generar U ∼ U(0,1);X ← − 1

λJlog U;

while t + X > tJ doif J = k + 1 then

stopendX ← (X − tJ + t) λJ

λJ+1;

t ← tJ ;J ← J + 1

endt ← t + X ;Generar V ∼ U(0,1);if V < λ(t)/λJ then

I ← I + 1;S[I]← t

endend

I I: número de eventos.I S[1],S[2], . . . ,: tiempos de

eventos.I El algoritmo es más eficiente

cuánto más cerca esté λ deλ(t).

Page 22: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

Otra mejora sobre este algoritmo es considerar el mínimo de λ(s) encada subintervalo.Por ejemplo, en un intervalo (ti−1, ti ):

I λmin = min{λ(s) | s ∈ (ti−1, ti )}En este intervalo los eventos ocurren con intensidad

(λ(s)− λmin) + λmin,

I Generar eventos de un P. P. homogéneo con razón λmin.I Intercalarlos con eventos de un P. P. no homogéneo con

intensidadλ̃(s) = λ(s)− λmin.

I Ventaja: Disminuye el número promedio de uniformes.

Page 23: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Ejemplo

Sea λ(s) = 10 + s 0 < s < 1. Adelgazamiento con λ = 11 tiene unamedia de 11 eventos, que pueden ser aceptados o no.

I 10 = min{λ(s) | s ∈ (0,1)}

I Generar eventos de un P. P. homogéneo con razón 10.

I Intercalarlos con eventos de un P. P. no homogéneo conintensidad

λ̃(s) = λ(s)− 10 = s.

que tiene media 1 de eventos necesarios.I Reduce de 11 a 1 el número de uniformes necesarias

Page 24: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

Otro método consiste en generar directamente los sucesivostiempos de evento.

I S1, S2, . . . : sucesivos tiempos de evento.I Estos tiempos de evento no son independientes.I Para generar Si+1, utilizamos el valor generado Si .I Dado que ha ocurrido un evento en t = Si , el tiempo hasta el

próximo evento es una variable aleatoria con la siguientedistribución:

Fs(x) = P{ocurra un evento en (s, s + x)}= 1− P{0 eventos en (s, s + x)}

= 1− exp(−∫ s+x

sλ(y) dy

)= 1− exp

(−∫ x

0λ(s + y) dy

)

Page 25: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

EjemploDescribir un algoritmo para la generación de eventos de un P. P. nohomogéneo con función de intensidad

λ(t) =1

t + 3, t ≥ 0.

∫ x

0λ(s + y) dy =

∫ x

0

1s + y + 3

dy = log(

x + s + 3s + 3

).

Fs(x) = 1− s + 3x + s + 3

=x

x + s + 3.

u = Fs(x) ⇒ x =u(s + 3)

1− u.

Page 26: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

F−1s (u) = (s + 3)

u1− u

.

Los sucesivos tiempos de eventos son entonces:

S1 =3U1

1− U1

S2 = S1 + (S1 + 3)U2

1− U2=

S1 + 3U2

1− U2

...

Sj = Sj−1 + (Sj−1 + 3)Uj−1

1− Uj−1=

Sj−1 + 3Uj

1− Uj

Page 27: Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11 eventos, que pueden ser aceptados o no. I 10 = minf (s) js 2(0;1)g I Generar eventos de

Proceso de Poisson no homogéneo

Generación de eventos utilizando el método de la T. InversaI = 0;S[0] = 0;while true do

Generar U ∼ U(0,1);if (S[I] + 3U)/(1− U) > T then

stopelse

I ← I + 1;S[I]← (S[I − 1] + 3U)/(1− U);

endend