You are on page 1of 22

Tema 4

Metodos especcos de generacion


de diversas distribuciones continuas
4.1. Distribuci on uniforme
Si X U(a, b), su funci on de distribuci on viene dada por:
F(x) =
_

_
0 x < a
xa
ba
a x < b
1 x b
Aplicando el metodo de inversion de la funci on de distribuci on se obtiene el siguiente
esquema:
1. Generar un n umero aleatorio u
2. Tomar x = a +u(b a).
51
52 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
4.2. Distribuci on exponencial
Si X Exp(), con > 0, entonces la funci on de distribucion de X viene dada
por:
F(x) =
_

_
0 x 0
1 e
x
x > 0
Aplicando el metodo de inversion de la funcion de distribuci on, se obtiene el siguiente
esquema:
1. Generar un n umero aleatorio u
2. Tomar x =
1

ln(1 u)
4.3. Distribuci on Erlang
Una variable X sigue una distribuci on Erlang(n, ) si X es la suma de n variables
aleatorias independientes e identicamente distribuidas Exp(). Consecuentemente, pode-
mos aplicar el metodo de convoluci on para generar valores de esta distribucion.
1. Generar n n umeros aleatorios u
1
, u
2
, . . . , u
n
2. Tomar x =
1

n
i=1
ln(1 u
i
) (o bien, X =
1

n
i=1
(1 u
i
))).
Puesto que la distribucion Erlang es un caso particular de la distribuci on Gamma,
tambien se pueden utilizar los metodos especcos de generaci on de dicha distribucion
4.4. Distribucion Gamma 53
4.4. Distribuci on Gamma
La funci on de distribucion de una variable X (a, p) (a > 0, p > 0) viene dada
por:
F(x) =
_

_
_
x
0
a
p
(p)
t
p1
e
at
t > 0
0 t 0
donde la funcion gamma viene dada por
(z) =
_

0
t
z1
e
t
dt, z > 0
vericando que (n) = (n 1)!, si n Z
+
.
El metodo de inversi on de la funci on de distribucion no es eciente, puesto que para
cada n umero aleatorio u habra que resolver numericamente en x > 0 la ecuaci on
u =
_
x
0
a
p
(p)
t
p1
e
at
dt
En los siguientes apartados veremos esquemas de generaci on basados en propiedades
especcas de la distribucion Gamma.
4.4.1. Aproximaci on de la Gamma por variables Erlang
Este metodo se basa en que la funcion de distribuci on F
X
de una variable X
(a, p) se puede aproximar como
F
X
(x) (1 r)F
E
1
(x) +rF
E
2
(x),
donde E
1
Erlang ([p], a), E
2
Erlang ([p] + 1, a) y r = p [p]. La anterior aproxi-
maci on da lugar al siguiente esquema de generaci on:
1. Generar un n umero aleatorios u
54 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
2. Si u > p [p], generar un valor y Erlang ([p], a). En caso contrario, generar un
valor y Erlang ([p] + 1, a).
3. Tomar x = y.
4.4.2. Metodo de aceptaci on y rechazo de Ahrens y Dieter
para p < 1
El metodo de Ahrens y Dieter (1974) es una aplicacion del metodo de aceptacion
y rechazo utilizando como funci on de densidad envolvente la siguiente mixtura de
funciones de densidad:
g(x) =
e
p +e
g
1
(x) +
p
p +e
g
2
(x), x > 0
donde g
1
(x) = px
p1
I
(0,1)
(x) y g
2
(x) = e
x+1
I
(1,)
(x).
El esquema de generaci on sera el siguiente:
1. Generar dos n umeros aleatorios u, v
2. Si u >
e
p+e
, ir al paso 4.
3. Tomar y =
_
p+e
e
u
_1
p
. Si v > e
y
, ir al paso 1. En caso contrario, ir a al paso 5.
4. Tomar y = ln
_
p+e
pe
(1 u)
_
. Si v > y
p1
, ir al paso 1. En caso contrario, ir al
paso 5.
5. Tomar x =
1
a
y.
El esquema anterior genera entre los pasos 1 y 4 un valor de una distribuci on (1, p).
En el paso 5, el valor generado es transformado al de una distribucion (a, p).
4.4. Distribucion Gamma 55
Proposicion 4.1. El metodo de Ahrens y Dieter genera valores de una distribucion
(a, p) con 0 < p < 1.
Demostracion.
La funcion de densidad de una variable X (1, p) viene dada por:
f(x) =
_

