You are on page 1of 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 distribuci
on 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
= {1, 2, 3, 4, 5, 6} con P (X = x) = (5.1)
6

Podemos simular este experimento? Si recordamos la definicion 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 significa jugar al dado 100
veces? Si lo hiciesemos realmente al cabo de esas 100 realizaciones tendramos
100 numeros 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 numero 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 fijamos si

0 r 16 decimos que salao el 1


1
6
< r 26 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 umero1 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


numeros aleatorios uniformes? No , lo que realmente es capaz de generar la
maquina son numeros 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 numero 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 numeros
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 numeros 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 definicion 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 ac bc donde c el ,lo que llama m odulo

A partir de esta definicion planteamos el siguiente algoritmo recursivo


que tiene forma lineal 2

X0 dado, Xi+1 = (aXi + b)c oXi+1 = (aXi + b) mod(c) (5.2)


a multiplicador 0ac
b incremento o b c
c m odulo c > 0
X0 valor inicial o semilla 0 X0 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 Ui = Xi (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.L3 .X0 = 1, a = 5, b = 7, c = 16

La secuencia completa de los numeros pseudoaleatorios obtenidos con el


algoritmo precedente es la que presentamos a continuacion
i Xi Ui i Xi Ui
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 X0 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 X0 =


1, a = 11, b = 0, c = 16 tenemos la tabla que sigue

i Xi Ui i Xi Ui
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 .X0 = 1, a = 20, b = 7, c = 1024


i Xi Ui i Xi Ui
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. Elecci
on de los par
ametros X0 , a, b, c
Una serie de restricciones necesaria pero no suficiente 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 X0

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 suficientemente largo podemos
estar interesados en el grado de dependencia5 entre valores consecutivos de
la secuencia, y que podemos medir a traves de la funci
on de autocorrelaci
on

 
1 a
1 (U ) recordando que la F.A.C de rezago =1 es
a c
n1
X
[Ui M (U )] [Ui+1 M (U )] / nS 2 (U )
 
1 (U ) =
i=1

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 6b b a
1 (5.3)
a ac c c
Vemos como queda esta aproximacion de para 2 secuencias con el mismo
tama
no de ciclo
a b c

(i) 234 + 1 1 235
0,25
(id) 218 + 1 1 235
4 218

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 anos, que ten-
dran asociadas mayor esfuerzo computacional a cambio de mejores resultados.
Dentro de esta clase de generadores vamos a presentar los Generadores
Congruenciales Inversos6
Estos se basan en los conceptos de inversos multiplicativos y los resultados
de la teora numerica concerniente a los polinomios primitivos
Sea Zi el conjunto de los enteros menores a n .Si tenemos p 5, un
n
umero primo y z un entero; se define 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 m


odulo 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 verifican 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 Zp se define a traves
de la siguiente recursion:;

ai
Xi aXi1 + b(modp) Ui = (5.5)
p
a, b, X0 n umero primo; a 6= 0
umeros enteros; p n

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
register7 , basado en los sistemas dinamicos caoticos.

Para este metodo presentamos el algoritmo recursivo


k
X
Xi = aj Xij (mod c) k > 0; i > k (5.6)
j=1

Los aj (j = 1, 2, ....k) son coeficientes no todos nulos; los aj (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 aj , generan la parte
fraccionaria de n umeros Ui (0, 1)
s
X
Ui 2j ais+js i>0 (5.7)
j=1

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 Revisi on 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 Ui U (0, 1) con U1 ,U2 ...Un

Sea N = ni=1 Ui. n , N V A N ormal. Pero en la practica


P
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(Ui ) = 21 y
1
V ar(Ui ) = 12 llegamos a

43
6.2 Transformacion de V.A. Uniformes 44

12
X
N= Ui 6 N (0, 1) (6.1)
i=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. Transformaci
on de V.A. Uniformes
6.2.1. M
etodo 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


Xp ,Yp 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 Xp ,Yp , generamos p ,p .
p ,p son independientes por simetra radial de la V.A.N.B. con compo-
nentes independientes
q
2 2 2
p = Xp + Yp , por lo cual p = 22 (6.2)
1
Box Muller,1958
2
ver captulo 5 sobre Repaso de Variables Aleatorias
6.2 Transformacion de V.A. Uniformes 45

Sabemos como generar una 22 ,que es una V.A.Exponencial de parametro


= 21
q p
p = 22 = 2 log U1 donde U1 U (0, 1) (6.3)
Para la generacion de p ,es suficiente 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 = 2U2 donde U2 U (0, 1) (6.4)


Ahora que logramos obtener p ,p , para obtener Xp ,Yp deshacemos la
transformacion a coordenadas cartesianas

Xp = p cos p Yp = p sin p (6.5)

p
X = 2 log U1 cos(2U1 ) (6.6)
p
Yp = 2 log U2 sin(2U1 ) (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
N1 v (0, 1); N2 v (0, 1) ; iid, definen 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 transformaci on para la densidad conjunta de p ,p :

n1 n1
1 p p
cos p p sin p
J = n2 n2 =
= p
p p
sin p cos p

Tenemos entonces que


 
p 1 2 2

fp ,p (p , p ) = exp n1 + n2 = (6.8)
2 2
 2
p p
exp para 0 2, 0 p (6.9)
2 2
6.2 Transformacion de V.A. Uniformes 46

Vemos a partir de la ecuacion 6.8 que: fp ,p (p , p ) =

fp (p ).fp (p ) h i donde fp (p ) U [0, 2] y


2p
fp (p ) = p exp 2 Exp( 12 )

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 v (0, 1)iid transformandolas
usando funciones trigonometricas

6.2.2. M
etodo 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 Ui U (0, 1) 2Ui v U (0, 2) = Vi = 2Ui 1 v U (1, 1)

Si seleccionamos V1 y V2 2 V.A. iid con distribucion U (1, 1). tenemos


un punto aleatorio en un cuadrado de lado 1 con coordenadas cartesianas
(V1 , V2 ) o lo que es lo mismo con coordenadas polares(R, )

V2
R2 = V12 + V22 ; tan = (1) (6.10)
V1

V2
Tenemos entonces sin = R
= V2 (V12 + V22 )1/2 ;
cos = V1 (V12 + V22 )1/2 (2)

De esta manera un par de variables N1 v (0, 1); N2 v (0, 1) ; iid


pueden ser generadas

N1 = (2 ln(R2 ))1/2 V2 (V12 + V22 )1/2

N2 = (2 ln(R2 ))1/2 V1 (V12 + V22 )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

N1 = (2 ln(V12 + V22 ))1/2 V2 (V12 + V22 )1/2

De esta manera resulta que

N1 = V2 ( 2W ) ; N2 = V1 ( 2W
ln W 1/2 ln W 1/2
) con W = V12 + V22

6.3. Transformaci
on 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. Simulaci
on de Distribuci
on 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

fX (x) = ex para x 0 X = log(U ) con U U (0, 1)

Una VA Y = X/ se distribuye ex para x 0

Vimos que si tenemos Y1 , Y2 , Y3,..... Yi con densidad ex entonces


i=n
X
G= Yi (n, ) (6.11)
i=1

Usando la ecuacion 6.11 podemos simular (n, )


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

i=n
!
1 Y
G = log Ui
i=1

Si recordamos las propiedades de la VA Gamma una distribucion 2m es


simplemente (m/2, 21 ) con lo que tenemos resuelta la simulacion de la 2m

on de una 2m a partir de una (m/2, 12 )


Algoritmo 6.3.2 Simulaci

1 Si m es par directamente generamos la 2m con (m/2, 12 )

2 Si m es impar, obtenemos en primer lugar una ((m 1)/2, 12 ) para


luego sumarle una N 2 donde N N (0, 1).

Viendo esto ultimo tambien podramos haber generado una 2m sumando


m VA normales (0, 1) iid. Esto tiene el inconveniente de que dependemos en
la eficiencia 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, 12 )


i=m/2
1 1 Y
2m = (m/2, ) = log Ui (6.12)
2 i=1

6.3.3. Simulaci
on de Distribuci
on de Cauchy
Sea Vi = 2Ui 1 v U (1, 1) : si hacemos Z = V12 + V22 con la condicion

de que Z 1, VV21 Cauchy, que es un caso particular del metodo de raz


on

de uniformes
6.3 Transformacion de V.A. Continuas No Uniformes 49

6.3.4. Simulaci
on de Distribuci
on de Beta

Si tenemos la VA Beta con f.d.p


(1x)1 x1
fX (x) = B(,)
X Beta(, )

Podemos generar X = (G1G+G


1
2)
donde G1, G2 son VA gammas con paramet-
ros n1 , n2 y 1 = 2 = X Beta(n1 , n2 )

6.3.5. M
etodo de Johnk para distribuciones BETA
Un metodo eficiente para simular VA Beta X Beta(, ) es

Sea U, V VA Uniformes U (0, 1) iid


1 1
Y
Y=U ; V yX= 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

You might also like