Está en la página 1de 17

Captulo 5

Generacion de N umeros
Aleatorios Uniformes
Vimos en el captulo sobre repaso de distribuciones de probabilidad, lo
que es una distribucion uniforme. Pero podemos encontrar un metodo o ex-
perimento que genere una secuencia de n umeros con distribucion uniforme?
Supongamos que tiramos un dado regular y registramos el puntaje de la
cara superior
Este experimento tiene un espacio de resultados y una V.A discreta X
tal que
= {1, 2, 3, 4, 5, 6} con P(X = x) =
1
6
(5.1)
Podemos simular este experimento? Si recordamos la denicion dada en
el captulo introductorio sobre simulacion , si queremos por ejemplo tirar el
dado 100 veces, con la ayuda de la computadora y los metodos matematicos
adecuados debieramos poder hacerlo.Pero que signica jugar al dado 100
veces? Si lo hiciesemos realmente al cabo de esas 100 realizaciones tendramos
100 n umeros que estad en el conjunto {1, 2, 3, 4, 5, 6} .
Por lo tanto alcanza con encontrar una forma de generar los n umeros nat-
urales del 1 al 6 de manera que cada resultado tenga la misma probabilidad
cada vez que simulamos el experimento.
5.1 N umeros Pseudo Aleatorios 35
5.1. N umeros Pseudo Aleatorios
Veamos lo siguiente: supongamos que la maquina es capaz de devolvernos
un n umero que esta entre 0 y 1 y para asignarle unos de los posibles 6 caras
del dado con la misma probabilidad hacemos la siguiente precisaon.
Si r es el resultado devuelto por la maquina nos jamos si
0 r
1
6
decimos que salao el 1
1
6
< r
2
6
decimos que salao el 2
..........................................
5
6
< r 1 decimos que salao el 6
Cuadro 5.1: Asignacion de los resultados del dado...
Si la maquina fuera capaz de hacer eso seramos capaces de simular un
dado. El asunto es que cada vez que nos devuelva un n umero
1
entre 0 y 1 lo
haga de manera que cada resultado sea equiprobable , o lo que es lo mismo
tengamos la misma probabilidad de que el n umero este en cada uno de los 6
intervalos.
Tiene realmente la maquina un algoritmo que sea capaz de devolvernos
n umeros aleatorios uniformes? No , lo que realmente es capaz de generar la
maquina son n umeros pseudoaleatorios que son determinsticos pero se com-
portan como si fueran randomicos.Vamos a tratar entender que es realmente
lo que hace internamente la maquina y como es posible que aceptemos que
algo que no es aleatorio digamos que que si los es.
Antes de pasar a explicar las propiedades de estos tipos de n umeros
podemos plantearnos que es mejor
Tirar efectivamente el dado
Simular el experimento de tirar
1
Todava no sabemos como lo hace pero probablemente tenga programada una serie de
pasos que hace que nos devuelva un n umero con ciertas condiciones.Esa serie de pasos es
lo que llamamos algoritmo
5.2 Generadores de N umeros Pseudo Aleatorios 36
En realidad es mejor tirar el dado, ya que realmente estamos realizando
el experimento, pero tiene el inconveniente de que no somos capaces de re-
producir 2 secuencias exactamente iguales( es decir los mismo 100 n umeros
entre 1 y 6)
En cambio cuando simulamos la tirada del dado podemos tener la misma
secuencia cuantas veces querramos ya que tenemos control sobre la secuencia
que se genera.
5.2. Generadores de N umeros Pseudo
Aleatorios
En general los metodos para generar n umeros pseudoaleatorios son meto-
dos recursivos que a partir de un valor dado inicial van generando una se-
cuencia de n umeros que podran considerarse como aleatorios.Este tipo de
metodos estan basados en congruencias que a continuacion presentaremos
5.2.1. Generadores Congruenciales Lineales
Comencemos por recordar la denicion de congruencia de n umeros enteros
a y b son congruentes respecto de c si el resto de dividir a ambos por
c es el mismo y tenemos a
c
b
c
donde c el ,lo que llama modulo
A partir de esta denicion planteamos el siguiente algoritmo recursivo
que tiene forma lineal
2
X
0
dado, X
i+1
= (aX
i
+b)
c
oX
i+1
= (aX
i
+b) mod(c) (5.2)
a multiplicador 0 a c
b incremento o b c
c m odulo c > 0
X
0
valor inicial o semilla 0 X
0
c
2
Introducido por Lehmer (1951)
5.2 Generadores de N umeros Pseudo Aleatorios 37
Esta algoritmo genera una secuencia de c n umeros diferentes del
(0, ...., c 1) ,que se transforman en U
i
= X
i
(c 1)
1
que tienen sus val-
ores en el intervalo (0, 1) .
Esta secuencia esta totalmente determinada una vez que se conoce la
semilla o valor inicial.Cuando b vale 0 tenemos un Algoritmo Congruencial
Multiplicativo Puro
Ejemplo 5.2.2 Tenemos el siguiente A.C.L
3
.X
0
= 1, a = 5, b = 7, c = 16
La secuencia completa de los n umeros pseudoaleatorios obtenidos con el
algoritmo precedente es la que presentamos a continuacion
i X
i
U
i
i X
i
U
i
0 1 0,0625 9 4 0,2500
1 12 0,7500 10 11 0,6875
2 3 0,1875 11 14 0,8750
3 6 0,3750 12 13 0,8125
4 5 0,3125 13 8 0,5000
5 0 0,000 14 15 0,9375
6 7 0,4375 15 2 0,1250
7 10 0,6250 16 1 0,0625
8 9 05625 17 12 0,7500
Esta secuencia tiene un ciclo de largo 16 ; sin importar cual sea X
0
ten-
emos 16 valores distintos donde la secuencia es una permutacion que depende
de la semilla
Ejemplo 5.2.3 Si cambiamos los valores del algoritmo haciendo X
0
=
1, a = 11, b = 0, c = 16 tenemos la tabla que sigue
i X
i
U
i
i X
i
U
i
0 1 0,0625 5 4 0,6875
1 12 0,6875 6 11 0,5625
2 3 0,5625 7 14 0,1875
3 6 0,1875 8 13 0,0625
4 5 0,0625 9 8 0,6875
vemos que la secuencia tiene un ciclo menor al modulo seleccionado
3
Algoritmo Congruencial Lineal
5.2 Generadores de N umeros Pseudo Aleatorios 38
Ejemplo 5.2.4 Si usamos .X
0
= 1, a = 20, b = 7, c = 1024
i X
i
U
i
i X
i
U
i
0 1 0,0010 4 4 0,8154
1 12 0,0264 5 11 0,3154
2 3 0,5342 6 14 0,3154
3 6 0,6904 7 13 0,3154
Vemos que para este algoritmo a partir del 6 valor los n umeros generados
se repiten en forma permanente a pesar de que habamos seleccionado un
modulo bastante grande.
Para eso en la seccion que sigue veremos cuales son las restricciones que
deben tener las parametros del algoritmo de manera de tener una secuencia
generada que no sea muy peque na, antes de que comiencen a repetirse los
valores.
5.2.5. Eleccion de los parametros X
0
, a, b, c
Una serie de restricciones necesaria pero no suciente para una buena
secuencia es
1. Debe de tener un ciclo largo (con los ACL tenemos c n umeros distintos
de 0 a c 1)
2. Debe de estar desarrollado a partir de un modulo grande que permite
obtener n umeros con una cierta cantidad de decimales, por ejemplo
c=1000000
3. El agoritmo debera ser poco sensible a la eleccion de X
0
Cuando b > 0 la secuencia es de largo maximo si el resto de los parametros
cumplen las siguientes restricciones:
4
b y c son primos entre si
a 1 es m ultiplo cada factor primo de c
a 1 es m ultiplo de 4 si c es m ultiplo de 4
4
Estas restricciones surgen de las propiedades de los n umeros primos que establecen
las condiciones para tener secuencias de ciclo maximo.Ver referencias
5.2 Generadores de N umeros Pseudo Aleatorios 39
5.2.6. Propiedades de los Generadores Congruenciales
Ademas de la propiedad de un ciclo lo sucientemente largo podemos
estar interesados en el grado de dependencia
5
entre valores consecutivos de
la secuencia, y que podemos medir a traves de la funcion de autocorrelacion

