You are on page 1of 17

Simulaci

on III
Prof. Jos
e Ni
no Mora
Investigaci
on Operativa, Grado en Estadstica y Empresa, 2011/12

Esquema

Comentario: generaci
on de v.a. exponenciales

Generaci
on de v.a. normales

M
etodo de convoluci
on: generaci
on de v.a. Erlang

M
etodo de aceptaci
on/rechazo: generaci
on de v.a.
Poisson

Generaci
on de v.a. exponenciales
Hemos visto c
omo generar una v.a. X Exp() a partir
de U Uniforme[0, 1] :
ln(1 U )
X
Exp()

Podemos simplificar la f
ormula, observando que:
U Uniforme[0, 1] 1 U Uniforme[0, 1]
Por tanto, tambi
en podemos generar una v.a. X Exp()
calculando X como
ln(U )
X
Exp()

La distribuci
on normal

Es una de las distribuciones m


as importantes
Funci
on de densidad de X Normal(0, 1) :
1 x2 /2
f (x) = e
,
2

xR

Funci
on de distribuci
on:
 x
1
2
ex /2 dx,
F (x) =
2

xR

La distribuci
on normal

C
omo podemos generar X Normal(0, 1) ?

Para aplicar el m
etodo de la transformada inversa,
tendramos que resolver la ecuaci
on
F (X) = U

Sin embargo, no podemos despejar X en esa


ecuaci
on: necesitamos un m
etodo distinto

El m
etodo de Box & Muller
Supongamos que tenemos dos v.a. independientes:
Y Exp(1/2),

Z Uniforme[0, 2]

Box & Muller mostraron que, si calculamos


X1 
X2 

Y cos(Z)
Y sin(Z),

se cumple que X1 , X2 Normal(0, 1) i.i.d


Nota: (X1 , X2 ) es un punto en el plano, con distancia

al origen
Y , y
angulo Z

El m
etodo de Box & Muller

X2

Y
Z

X1

El m
etodo de Box & Muller
Para generar v.a. independientes
Y Exp(1/2),

Z Uniforme[0, 2],

Generamos U1 , U2 Uniforme[0, 1]
Generamos Y  2 ln(U1 )
Generamos Z  2U2
Ahora, calculamos
X1 
X2 

Y cos(Z) =
Y sin(Z) =




2 ln(U1 ) cos(2U2 )

2 ln(U1 ) sin(2U2 ),

obteniendo X1 , X2 Normal(0, 1) i.i.d.

Generaci
on de v.a. Normal(, 2 )

C
omo generar una v.a. W Normal(, 2 ) ?

Generamos X Normal(0, 1)

Calculamos
W  + X

Entonces, W Normal(, 2 )

El m
etodo de convoluci
on

Algunas v.a. se pueden representar como sumas de otras


v.a. i.i.d: en tales casos aplicamos el m
etodo de
convoluci
on, que consiste en calcularlas como tales sumas

Ej: la distribuci
on Y Erlang(k, ) , donde k es un entero
positivo, se puede obtener como suma de k v.a. i.i.d.
X1 , . . . , Xk Exp(k) :
Y  X1 + + Xk

Ej: generaci
on de una v.a. Erlang(k, )
Ilustraremos el m
etodo de convoluci
on para generar
Y Erlang(k, )
Generamos una muestra i.i.d. U1 , . . . , Uk Uniforme[0, 1]
Calculamos una muestra i.i.d. X1 , . . . , Xk Exp(k) :
ln(Ui )
Xi 
,
k

i = 1, . . . , k

Calculamos
1
Y  X1 + + Xk =
{ln(U1 ) + + ln(Uk )}
k
1
=
ln {U1 Uk } Erlang(k, )
k

El m
etodo de aceptaci
on/rechazo

El m
etodo de aceptaci
on/rechazo para generar una v.a.
Y tiene la siguiente forma general:
Paso 1: Generar una v.a. U y calcular un valor tentativo
de Y
Paso 2a: Si se cumple una cierta condici
on, aceptar el
valor tentativo de Y
Paso 2b: Si no se cumple la condici
on, rechazar el valor
tentativo, y volver al paso 1

Ej: generaci
on de Y Poisson()

Ilustraremos el m
etodo de aceptaci
on/rechazo para
generar una v.a. Y Poisson() :
P {Y = n} = e

n!

n = 0, 1, 2, . . .

Aplicaremos la interpretaci
on de la distribuci
on de
Poisson: p. ej. en una cola M/M/1 con tasa de llegadas
(tiempos entre llegadas Exp() ), Y representa el
n
umero de llegadas que ocurren en una unidad de
tiempo

Ej: generaci
on de Y Poisson()
Aplicaremos la interpretaci
on de la distribuci
on de
Poisson: p. ej. en una cola M/M/1 con tasa de llegadas
(tiempos entre llegadas Exp() ), Y representa el
n
umero de llegadas que ocurren en una unidad de
tiempo
Generaremos una sucesi
on de tiempos entre llegadas i.i.d.
A1 , A2 , A3 , . . . Exp()
Calculamos cu
antas llegadas ocurren en el intervalo de
tiempo [0, 1] : ocurren n llegadas si
A1 + + An 1 < A1 + + An + An+1
En tal caso, tomamos Y = n

Ej: generaci
on de Y Poisson()
Para generar A1 , A2 , A3 , . . . Exp() i.i.d. generamos
U 1, U 2, U3 , . . . Uniforme[0, 1] i.i.d., y calculamos
ln(Ui )
Ai 
,

i = 1, 2, 3, . . .

As, podemos representar la condici


on
A1 + + An 1 < A1 + + An + An+1
en t
erminos de los Ui como
1
1
{ln(U1 ) + + ln(Un )} 1 < {ln(U1 ) + + ln(Un+1 )}

Ej: generaci
on de Y Poisson()
Multiplicando la expresi
on
1
1
{ln(U1 ) + + ln(Un )} 1 < {ln(U1 ) + + ln(Un+1 )}

por , y simplificando las sumas de logaritmos,


obtenemos que
ln(U1 Un ) > ln(U1 Un+1 )
Aplicando ahora que eln x = x y que u
eu es creciente,
obtenemos que
U1 Un e > U1 Un+1

Ej: generaci
on de Y Poisson()

As, obtenemos el siguiente m


etodo de
aceptaci
on/rechazo para generar Y Poisson() :
Paso 0: Fijar n := 0, P := 1
Paso 1: Generar Un+1 U[0, 1] , y calcular P := P Un+1
Paso 2a: Si P < e , aceptar, y tomar Y = n
Paso 2b: En otro caso, rechazar, incrementar n := n + 1 ,
y volver al Paso 1

You might also like