Cap´ıtulo 5 Generación de Números Aleatorios Uniformes

Anuncio
Capı́tulo 5
Generación de Números
Aleatorios Uniformes
Vimos en el capı́tulo sobre repaso de distribuciones de probabilidad, lo
que es una distribución uniforme. Pero podemos encontrar un método o experimento que genere una secuencia de números con distribución 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 definición dada en
el capı́tulo introductorio sobre simulación , si queremos por ejemplo tirar el
dado 100 veces, con la ayuda de la computadora y los métodos matemáticos
adecuados debiéramos poder hacerlo.Pero que significa jugar al dado 100
veces? Si lo hiciésemos realmente al cabo de esas 100 realizaciones tendrı́amos
100 números que estad en el conjunto {1, 2, 3, 4, 5, 6} .
Por lo tanto alcanza con encontrar una forma de generar los números naturales del 1 al 6 de manera que cada resultado tenga la misma probabilidad
cada vez que ”simulamos” el experimento.
5.1 Números Pseudo Aleatorios
5.1.
35
Números Pseudo Aleatorios
Veamos lo siguiente: supongamos que la máquina es capaz de devolvernos
un número que esta entre 0 y 1 y para asignarle unos de los posibles 6 caras
del dado con la misma probabilidad hacemos la siguiente precisaón.
Si r es el resultado devuelto por la máquina nos fijamos si
0 ¡r ≤ 16 decimos que salaó el 1
1
< r ≤ 26 decimos que salaó el 2
6
..........................................
5
<
r ≤ 1 decimos que salaó el 6
6
Cuadro 5.1: Asignación de los resultados del dado...
Si la máquina fuera capaz de hacer eso serı́amos capaces de simular un
dado. El asunto es que cada vez que nos devuelva un número1 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úmero esté en cada uno de los 6
intervalos.
Tiene realmente la máquina un algoritmo que sea capaz de devolvernos
números aleatorios uniformes? No , lo que realmente es capaz de generar la
máquina son números pseudoaleatorios que son determinı́sticos pero se comportan como si fueran randómicos.Vamos a tratar entender que es realmente
lo que hace internamente la máquina 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úmeros
podemos plantearnos que es mejor
Tirar efectivamente el dado
Simular el experimento de tirar
1
Todavı́a no sabemos como lo hace pero probablemente tenga programada una serie de
pasos que hace que nos devuelva un número con ciertas condiciones.Esa serie de pasos es
lo que llamamos algoritmo
5.2 Generadores de Números 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 reproducir 2 secuencias exactamente iguales( es decir los mismo 100 números
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
Aleatorios
de
Números
Pseudo
En general los métodos para generar números pseudoaleatorios son métodos recursivos que a partir de un valor dado inicial van generando una secuencia de números que podrı́an considerarse como aleatorios.Este tipo de
métodos estan basados en congruencias que a continuación presentaremos
5.2.1.
Generadores Congruenciales Lineales
Comencemos por recordar la definición de congruencia de números 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ódulo
A partir de esta definición planteamos el siguiente algoritmo recursivo
que tiene forma lineal 2
X0 dado, Xi+1 = (aXi + b)c oXi+1 = (aXi + b) mod(c)
a multiplicador
0≤a≤c
b incremento o ≤ b ≤ c
c módulo c > 0
X0 valor inicial o semilla 0 ≤ X0 ≤ c
2
Introducido por Lehmer (1951)
(5.2)
5.2 Generadores de Números Pseudo Aleatorios
37
Esta algoritmo genera una secuencia de c números diferentes del
(0, ...., c − 1) ,que se transforman en Ui = Xi (c − 1)−1 que tienen sus valores en el intervalo (0, 1) .
Esta secuencia está 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 números pseudoaleatorios obtenidos con el
algoritmo precedente es la que presentamos a continuación
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 tenemos 16 valores distintos donde la secuencia es una permutación 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
0 1 0,0625 5
1 12 0,6875 6
2 3 0,5625 7
3 6 0,1875 8
4 5 0,0625 9
vemos que la secuencia tiene un
3
Algoritmo Congruencial Lineal
Xi
4
11
14
13
8
ciclo
Ui
0,6875
0,5625
0,1875
0,0625
0,6875
menor al módulo seleccionado
5.2 Generadores de Números 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úmeros generados
se repiten en forma permanente a pesar de que habı́amos seleccionado un
módulo bastante grande.
Para eso en la sección que sigue veremos cuales son las restricciones que
deben tener las parámetros del algoritmo de manera de tener una secuencia
generada que no sea muy pequeña, antes de que comiencen a repetirse los
valores.
5.2.5.
Elección de los parámetros 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úmeros distintos
de 0 a c − 1)
2. Debe de estar desarrollado a partir de un módulo grande que permite
obtener números con una cierta cantidad de decimales, por ejemplo
c=1000000
3. El agoritmo deberı́a ser poco sensible a la elección de X0
Cuando b > 0 la secuencia es de largo máximo si el resto de los parámetros
cumplen las siguientes restricciones:4
b y c son primos entre si
a − 1 es múltiplo cada factor primo de c
a − 1 es múltiplo de 4 si c es múltiplo de 4
4
Estas restricciones surgen de las propiedades de los números primos que establecen
las condiciones para tener secuencias de ciclo máximo.Ver referencias
5.2 Generadores de Números Pseudo Aleatorios
5.2.6.
39
Propiedades de los Generadores Congruenciales
Además 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 través de la función de autocorrelación
1 a
ρ1 (U ) ∈
±
recordando que la F.A.C de rezago =1 es
a c
n−1
X
ρ1 (U ) =
[Ui − M (U )] [Ui+1 − M (U )] / nS 2 (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
ρ≈ −
a ac
b
1−
c
±
a
c
(5.3)
Vemos como queda esta aproximación deρ para 2 secuencias con el mismo
tamaño de ciclo
a
b c
ρ
(i)
234 + 1 1 235
0,25
(id) 218 + 1 1 235
4 2−18
Otras caracterı́sticas de la secuencia generada, como pueden ser forma y
patrones (tendencias) se analizarán mas adelante en el capı́tulo Tests para
números aleatorios
5
En realidad ya sabemos que dependen al provenir de un algoritmo determinśtico, es
solo a los efectos de un comportamiento que pretendemos considerar como aleatorio
5.2 Generadores de Números Pseudo Aleatorios
5.2.7.
40
Generadores Congruenciales No Lineales
Vimos en secciones precedentes que los ACL pueden tener propiedades
no deseadas, como puede ser por ejemplo la correlación.
Para eso existen alternativas desarrolladas en los últimos años, que tendrán 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 teorı́a numérica concerniente a los polinomios primitivos
Sea Zi el conjunto de los enteros menores a n .Si tenemos p ≥ 5, un
número primo y z un entero; se define Inverso Multiplicativo. de z módulo
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ódulo 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 ecuación 5.4.
También es bueno observar que la secuencia de inversos multiplicativos de Z
es una permutación de Z.
Una secuencia congruencial inversa de elementos de Zp se define a través
de la siguiente recursión:;
ai
p
números enteros; p número primo; a 6= 0
Xi ≡ aXi−1 + b(modp) Ui =
a, b, X0
6
Eichenauer-Hermann 1992
(5.5)
5.2 Generadores de Números Pseudo Aleatorios
5.2.9.
41
Otras Técnicas de Generación de Números
Pseudo Aleatorios Uniformes
Por último y sabiendo que quedan varios técnicas por mencionar pero
cuyo desarrollo superan el alcance de este curso presentamos Feedback shift
register7 , basado en los sistemas dinámicos caóticos.
Para este método presentamos el algoritmo recursivo
Xi =
k
X
aj Xi−j (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úmero primo
Si usamos c = 2 tenemos una secuencia de números binarios (0, 1) que
debidamente agrupados en grupo de s cifras binarias aj , generan la parte
fraccionaria de números Ui ∈ (0, 1)
Ui
s
X
2−j ais+j−s
i>0
(5.7)
j=1
Otra técnica para generación de números pseudo aleatorios se basan
en la utilizaciún de números trascendentes. Por ejemplo Dodge(1996) propone el uso de las cifras de π para simular números aleatorios del intervalo
[0, 1, ...,9] .,que veremos a través de un ejemplo donde probaremos algunas
propiedades en el capı́tulo sobre Tests para números aleatorios.
7
Tausworthe,1965
Bibliografı́a
[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
Capı́tulo 6
Métodos Particulares para
variables aleatorias No
Uniformes
En este capı́tulo presentaremos una forma de convertir VA Uniformes simuladas en VA con otras distribuciones, usando algunos resultados del capı́tulo
6 sobre Revisión de Algunas Variables Aleatorias.
6.1.
Uso del Teorema Central del Lı́mite
Para eso usaremos los resultados asintóticos, que son la base de la teorı́a
estadı́stica , por lo cual trataremos de generar VA Normales.
Supongamos entonces que sabemos y podemos generar n VA independientes Ui ∼ U (0, 1) con U1 ,U2 ...Un
P
Sea N = ni=1 Ui. ⇒ n → ∞, N → V A N ormal. Pero en la práctica
que tan grande tiene que ser N para que este resultado asintótico tenga
validez?.Sabemos que si n = 2 N se distribuye triangular ,pero a medida
que n crece la densidad de la distribución 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 Transformación de V.A. Uniformes
N=
12
X
Ui − 6 ∼ N (0, 1)
44
(6.1)
i=1
Este resultado tiene una gran ventaja que es la facilidad para la programación del algoritmo de generación.
A continuación seguiremos con una serie de métodos 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.
6.2.1.
Transformación de V.A. Uniformes
Método de Box Müller
Esste método es uno de los mas clásicos en el ámbito de la generación de
números aleatorios y que permite crear VA normales ”standarizadas” independientes.1
Para eso comenzaremos por presentar el método de forma intuitiva, usando las propiedades geométricas de la VA Normal Bivariada;luego detallaremos una demostración mas formal usando (distribución de probabilidad de
transformaciones de V.A.).2
Supongamos que queremos simular un punto genérico P de coordenadas
Xp ,Yp de una normal bivariada
Representamos P en un sistema de coordenadas polares, donde ρp es el
módulo de P y θp el ángulo; en vez de generar Xp ,Yp , generamos ρp ,θp .
ρp ,θp son independientes por simetrı́a radial de la V.A.N.B. con componentes independientes
q
2
2
2
(6.2)
ρp = Xp + Yp , por lo cual ρp = χ22
1
2
Box Müller,1958
ver capı́tulo 5 sobre Repaso de Variables Aleatorias
6.2 Transformación de V.A. Uniformes
45
Sabemos como generar una χ22 ,que es una V.A.Exponencial de parámetro
λ = 21 ⇒
q
p
ρp = χ22 = −2 log U1 donde U1 ∼ U (0, 1)
(6.3)
Para la generación de θp ,es suficiente constatar que , para V.A. Normales standarizadas independientes, la densidad del punto a lo largo de
una circunferencia con centro en el origen es constante, razón por la que
θp ∼ U [0, 2π] .Por eso para generar θp hacemos la transformación
θp = 2πU2 donde U2 ∼ U (0, 1)
(6.4)
Ahora que logramos obtener ρp ,θp , para obtener Xp ,Yp deshacemos la
transformación a coordenadas cartesianas
Xp = ρp cos θp
Yp = ρp sin θp
(6.5)
X =
p
−2 log U1 cos(2πU1 )
(6.6)
Yp =
p
−2 log U2 sin(2πU1 )
(6.7)
Este resultado que puede resultar sorprendente , ya que logramos obtener 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 transformación de coordenadas cartesianas a polares que es
biunı́voca, en la que las derivadas parciales involucradas son continuas por
lo que el jacobiano de la transformación para la densidad conjunta de ρp ,θp :
∂n1 ∂n1
cos θp
− ρp sin θp ∂ρp
∂θp −1
J = ∂n2
= ρp
∂n2 = sin θp
cos θp ∂ρp
∂θp Tenemos entonces que
ρp
1 2
2
fρp ,θp (ρp , θp ) =
exp − n1 + n2 =
2π
2
2
ρp
ρp
exp −
para 0 ≤ θ ≤ 2π, 0 ≤ ρp ≤ ∞
2π
2
(6.8)
(6.9)
6.2 Transformación de V.A. Uniformes
Vemos
a
partir
de
la
fρp (ρp ).fθp (θp ) h
i donde
ρ2p
fρp (ρp ) = ρp exp − 2 ∼ Exp( 12 )
46
ecuación
6.8
que:
∼
fθp (ρp )
fρp ,θp (ρp , θp )
U [0, 2π]
=
y
Vamos a ver a continuación como generar 2 VA Normales N (0, 1)iid tambien a partir de un par de VA Uniformes U v (0, 1)iid transformándolas
usando funciones trigonométricas
6.2.2.
Método Polar de Marsaglia
Este método es un método de rechazo ya que algunos de los valores simulados no nos servirán pero lo mas interesante es que usamos senos y cosenos
de ángulos 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 distribución 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, Θ)
R2 = V12 + V22 ⇒ ; tan Θ =
Tenemos entonces
sin Θ =
cos Θ = V1 (V12 + V22 )−1/2 (2)
V2
R
V2
V1
=
(1)
(6.10)
V2 (V12 + V22 )−1/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 Transformación de V.A. Continuas No Uniformes
A su vez
47
a partir de la ecuación 6.10 tenemos por ejemplo
N1 = (−2 ln(V12 + V22 ))1/2 ∗ V2 (V12 + V22 )−1/2
De esta manera resulta que
ln W 1/2
ln W 1/2
N1 = V2 ( −2W
) ; N2 = V1 ( −2W
)
6.3.
con W = V12 + V22
Transformación de V.A. Continuas No
Uniformes
En esta sección 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ón de Distribución Gamma y Ji cuadrado
Una de las VA continuas mas fáciles de simular es la Exponencial ya que
teniendo en cuenta su f.d.p
→ fX (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 Y1 , Y2 , Y3,..... Yi
G=
i=n
X
con densidad λe−λx entonces
Yi ∼ Γ(n, λ)
(6.11)
i=1
Usando la ecuación 6.11 podemos simular Γ(n, λ)
i=n
1X
G=
log Ui
λ i=1
Esta ecuación para generar la VA Gamma usando propiedades de los
logaritmos nos queda
6.3 Transformación de V.A. Continuas No Uniformes
i=n
Y
1
G = log
Ui
λ
i=1
48
!
Si recordamos las propiedades de la VA Gamma una distribución χ2m es
simplemente Γ(m/2, 21 ) con lo que tenemos resuelta la simulación de la χ2m
Algoritmo 6.3.2 Simulación de una χ2m a partir de una Γ(m/2, 12 )
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 último también podrı́amos haber generado una χ2m sumando
m VA normales (0, 1) iid. Esto tiene el inconveniente de que dependemos en
la eficiencia y precisión del método usado para simular las normales.
En este caso tenemos que evaluar las m normales y luego sumarlas, mientras que dependiendo de la paridad de m solo hacemos la mitad de las operaciones si hacemos la convolución de exponenciales que se precisan para las
Γ(m/2, 12 )

i=m/2
1
1
χ2m = Γ(m/2, ) = log 
2
λ
6.3.3.
Y

Ui 
(6.12)
i=1
Simulación de Distribución de Cauchy
Sea Vi = 2Ui − 1 v U (−1, 1) : si hacemos Z = V12 + V22 con la condición
de que Z ≤ 1, VV21 ∼ Cauchy, que es un caso particular del método de razón
de uniformes
6.3 Transformación de V.A. Continuas No Uniformes
6.3.4.
49
Simulación de Distribución de Beta
Si tenemos la VA Beta con f.d.p
fX (x) =
(1−x)β−1 xα−1
B(α,β)
→ X ∼ Beta(α, β)
1
Podemos generar X = (G1G+G
donde G1, G2 son VA gammas con parámet2)
ros n1 , n2 y λ1 = λ2 = λ ⇒ X ∼ Beta(n1 , n2 )
6.3.5.
Método de Johnk para distribuciones BETA
Un método eficiente para simular VA Beta X ∼ Beta(α, β) es
Sea U, V VA Uniformes U (0, 1) iid
1
Y=U α ; V
1
β
yX=
Y
Y +Z
Condicionados a Y +Z ≤ 1, X tiene una distribución Beta de parámetros α, β
Bibliografı́a
[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
Descargar