1
(U)
_
1
a

a
c
_
recordando que la F.A.C de rezago =1 es

1
(U) =
n1

i=1
[U
i
M(U)] [U
i+1
M(U)] /
_
nS
2
(U)

donde M(U) y S
2
(U) representan la media y varianza de los valores U
i
Existen formas alternativas de aproximar la FAC como vemos con el
trabajo de Greenberger

1
a

6b
ac
_
1
b
c
_

a
c
(5.3)
Vemos como queda esta aproximacion de para 2 secuencias con el mismo
tama no de ciclo
a b c

(i) 2
34
+ 1 1 2
35
0,25
(id) 2
18
+ 1 1 2
35
2
18
Otras caractersticas de la secuencia generada, como pueden ser forma y
patrones (tendencias) se analizaran mas adelante en el captulo Tests para
n umeros aleatorios
5
En realidad ya sabemos que dependen al provenir de un algoritmo determinstico, es
solo a los efectos de un comportamiento que pretendemos considerar como aleatorio
5.2 Generadores de N umeros Pseudo Aleatorios 40
5.2.7. Generadores Congruenciales No Lineales
Vimos en secciones precedentes que los ACL pueden tener propiedades
no deseadas, como puede ser por ejemplo la correlacion.
Para eso existen alternativas desarrolladas en los ultimos a nos, que ten-
dran asociadas mayor esfuerzo computacional a cambio de mejores resultados.
Dentro de esta clase de generadores vamos a presentar los Generadores
Congruenciales Inversos
6
Estos se basan en los conceptos de inversos multiplicativos y los resultados
de la teora numerica concerniente a los polinomios primitivos
Sea Z
i
el conjunto de los enteros menores a n .Si tenemos p 5, un
n umero primo y z un entero; se dene Inverso Multiplicativo. de z modulo
p, un elementoz tal que:
z.z 1(modp) (5.4)
Vemos entonces que se trata de encontrar los elementos z tal que el resto
de multiplicarlo por z nos da 1
Ejemplo 5.2.8 Consideramos la serie de I.M. para el modulo p = 13
z 0 1 2 3 4 5 6 7 8 9 10 11 12
z 0 1 7 9 10 8 11 2 5 3 4 6 12
Si observamos la tabla anterior los z son los que verican la ecuacion 5.4.
Tambien es bueno observar que la secuencia de inversos multiplicativos de Z
es una permutacion de Z.
Una secuencia congruencial inversa de elementos de Z
p
se dene a traves
de la siguiente recursion:;
X
i
aX
i1
+b(modp) U
i
=
a
i
p
(5.5)
a, b, X
0
n umeros enteros; p n umero primo; a = 0
6
Eichenauer-Hermann 1992
5.2 Generadores de N umeros Pseudo Aleatorios 41
5.2.9. Otras Tecnicas de Generacion de N umeros
Pseudo Aleatorios Uniformes
Por ultimo y sabiendo que quedan varios tecnicas por mencionar pero
cuyo desarrollo superan el alcance de este curso presentamos Feedback shift
register
7
, basado en los sistemas dinamicos caoticos.
Para este metodo presentamos el algoritmo recursivo
X
i
=
k

