Está en la página 1de 31

Generacin de variables aleatorias discretas

Mtodo de la Transformada Inversa


Patricia Kisbye
FaMAF
30 de marzo, 2010
Generacin de v.a. discretas
Existen diversos mtodos para generar v.a. discretas:

Transformada Inversa

De aceptacin-rechazo, o mtodo de rechazo.

De composicin.

Mtodos mejorados segn la distribucin.


Mtodo de la Transformada Inversa

X: una variable aleatoria discreta con probabilidad de masa


P(X = x
j
) = p
j
, j = 0, 1, . . . .

U U(0, 1): simulacin de una v.a. con distribucin uniforme.

Mtodo de la transformada inversa:


X =
_

_
x
0
si U < p
0
x
1
si p
0
U < p
0
+ p
1
.
.
.
x
j
si p
0
+ + p
j 1
U < p
0
+ + p
j 1
+ p
j
.
.
.
P(X = x
j
) = P(p
0
+ + p
j 1
U < p
0
+ + p
j 1
+ p
j
) = p
j
.
Mtodo de la Transformada Inversa
F(x) = P(X x) : Funcin de distribucin acumulada

F es una funcin creciente, escalonada, que toma valores entre


0 y 1.

Si se ordenan los valores de la variable en forma creciente:


x
0
< x
1
< < x
n
< . . . ,
entonces
F(x
j
) =
j

k=0
p
k
= p
0
+ p
1
+ + p
j
.
Grcamente
x
0
1
x
4
x
3
x
2
x
1
p
1
p
2
p
3
y = F(x)
p
0
x
0
1
x
4
x
3
x
2
x
1
p
0
p
1
p
2
p
3
X = x
2
p
0
+ p
1
< U < p
0
+ p
1
+ p
2
F(x)
Algoritmo
Si la v.a. toma un nmero nito de valores, el algoritmo es el
siguiente:
Algoritmo: Transformada Inversa
Generar U U(0, 1);
if U < p
0
then
X x
0
y terminar.
end
if U < p
0
+ p
1
then
X x
1
y terminar.
end
if U < p
0
+ p
1
+ p
2
then
X x
2
y terminar.
end
.
.
.
Algoritmo de la Transformada Inversa
Si x
0
< x
1
< x
2
< . . . , entonces F(x
j
) =

j
i =0
p
i
, y por lo tanto
X x
0
si U < p
0
= F(x
0
)
X x
j
si F(x
j 1
) U < F(x
j
)
Se trata de hallar el intervalo [F(x
j 1
), F(x
j
)) donde se ubica U:
U [F(x
j 1
), F(x
j
)) = Transformada Inversa
Ejemplo
X : {1, 2, 3, 4}.
p
1
= 0.20, p
2
= 0.15, p
3
= 0.25, p
4
= 0.40
Algoritmo
Generar U;
if U < 0.2 then
X 1 y terminar.
end
if U < 0.35 then
X 2 y terminar.
end
if U < 0.6 then
X 3
else
X 4
end
Orden decreciente de p
i
Si se ordenan de manera decreciente las probabilidades de masa
p
0
, p
1
, . . . , se puede obtener un algoritmo ms eciente:
Algoritmo: ordenando p
i
Generar U;
if U < 0.4 then
X 4 y terminar.
end
if U < 0.65 then
X 3 y terminar.
end
if U < 0.85 then
X 1
else
X 2
end
Generacin de una v.a. uniforme discreta
Si X U[1, n], entonces p
1
= p
2
= = p
n
=
1
n
.
X = j si
j 1
n
U <
j
n
j 1 nU < j
X = nU + 1
siendo x la parte entera (inferior) de x.
Ejemplo
Generar una variable aleatoria discreta X, con distribucin uniforme
en [5, 15].

El intervalo entero [5, 15] contiene 11 nmeros enteros.

11U es un entero en [0, 10].

11U + 5 es un entero en [5, 15].


Algoritmo: X U[5, 15]
Generar U;
X 11U + 5
Generacin de una permutacin aleatoria
Aplicacin: Generacin de permutaciones aleatorias equiprobables
de un conjunto de n elementos.
Sea P
1
, P
2
, . . . , P
n
una permutacin de 1,2,. . . , n.
Algoritmo: Permutacin aleatoria de P
1
, P
2
, . . . , P
n
k n;
while k > 1 do
Generar U;
I [kU] + 1;
Intercambiar los valores de P
I
y P
k
;
k k 1
end
Ejemplo

Conjunto de 5 elementos: a, b, c, d, e.

k recorre el vector, de la posicin n = 5 hasta 2.

I: selecciona un elemento entre las posiciones 1 y k para


intercambiar.

La tabla se lee por columnas de izquierda a derecha.


I 4 2 3 1
k 5 4 3 2
a a a a e
b b e e a
c c c c c
d e b b b
e d d d d
Subconjuntos aleatorios

Si el algoritmo anterior se ejecuta para


k = n, n 1, . . . , n (r 1), se obtiene un subconjunto aleatorio
de cardinal r .

Si r > n/2, conviene tomar el complemento de un subconjunto


aleatorio de n r elementos.

Aplicaciones:

Tcnica del doble ciego.

Simulacin: Problema de las dos muestras.


Permutaciones no equiprobables
Si consideramos el algoritmo
Algoritmo v2: Permutacin aleatoria de P
1
, P
2
, . . . , P
n
k n;
while k > 1 do
Generar U;
I [nU] + 1;
Intercambiar los valores de P
I
y P
k
;
k k 1
end
Son equiprobables las permutaciones?
- No, a menos que n = 2.
n
n1
n!
no es un nmero entero.
Permutaciones aleatorias
Otro mtodo para generar una permutacin aleatoria de un conjunto
de tamao n consiste en

