Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11...

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

Transcript of Método Polar para generación de variables normales ...jgimenez/Modelos_y... · media de 11...

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