j=1
a
j
X
ij
(mod c) k > 0; i > k (5.6)
Los a
j
(j = 1, 2, ....k) son coecientes no todos nulos; los a
j
(i = 1, 2, ....k)
son valores iniciales no todos nulos;c es un n umero primo
Si usamos c = 2 tenemos una secuencia de n umeros binarios (0, 1) que
debidamente agrupados en grupo de s cifras binarias a
j
, generan la parte
fraccionaria de n umeros U
i
(0, 1)
U
i
s

j=1
2
j
a
is+js
i > 0 (5.7)
Otra tecnica para generacion de n umeros pseudo aleatorios se basan
en la utilizaci un de n umeros trascendentes. Por ejemplo Dodge(1996) pro-
pone el uso de las cifras de para simular n umeros aleatorios del intervalo
[0, 1, ...,9] .,que veremos a traves de un ejemplo donde probaremos algunas
propiedades en el captulo sobre Tests para n umeros aleatorios.
7
Tausworthe,1965
Bibliografa
[1] M.Chiodi ,Tecniche di Simulazione in Statistica , Dipartamento di
Matematica e Statistica-Universita Federico II Napoli ,Rce Edizioni,2000
[2] B.Morgan ,Elements of Simulation , Chapman &Hall,London,1984
[3] R.Rubistein ,Simulation and the Montecarlo Method, John Wiley
&Sons,New York 1961
42
Captulo 6
Metodos Particulares para
variables aleatorias No
Uniformes
En este captulo presentaremos una forma de convertir VA Uniformes sim-
uladas en VA con otras distribuciones, usando algunos resultados del captulo
6 sobre Revision de Algunas Variables Aleatorias.
6.1. Uso del Teorema Central del Lmite
Para eso usaremos los resultados asintoticos, que son la base de la teora
estadstica , por lo cual trataremos de generar VA Normales.
Supongamos entonces que sabemos y podemos generar n VA independi-
entes U
i
U (0, 1) con U
1
,U
2
...U
n
Sea N =