generar n nmeros aleatorios U


1
, U
2
, . . . , U
n
,

ordenarlos: U
i
1
< U
i
2
< < U
i
n
,

utilizar los ndices de los valores ordenados para hacer la


permutacin.
Permutaciones aleatorias
Ejemplo
Obtener una permutacin aleatoria de (a, b, c, d).

U
1
= 0.4, U
2
= 0.1, U
3
= 0.8, U
4
= 0.7.

U
2
< U
1
< U
4
< U
3
.

La permutacin es (b, a, d, c).


Desventaja: Se requieren O(n log(n)) comparaciones.
Clculo de promedios
Ejemplo
Aproximacin del valor de
a =
n

i =1
a(i )
n
siendo que n 1.

Tomamos X uniforme discreta en [1, n].

a(X) es una v.a. discreta con media


a = E[a(X)] =
n

i =1
a(i )P(X = i ) =
n

i =1
a(i )
n
.

Generamos U
1
, U
2
, . . . , U
k
aleatorios en (0, 1), X
i
= nU
i
+ 1.

Ley fuerte de los grandes nmeros:


a
k

i =1
a(X
i
)
k
k grande
Clculo de promedios
Ejemplo
Utilizar 100 nmeros aleatorios para aproximar
S =
10000

i =1
e
i
10000
.
Promedio
S 0;
for i = 1 to 100 do
Generar U;
I 10000U + 1;
S S + exp(I/10000)
end
S S 100
Variable aleatoria geomtrica
P(X = i ) = pq
i 1
, i 1, q = (1 p).
Tenemos que F(j 1) = P(X j 1) = 1 P(X > j 1) = 1 q
j 1
.

Mtodo de la Transformada Inversa:


X j si 1 q
j 1
U < 1 q
j
q
j
< 1 U q
j 1

Esto equivale a encontrar el menor j tal que q


j
< 1 U.
X = min{j : q
j
< 1 U}
Variable aleatoria geomtrica
Propiedades:

El logaritmo es una funcin creciente,

log(q) es negativo,

V = 1 U tambin es uniforme en (0, 1):


X = min
_
j : q
j
< 1 U
_
= min{j : j log(q) < log(1 U)}
= min
_
j : j >
log(1 U)
log(q)
_
=
_
log(1 U)
log(q)
_
+ 1
X =
_
log(V)
log(q)
_
+ 1
Variable Aleatoria Poisson
p
i
= P(X = i ) = e

i
i !
, i = 0, 1, . . .
Algoritmo 1: Generacin de una v.a. Poisson P()
Generar U U(0, 1);
i 0, p e

, F p;
while U F do
p = ( p)/(i + 1);
F = F + p;
i = i + 1
end
X i
Inconvenientes del Algoritmo 1

El algoritmo chequea desde 0 en adelante hasta obtener el valor


deseado.

El nmero de comparaciones es 1 ms que el valor generado.

El valor generado esperado es . Luego, el promedio de


comparaciones es + 1.

Si 1, el algoritmo anterior realiza muchas comparaciones.


Mejora al Algoritmo 1
Para mejorar el algoritmo se utilizan las siguientes propiedades de la
distribucin de Poisson:

Denicin recursiva de p
i
: p
i +1
=

i + 1
p
i
, i 0.

p
i +1
p
i
si y slo si

i + 1
1, es decir, i + 1 .

El valor mximo de p
i
es p

, es decir, valores de i cercanos a .


Algoritmo mejorado
Algoritmo 2: Generacin de una v.a. Poisson P()
I ;
Calcular F(I) usando la denicin recursiva de p
i
;
Generar U U(0, 1);
if U F(I) then
generar X haciendo bsqueda descendente.
end
if U > F(I) then
generar X haciendo bsqueda ascendente.
end
Algoritmo mejorado

El promedio de bsquedas es
1 + E [|X |] .

Si 1, X aproxima a una normal, N(,

).
X

N(0, 1).

Promedio de bsquedas:
1 +

E
_
|X |

_
= 1 +

E[|Z|]
= 1 + 0.798

.
Variable Aleatoria Binomial B(n, p)
p
i
= P(X = i ) =
n!
i !(n i )!
p
i
(1 p)
ni
, i = 0, 1, . . . , n

Caso similar al de generacin de una v. a. Poisson.

E[X] = n p Var[X] = n p(1 p).

Conviene utilizar la frmula recursiva:


p
i +1
=
n i
i + 1
p
1 p
p
i
, 0 i < n.
Algoritmo para una Binomial
Algoritmo A: Generacin de una v.a. Binomial B(n, p)
Generar U U(0, 1);
i 0;
c p/(1 p);
Pr (1 p)
n
;
F Pr ;
while U F do
Pr [c(n i )/(i + 1)]Pr ;
F F + Pr ;
i i + 1
end
X i
Inconvenientes del algoritmo

El algoritmo chequea desde 0 en adelante hasta obtener el valor


deseado.

El nmero de comparaciones es 1 ms que el valor generado.

El promedio de comparaciones es np + 1.

Existen mtodos alternativos ms ecientes.


Mtodos alternativos para generar una Binomial
B(n, p)

Si p > 1/2, generar n B(n, 1 p). (menor nmero de


comparaciones).

Generar U
1
, . . . , U
n
, y contabilizar cuntas son menores que p.
Es menos eciente pues requiere n comparaciones.

Utilizar la sugerencia anloga para Poisson. (menor nmero de


comparaciones).

Valor ms probable: i = n p.

Promedio de bsquedas: 1 +
p
np(1 p) 0.798.

También podría gustarte