_
1
(p)
x
p1
e
x
x > 0
0 x 0
Consideremos la siguiente funci on de densidad como la envolvente para aplicar el
metodo de aceptaci on y rechazo:
g(x) =
e
p +e
px
p1
I
(0,1)
(x) +
p
p +e
e
x+1
I
(1,)
(x).
1- Encontrar M > 1 tal que f(x) Mg(x), para todo x > 0
Si 0 < x < 1, entonces
f(x) Mg(x)
1
(p)
x
p1
e
x
M
e
p +e
px
p1
e
x
M
e
p +e
p(p)
Si x (0, 1) e
x

_
1
e
, 1
_
, luego el valor mas peque no que verica la condici on
es
M
1
=
p +e
e
1
p(p)
.
Si x > 1, entonces
f(x) Mg(x)
1
(p)
x
p1
e
x
M
pe
p +e
pe
x
x
p1
M
e
p +e
p(p)
Si x (1, +) x
p1
(0, 1), luego el valor mas peque no que verica la
condici on es
M
2
=
p +e
e
1
p(p)
.
56 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
Por tanto, M = M
1
= M
2
.
2- Criterio de rechazo
Se rechaza el valor generado si v >
f(y)
Mg(y)
.
Si y (0, 1),
v >
f(y)
Mg(y)
v >
1
(p)
y
p1
e
y
p+e
ep(p)
e
p+e
py
p1
v > e
y
Si y > 1,
v >
f(y)
Mg(y)
v >
1
(p)
y
p1
e
y
p+e
ep(p)
e
p+e
e
y+1
v > y
p1
3- Generar valores de Y
1
con funcion de densidad g
1
(y)
La funcion de distribucion de Y
1
viene dada por:
F
Y
1
(y) =
_

_
0 y 0
y
p
0 < y < 1
1 y 1
Luego, por el metodo de la inversion de la funcion de distribuci on, se pueden generar
valores de Y
1
mediante la transformacion y = u
1
p
.
4- Generar valores de Y
2
con funcion de densidad g
2
(y)
La funcion de distribucion de Y
2
viene dada por:
F
Y
2
(y) =
_

_
0 y 1
1 e
y+1
y > 1
Por lo tanto, aplicando el metodo de inversi on de la funcion de distribuci on, se tiene
4.4. Distribucion Gamma 57
la siguiente transformacion:
u = F
Y
2
(y) = 1 e
y+1
1 u = e
y+1
ln(1 u) = y + 1
y = ln(1 u) + 1 = (ln(1 u) ln(e))
y = ln
_
1 u
e
_
5.- Generar valores de Y
Aplicando los resultados obtenidos en los pasos 3 y 4, podemos aplicar el siguiente
esquema:
1. Generar n umeros aleatorios u
1
, u
2
.
2. Si u
1
<
e
p+e
, tomar y = u
1
p
2
. En caso contrario, tomar y = ln
_
u
2
e
_
.
El siguiente resultado nos permite utilizar el esquema anterior generando un unico
n umero aleatorio.
Sea U U(0, 1). Entonces, las variables
X =
_

_
1 U p
0 U > p
Y =
_