n
i=1
U
i.
n , N V A Normal. Pero en la practica
que tan grande tiene que ser N para que este resultado asintotico tenga
validez?.Sabemos que si n = 2 N se distribuye triangular ,pero a medida
que n crece la densidad de la distribucion generada se va transformando
en una campana.Si tomamos n=12, teniendo en cuenta que E(U
i
) =
1
2
y
V ar(U
i
) =
1
12
llegamos a
43
6.2 Transformacion de V.A. Uniformes 44
N =
12

i=1
U
i
6 N(0, 1) (6.1)
Este resultado tiene una gran ventaja que es la facilidad para la progra-
macion del algoritmo de generacion.
A continuacion seguiremos con una serie de metodos para generar V.A.
normales transformando VA uniforme y otros casos donde podremos simular
Otras V.A. a partir de V.A. uniformes
6.2. Transformacion de V.A. Uniformes
6.2.1. Metodo de Box M uller
Esste metodo es uno de los mas clasicos en el ambito de la generacion de
n umeros aleatorios y que permite crear VA normales standarizadas inde-
pendientes.
1
Para eso comenzaremos por presentar el metodo de forma intuitiva, usan-
do las propiedades geometricas de la VA Normal Bivariada;luego detallare-
mos una demostracion mas formal usando (distribucion de probabilidad de
transformaciones de V.A.).
2
Supongamos que queremos simular un punto generico P de coordenadas
X
p
,Y
p
de una normal bivariada
Representamos P en un sistema de coordenadas polares, donde
p
es el
modulo de P y
p
el angulo; en vez de generar X
p
,Y
p
, generamos
p
,
p
.

p
,
p
son independientes por simetra radial de la V.A.N.B. con compo-
nentes independientes

2
p
= X
2
p
+Y
2
p
, por lo cual
p
=
_

2
2
(6.2)
1
Box M uller,1958
2
ver captulo 5 sobre Repaso de Variables Aleatorias
6.2 Transformacion de V.A. Uniformes 45
Sabemos como generar una
2
2
,que es una V.A.Exponencial de parametro
=
1
2