_
U
p
U p
1U
1p
U > p
son independientes e Y U(0, 1).
Por lo tanto, podemos aplicar el siguiente esquema para generar valores de Y :
1. Generar un n umero aleatorio u.
2. Si u
e
p+e
, tomar y =
_
p+e
e
u
_1
p
. En caso contrario, tomar y = ln
_
p+e
p
1u
e
_
.
6.- Transformacion de (1, p) a (a, p)
Los pasos 1 a 4 del esquema de generacion principal simulan valores de una variable
58 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
(1, p). Una propiedad de la distribucion Gamma es que si X (1, p), entonces
1
a
X (a, p). De este modo, en el paso 5 del esquema principal se transforman los
valores generados de una (1, p) en valores de una distribucion (a, p).
4.4.3. Metodo de aceptacion y rechazo de Fishman para p > 1
El metodo de Fishman se basa en el siguiente resultado:
Teorema 4.2. Sea U una variable uniforme en el intervalo (0, 1) y E
p
una variable
exponencial con media p. Consideremos,
g(x) =
_
x
p
_
p1
e
(p1)(
x
p
1)
.
Entonces, (E
p
| g(E
p
) U) (1, p).
El esquema de generaci on sera el siguiente:
1. Generar dos n umeros aleatorios u
1
, u
2
.
2. Tomar e
1
= ln(1 u
1
), e
2
= ln(1 u
2
). e
1
y e
2
son realizaciones de variables
exponenciales de media 1.
3. Si e
2
< (p 1)(e
1
ln(e
1
) 1), volver al paso 1.
4. Tomar x =
p
a
e
1
4.5. Distribuci on Beta
Sea X Beta(, ), > 0, > 0, su funci on de densidad viene dada por:
f(x) =
( +)
()()
x
1
(1 x)
1
I
(0,1)
(x)
4.5. Distribucion Beta 59
y su funci on de distribuci on se expresa como:
F(x) =
B
x
(, )
B(, )
,
donde B
x
(, ) =
_
x
0
t
1
(1 t)
1
dt, B(, ) =
_
1
0
t
1
(1 t)
1
dt.
El metodo de la inversi on de la funcion de distribuci on no es eciente para la
distribuci on beta. Sin embargo, la distribucion beta verica determinadas propiedades
que facilitan su generaci on para ciertas combinaciones de los valores y .
i) Si = 1 f(x) = (x 1)
1
, que se puede generar f acilmente por inversi on
ii) Si = 1 f(x) = x
1
, que se puede generar f acilmente por inversi on
iii) Si X Beta(, ) 1 X Beta(, )
iv) Si Y
1
(a, ) e Y
2
(a, ) son independientes, entonces
Y
1
Y
1
+Y
2
Beta(, ).
Como aplicaci on directa de la propiedad (iv), se tiene el siguiente esquema de gen-
eraci on:
1. Generar y
1
un valor de una distribucion (a, ) e y
2
un valor de una distribucion
(a, ).
2. Tomar x =
y
1
y
1
+y
2
.
El algoritmo anterior no es eciente para valores grandes de y . En tal caso, se
puede utilizar el siguiente esquema, basado en que si U
1
, U
2
U(0, 1) independientes
y consideramos Y
1
= U
1

1
e Y
2
= U
1

2
, entonces
_
Y
1
Y
1
+Y
2
| Y
1
+Y
2
1
_
Beta(, ).
60 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
1. Generar dos n umeros aleatorios u
1
,u
2
.
2. Tomar y
1
= u
1

1
, y
2
= u
1

2
3. Si y
1
+y
2
> 1, ir al paso 1
4. Tomar x =
y
1
y
1
+y
2
.
4.6. Distribuci on normal
Puesto que la funcion de distribuci on de una variable aleatoria normal no se puede
expresar algebraicamente, el metodo de inversion de la funcion de distribucion no es
aplicable.
La siguiente propiedad nos indica que cualquier distribuci on normal se puede generar
a partir de la distribucion normal estandar.
Sea X = Z +. Entonces, X N(, ) Z N(0, 1).
4.6.1. Generar valores normales mediante el Teorema Central
del Lmite
Teorema 4.3. Teorema Central del lmite. Sean X
1
, . . . , X
n
variables aleatorias inde-
pendientes e identicamente distribuidas con media y desviacion tpica . Entonces,
la distribucion de

n
i=1
X
i
n

n
es aproximadamente N(0, 1) cuando el tama no muestral n es sucientemente grande.
4.6. Distribucion normal 61
Podemos obtener un algoritmo de generaci on basado en el Teorema Central del
Lmite. Para ello, el caso que nos interesa es cuando las variables X
i
siguen distribu-
ciones uniformes en (0, 1). En tal caso, = E(X
i
) =
1
2
y
2
= V (X
i
) =
1
12
, luego

n
i=1
U
i

n
2
_
n
12
es aproximadamente una normal est andar.
1. Generar n n umeros aleatorios u
1
, . . . , u
n
2. Tomar x =

n
i=1
u
i

n
2

n
12
4.6.2. Algoritmo de Box-M uller
Proposicion 4.4. Sean U
1
, U
2
variables aleatorias independientes e identicamente dis-
tribuidas U(0, 1). Entonces, X = (2 ln U
1
)
1
2
cos(2U
2
) e Y = (2 ln U
1
)
1
2
sin(2U
2
)
son variables aleatorias independientes e identicamente distribuidas N(0, 1).
El esquema de generaci on asociado a la proposici on anterior sera el siguiente:
1. Generar dos n umeros aleatorios u
1
, u
2
.
2. Tomar x = (2 ln u
1
)
1
2
cos(2u
2
) e y = (2 ln u
1
)
1
2
sin(2u
2
)
El esquema anterior utiliza dos n umeros aleatorios en cada iteraci on, pero, a su vez,
genera dos valores normales est andar.
4.6.3. Metodo polar de Marsaglia
El metodo polar de Marsaglia es una modicaci on del Algoritmo de Box-M uller en
el que se utiliza una tecnica de rechazo para evitar el calculo de las funciones seno y
62 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
coseno.
Consideremos U
1
, U
2
variables iid U(0, 1). Entonces, V
1
= 2U
1
1 y V
2
= 2U
2
1
siguen una distribucion U(0, 2).
(V
1
, V
2
) son las coordenadas cartesianas de un punto aleatorio distribuido uniforme-
mente sobre el cuadrado de centro el origen y area 4. Sean (R, ) sus coordenadas
polares.
Figura 4.1: Metodo polar de Marsaglia
4.6. Distribucion normal 63
R
2
= V
2
1
+V
2
2
tan() =
V
1
V
2
Proposicion 4.5. Condicionado a que V
2
1
+ V
2
2
1 (el punto esta contenido en el
crculo de centro el origen y radio 1), se verica que las variables R
2
y son indepen-
dientes, con R
2
U(0, 1), U(0, 2).
Seg un las transformaciones de Box-M uller, podamos generar valores normales estandar
independientes, tomando U
1
, U
2
distribuciones uniformes independientes en (0, 1) y ha-
ciendo
X = (2 ln(U
1
))
1
2
cos(2U
2
) Y = (2 ln(U
1
))
1
2
sin(2U
2
)
como R
2
U(0, 1) y U(0, 2), podemos utilizar las coordenadas polares y
escribir
X =
_
2 ln(R
2
)
_1
2
cos() Y =
_
2 ln(R
2
)
_1
2
sin()
A continuaci on, puesto que
sin() =
V
2
R
=
V
2
_
(V
2
1
+V
2
2
)
cos() =
V
1
R
=
V
1
_
(V
2
1
+V
2
2
)
,
podemos nalmente escribir
X =
_
2 ln(R
2
)
_1
2
V
1
_
V
2
1
+V
2
2
= V
1
_
2 ln R
2
R
2
_1
2
e
Y =
_
2 ln(R
2
)
_1
2
V
2
_
V
2
1
+V
2
2
= V
2
_
2 ln R
2
R
2
_1
2
El metodo polar de Marsaglia puede resumirse en el siguiente esquema:
1. Generar dos n umeros aleatorios u
1
, u
2
2. Tomar v
1
= 2u
1
1, v
2
= 2u
2
1. Tomar S = V
2
1
+V
2
2
64 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
3. Si S > 1, volver al paso 1.
4. Tomar x = v
1
_
2 ln(S)
S
e y = v
2
_
2 ln(S)
S
Puesto que la probabilidad de que un punto en el cuadrado centrado en el origen y
area 4 caiga dentro del crculo centrado en el origen y radio 1 es