p
=
_

2
2
=
_
2 log U
1
donde U
1
U(0, 1) (6.3)
Para la generacion de
p
,es suciente constatar que , para V.A. Nor-
males standarizadas independientes, la densidad del punto a lo largo de
una circunferencia con centro en el origen es constante, razon por la que

p
U [0, 2] .Por eso para generar
p
hacemos la transformacion

p
= 2U
2
donde U
2
U(0, 1) (6.4)
Ahora que logramos obtener
p
,
p
, para obtener X
p
,Y
p
deshacemos la
transformacion a coordenadas cartesianas
X
p
=
p
cos
p
Y
p
=
p
sin
p
(6.5)
X =
_
2 log U
1
cos(2U
1
) (6.6)
Y
p
=
_
2 log U
2
sin(2U
1
) (6.7)
Este resultado que puede resultar sorprendente , ya que logramos obten-
er exactamente a partir de 2 V.A. Uniformes U(0, 1)iid,2 V.A. Normales
N(0, 1)iid.
Como dijimos antes usando transformaciones tenemos que si
N
1
(0, 1); N
2
(0, 1) ; iid, denen un punto en
2
Tenemos una transformacion de coordenadas cartesianas a polares que es
biunvoca, en la que las derivadas parciales involucradas son continuas por
lo que el jacobiano de la transformacion para la densidad conjunta de
p
,
p
:
J
1
=

n
1
p
n
1
p
n
2
p
n
2
p

cos
p

p
sin
p
sin
p
cos
p

=
p
Tenemos entonces que
f
p,p
(
p
,
p
) =

p
2
exp
_

1
2
_
n
2
1
+n
2
2
_
_
= (6.8)

p
2
exp
_

2
p
2
_
para 0 2, 0
p
(6.9)
6.2 Transformacion de V.A. Uniformes 46
Vemos a partir de la ecuacion 6.8 que: f
p,p
(
p
,
p
) =
f
p
(
p
).f
p
(
p
) donde f
p
(
p
) U [0, 2] y
f
p
(
p
) =
p
exp
_

2
p
2
_
Exp(
1
2
)
Vamos a ver a continuacion como generar 2 VA Normales N(0, 1)iid tam-
bien a partir de un par de VA Uniformes U (0, 1)iid transformandolas
usando funciones trigonometricas
6.2.2. Metodo Polar de Marsaglia
Este metodo es un metodo de rechazo ya que algunos de los valores simu-
lados no nos serviran pero lo mas interesante es que usamos senos y cosenos
de angulos distribuidos uniformemente sin tener que simular los angulos.
Sea U
i
U(0, 1) 2U
i
U(0, 2) =V
i
= 2U
i
1 U(1, 1)
Si seleccionamos V
1
y V
2
2 V.A. iid con distribucion U(1, 1). tenemos
un punto aleatorio en un cuadrado de lado 1 con coordenadas cartesianas
(V
1
, V
2
) o lo que es lo mismo con coordenadas polares(R, )
R
2
= V
2
1
+V
2
2
; tan =
V
2
V
1
(1) (6.10)
Tenemos entonces sin =
V
2
R
= V
2
(V
2
1
+ V
2
2
)
1/2
;
cos = V
1
(V
2
1
+ V
2
2
)
1/2
(2)
De esta manera un par de variables N
1
(0, 1); N
2
(0, 1) ; iid
pueden ser generadas
N
1
= (2 ln(R
2
))
1/2
V
2
(V
2
1
+V
2
2
)
1/2
N
2
= (2 ln(R
2
))
1/2
V
1
(V
2
1
+V
2
2
)
1/2
6.3 Transformacion de V.A. Continuas No Uniformes 47
A su vez a partir de la ecuacion 6.10 tenemos por ejemplo
N
1
= (2 ln(V
2
1
+V
2
2
))
1/2
V
2
(V
2
1
+V
2
2
)
1/2
De esta manera resulta que
N
1
= V
2
(
2 ln W
W
)
1/2
; N
2
= V
1
(
2 ln W
W
)
1/2
con W = V
2
1
+ V
2
2
6.3. Transformacion de V.A. Continuas No
Uniformes
En esta seccion describiremos algunos formas de generar VA Continuas
No uniformes cualesquieras a partir de otras que en principio nos resultan
faciles de simular
6.3.1. Simulacion de Distribucion Gamma y Ji cuadra-
do
Una de las VA continuas mas faciles de simular es la Exponencial ya que
teniendo en cuenta su f.d.p
f
X
(x) = e
x
para x 0 X = log(U) con U U(0, 1)
Una VA Y = X/ se distribuye e
x
para x 0
Vimos que si tenemos Y
1
, Y
2
, Y
3,.....
Y
i
con densidad e
x
entonces
G =
i=n