4
, se sigue que la
probabilidad de rechazo del metodo polar es 1

4
.
4.7. Distribuci on de Cauchy
La funcion de densidad de una variable aleatoria con distribuci on C(, ), >
0, > 0 es
f(x) =

[
2
+ (x )
2
]
, x R,
y la funci on de distribuci on es
F(x) =
1
2
+
1

arctan
_
x

_
.
4.7.1. Inversion de la funci on de distribucion
Aplicando el metodo de inversion de la funci on de distribucion, se tiene:
u =
1
2
+
1

arctan
_
x

_
u
1
2
_
= arctan
_
x

_
x

_
= tan
_

_
u
1
2
__
x = + tan
_

_
u
1
2
__
x =

tan(u)
lo que nos dara el siguiente esquema de generaci on:
4.7. Distribucion de Cauchy 65
1. Generar un n umero aleatorio u
2. Tomar x =

tan(u)
.
4.7.2. Metodo de raz on de uniformes
Se verica que si Y C(0, 1) y X = +Y , entonces X C(, ). Este resultado
nos permite generar valores de cualquier distribuci on de Cauchy a partir de valores
C(0, 1).
La generacion de valores de C(0, 1) se basa en el siguiente resultado.
Proposicion 4.6. Sean U
1
, U
2
U(0, 1) y consideremos V
1
= 2U
1
1, V
2
= 2U
2
1
U(1, 1). Entonces, las variables X =
_
V
1
V
2
| V
2
1
+V
2
2
1
_
e Y =
_
V
2
V
1
| V
2
1
+V
2
2
1
_
son independientes y siguen una distribucion C(0, 1)
El esquema de generaci on sera el siguiente:
1. Generar dos n umeros aleatorios u
1
, u
2
.
2. Hacer v
1
= 2u
1
1, v
2
= 2u
2
1.
3. Si v
2
1
+v
2
2
> 1, ir al paso 1.
4. Tomar x =
v
1
v
2
, y =
v
2
v
1
.
Se observa que los puntos de la forma (V
1
, V
2
) con V
2
1
+V
2
2
1 son puntos dentro del
crculo unidad. As que otra forma de leer el resultado anterior es que si generamos
puntos (Z, W) uniformes dentro del crculo unidad, las variables
Z
W
y
W
Z
son indepen-
dientes e identicamente distribuidas C(0, 1). Utilizando este hecho, se tiene el siguiente
algoritmo completamente equivalente al anterior
66 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
1. Generar dos n umeros aleatorios u
1
, u
2
.
2. Hacer = 2u
2
, z = u
1
sin() y w = u
1
cos().
3. Tomar x =
z
w
e y =
w
z
.
4.8. Distribuci on Log-Normal
Si X N(,
2
), entonces Y = e
X
tiene distribuci on LN(,
2
). Su funci on de
densidad viene dada por:
F
Y
(y) =
1
y

2
e

(ln(y))
2
2
2
, y 0
El esquema para generar valores de esta distribuci on sera el siguiente:
1. Generar un valor z de una distribucion N(0, 1).
2. Hacer x = +z.
3. Tomar y = e
x
4.9. Distribuci on
2
4.9.1. Metodo general de generaci on de valores
2
X sigue una distribucion
2
con n grados de libertad si y s olo si X es la suma de
los cuadrados n variables aleatorias est andar independientes.
1. Generar z
1
, . . . , z
n
, n valores independientes de una distribuci on normal estandar
2. Tomar x =

n
i=1
z
2
i
.
4.10. Distribucion t de Student 67
4.9.2. Metodo especco de generacion de valores
2
n
con n par
Si n es par, entonces
2
n
Erlang
_
1
2
,
n
2
_

_
1
2
,
n
2
_
.
Por lo tanto, un posible metodo sera
1. Generar
n
2
n umeros aleatorios u
1
, . . . , u
n
2
.
2. Tomar x = 2

n
2
i=1
ln u
i
= 2 ln
_