i=1
Y
i
(n, ) (6.11)
Usando la ecuacion 6.11 podemos simular (n, )
G =
1

i=n

i=1
log U
i
Esta ecuacion para generar la VA Gamma usando propiedades de los
logaritmos nos queda
6.3 Transformacion de V.A. Continuas No Uniformes 48
G =
1

log
_
i=n

i=1
U
i
_
Si recordamos las propiedades de la VA Gamma una distribucion
2
m
es
simplemente (m/2,
1
2
) con lo que tenemos resuelta la simulacion de la
2
m
Algoritmo 6.3.2 Simulacion de una
2
m
a partir de una (m/2,
1
2
)
1 Si m es par directamente generamos la
2
m
con (m/2,
1
2
)
2 Si m es impar, obtenemos en primer lugar una ((m1)/2,
1
2
) para
luego sumarle una N
2
donde N N(0, 1).
Viendo esto ultimo tambien podramos haber generado una
2
m
sumando
m VA normales (0, 1) iid. Esto tiene el inconveniente de que dependemos en
la eciencia y precision del metodo usado para simular las normales.
En este caso tenemos que evaluar las m normales y luego sumarlas, mien-
tras que dependiendo de la paridad de m solo hacemos la mitad de las opera-
ciones si hacemos la convolucion de exponenciales que se precisan para las
(m/2,
1
2
)

2
m
= (m/2,
1
2
) =
1

log
_
_
i=m/2

i=1
U
i
_
_
(6.12)
6.3.3. Simulacion de Distribucion de Cauchy
Sea V
i
= 2U
i
1 U(1, 1) : si hacemos Z = V
2
1
+ V
2
2
con la condicion
de que Z 1,
V
1
V
2
Cauchy, que es un caso particular del metodo de razon
de uniformes
6.3 Transformacion de V.A. Continuas No Uniformes 49
6.3.4. Simulacion de Distribucion de Beta
Si tenemos la VA Beta con f.d.p
f
X
(x) =
(1x)
1
x
1
B(,)
X Beta(, )
Podemos generar X =
G
1
(G
1
+G
2
)
donde G
1,
G
2
son VA gammas con paramet-
ros n
1
, n
2
y
1
=
2
= X Beta(n
1
, n
2
)
6.3.5. Metodo de Johnk para distribuciones BETA
Un metodo eciente para simular VA Beta X Beta(, ) es
Sea U, V VA Uniformes U(0, 1) iid
Y=U
1

; V
1

y X =
Y
Y +Z
Condicionados a Y +Z 1, X tiene una distribucion Beta de paramet-
ros ,
Bibliografa
[1] M.Chiodi ,Tecniche di Simulazione in Statistica , Dipartamento di
Matematica e Statistica-Universita Federico II Napoli ,Rce Edizioni,2000
[2] B.Morgan ,Elements of Simulation , Chapman &Hall,London,1984
[3] R.Rubistein ,Simulation and the Montecarlo Method, John Wiley
&Sons,New York 1961
50

También podría gustarte