n
2
i=1
u
i
_
.
4.9.3. Metodo especco de generaci on de valores
2
n
con n
impar
Si n es impar, entonces X
2
n
X = Y + Z
2
, con Y Erlang
_
1
2
,
n1
2
_
y
Z N(0, 1).
Por lo tanto, un posible metodo sera
1. Generar un valor z de una distribuci on normal est andar y
n
2
n umeros aleatorios
u
1
, . . . , u
n
2
.
2. Tomar x = z
2
2

n
2
i=1
ln u
i
= z
2
2 ln
_

n
2
i=1
u
i
_
.
4.10. Distribuci on t de Student
Un resultado cl asico acerca de la distribuci on t de Student es que si Z sigue una
distribuci on normal est andar, Y sigue una distribucion
2
con n grados de libertad y
68 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
Z e Y son independientes, entonces
Z
_
Y
n
sigue una distribucion t
n
.
La aplicacion directa de esta propiedad proporciona un metodo para generar valores
de esta distribuci on.
4.11. Distribuci on F de Snedecor
Sean V y W dos distribuciones
2
de m y n grados de libertad respectivamente.
Entonces,
V/m
W/n
sigue una distribucion F(m, n).
La propia denici on de la distribucion F proporciona un metodo para generar
valores de la misma.
4.12. Distribuci on de Laplace
La funcion de densidad de una variable aleatoria con distribuci on L(, ), R,
> 0 es
f(x) =
1
2
e
(
|x|

)
, x R.
Su funcion de distribucion viene dada por:
F(x) =
_

_
1
2
e
(
x

)
x <
1
1
2
e
(
x

)
x
4.12. Distribucion de Laplace 69
4.12.1. Inversion de la funci on de distribucion
Es facil obtener que
F
1
(u) =
_

_
+ ln(2u)
1
2
ln (2(1 u)) >
1
2
El metodo sera
1. Generar un n umero aleatorio u
2. Si u <
1
2
, hacer x = + ln(2u). En caso contrario, tomar x = ln (2(1 u)).
4.12.2. Inversion de la funci on de distribucion 2
La funcion de distribucion se puede expresar de modo equivalente como:
F(x) =
1
2
_
1 + sgn(x )
_
1 e
(
|x|

)
__
y se puede comprobar que en este caso su inversa viene dada por
F
1
(u) = sgn
_
u
1
2
_
ln
_
1 2

u
1
2

_
.
De este modo, un esquema de generaci on de valores de L(, ) sera el siguiente:
1. Generar un n umero aleatorio u
2. Tomar v = u
1
2
.
3. Hacer x = sgn(v) ln(1 2|v|).
70 Tema 4. Metodos especcos de generacion de diversas distribuciones continuas
4.13. Distribuci on Weibull
La funci on de densidad de una variable aleatoria W(, ), > 0, > 0, viene dada
por:
f(x) =

x
1
e

_
x

, x R
+
y su funci on de distribuci on es:
F(x) = 1 e

_
x

, x 0
cuya inversa es facil comprobar que es:
F
1
(u) = (ln(1 u))
1

.
Por lo tanto, el esquema de generaci on de valores de W(, ) siguiendo el metodo de
inversion de la funci on de distribuci on sera:
1. Generar un n umero aleatorio u
2. Tomar x = (ln(u))
1

.
4.14. Distribuci on de Pareto
La funcion de densidad de una variable aleatoria P(k, ), k > 0, > 0, viene dada
por:
f(x) =
k

x
+1
I
[k,+)
(x),
y su funci on de distribuci on se expresa como:
F(x) = 1
_
k
x
_

, x k.
4.14. Distribucion de Pareto 71
Aplicando el metodo de inversion de la funci on de distribucion, se tiene que:
u = 1
_
k
x
_

_
k
x
_

= 1 u
k
x
= (1 u)
1

x =
k
(1 u)
1

.
Consecuentemente, un metodo para generar valores de una distribucion P(k, ) es el
siguiente:
1. Generar un n umero aleatorio u
2. Tomar X =
k
(1u)
1

You might also like