Sei sulla pagina 1di 15

Mtodos de generacin de nmeros pseudoaleatorios.

Introduccin
Se llama nmeros pseudoaleatorios a una sucesin determinstica de nmeros en el intervalo [0,1] que tiene las mismas propiedades estadsticas que una sucesin de nmeros aleatorios. Una forma general de obtener nmeros pseudoaleatorios es partir de una semilla de p nmeros y aplicar una funcin d de modo que

Por ejemplo, el fallido mtodo del cuadrado medio es como sigue: se parte de un nmero de cuatro cifras y se eleva al cuadrado. De este nmero de ocho cifras que se obtiene, nos quedamos con las cuatro centrales y repetimos el proceso las veces que necesitemos. El problema de este mtodo es que puede dar ciclos muy cortos (en cualquier caso, aspiramos a lo sumo a una longitud de diez mil):

A partir de aqu siempre se obtiene el valor cero. A la vista de este ejemplo, nos planteamos unas propiedades mnimas que debern satisfacer los nmeros pseudoaleatorios:

Ajustarse a una distribucin U(0,1). Ser estadsticamente independientes (no debe deducirse un nmero conociendo otros ya generados). Ser reproducibles (la misma semilla debe dar la misma sucesin). Ciclo repetitivo muy largo. Facilidad de obtencin. Ocupar poca memoria.

Mtodos congruenciales
Se define el siguiente mtodo congruencial: Se genera

a partir de una semilla X0, con

Entonces se toma

Ejemplo: M=1000, a=7, c=501, X0=0.

. Y as sucesivamente. Si Xi=Xi+k por vez primera, entonces k se denomina perodo del generador. Si c=0 el mtodo se dice multiplicativo. A continuacin, enunciamos dos resultados relacionados con congruencias cuya demostracin se omite. Condicin necesaria para que un generador multiplicativo tenga un perodo de longitud M-1 es que M sea primo. Si M es primo, el perodo divide a M-1. En este caso, el perodo es M-1 si, y slo si,

Sea . Un generador congruencial tiene perodo M si, y slo si, se cumplen las tres condiciones siguientes: 1. mcd(c,M)=1. 2. factor primo de M. 3. si M es mltiplo de 4. A continuacin se presenta el generador implementado en los IBM380 en 1970. Este mtodo result tener un gran problema: hay quince planos paralelos en el cubo [0,1]3 que contienen todos los puntos que se obtienen tomando tres valores Xi, Xi+1, Xi+2 cualesquiera.

Ejemplo: c=0, a=216+3, M=231 Los ci que se utilizan a continuacin representan enteros. Su valor exacto se omite pues no tiene inters.
Xi+1=(216+3) Xi + 231 c0

=(6 (216+3)-9) Xi + 231 c4 = 6 (216+3)Xi - 9 Xi + 231 c4 = 6 Xi+1 -9 Xi + 231 c5

As

Como ui, ui+1, y , enonces . Es decir, todas las ternas (ui,ui+1,ui+2) estn concentradas en quince planos.

Un generador recomendado es

Otros mtodos de generacin de nmeros pseudoaleatorios


Sean , dos sucesiones de nmeros pseudoaleatorios, generados congruencialmente, con respectivos perodos c1 y c2. La sucesin tiene perodo mcm(c1,c2). Sean U1, U2 variables aleotorias independientes con distribucin U(0,1). La variable Z=frac(U1+U2) sigue tambin una distribucin U(0,1). Demostracin: Como U1, U2 son independientes, entonces la variable bidimensional (U1,U2) sigue una distribucin uniforme en el cuadrado .

Sean

La distribucin marginal es

Por otra parte,

As, para

, se tiene

Q.E.D.

Generadores binarios de cambio de registro Representemos por bi el bit i-simo. Partiendo de una semilla una combinacin lineal de los anteriores: , se obtiene el bit i-simo a partir de

Los ciclos sern de longitud 2d-1 a lo sumo (suponiendo ad=1). Si se obtiene d veces consecutivas el valor 0, entonces el algoritmo degenera generando siempre este valor. Usualmente se procede como sigue: se toma p>q y se hace

El ciclo as generado tendr una longitud de a lo sumo 2p-1 bits. Si se quiere generar nmeros pseudoaleatorios con precisin 2-L, se toma

Con el fin de ahorrar esfuerzo de clculo se suele tomar (mtodo sugerido por Taustworthe)

donde t se denomina decimacin. As se tiene que el perodo mximo se alcanza cuando se cumple mcd(t,2p-1)=1. Los valores ms habituales son

PRUEBAS A LOS NUMEROS PSEUDOALEATORIOS

2.9 Pruebas estadsticas para los nmeros aleatorios.

Puesto que en el muestreo Monte Carlo cualquier variable aleatoria no uniforme (normal, exponencial, Poisson, etc.), es obtenida a partir de nmeros aleatorios uniformes (0,1), el principal nfasis en las pruebas estadsticas debern ser con respecto al generador de los nmeros aleatorios, ya que cualquier deficiencia estadstica en la distribucin de la variable aleatoria no uniforme, se deber exclusivamente a la utilizacin de un deficiente generador de nmeros aleatorios. Por ello se aplicarn algunas de las muchas pruebas estadsticas que han sido desarrolladas para probar la uniformidad y aleatoriedad o independencia de los mismos, lo cual significa que la ocurrencia de un nmero aleatorio no determina la ocurrencia del siguiente y as sucesivamente. Para la uniformidad

Bondad de ajuste o Ji-cuadrada: X2 Bondad de ajuste Kolmogorov-Smirnov

Para la aleatoriedad o independencia


Corridas por arriba y por abajo del promedio Corridas ascendentes y descendentes

PRUEBA DE BONDAD DE AJUSTE JI CUADRADA. Procedimiento: 1. Generar la muestra de nmeros aleatorios de tamao N. 2. Subdividir el intervalo [0,1] en n subintervalos. 3. Para cada subintervalo contar la frecuencia observada F0 y calcular la frecuencia esperada FE de nmeros aleatorios, la cual se obtiene dividiendo N/n. 4. Calcular el estadstico de prueba.

5. Comparar el valor calculado X02 contra el valor tabulado de la distribucin X2, con (n-1) grados de libertad y una significancia ?. Si X02 es menor que X2(n-1),? entonces no se puede rechazar la uniformidad de los nmeros aleatorios.

EJEMPLO 4. Realizar la prueba de bondad de ajuste Ji-cuadrada a la siguiente muestra de tamao 30 de nmeros aleatorios uniformes
0.15 0.26 0.33 0.25 0.18 0.31 0.34 0.49 0.83 0.11 0.81 0.70 0.77 0.68 0.03 0.48 0.31 0.04 0.97 0.59 0.01 0.07 0.43 0.11 0.25 0.60 0.06 0.92 0.00 0.55

INTERVALO 0.00 - 0.20 0.21 - 0.40 0.41 - 0.60 0.61 - 0.80 0.81 - 1.00

FE 6 6 6 6 6

FO 10 7 6 3 4

(FE-FO)2/FE 2.67 0.17 0.00 1.50 0.67 X20=5.01

Sea alfa= 5%. Tenemos (5-1) grados de libertad, es decir V=4. El valor en tablas de la distribucin Ji cuadrada es: X24.5% = 9.49 Como X02 es menor que X24.5% es decir; 5.01 es menor que 9.49. entonces no se puede rechazar la uniformidad de los nmeros aleatorios.

PRUEBA DE BONDAD DE AJUSTE DE KOLMOGOROV-SMIRNOV Procedimiento

1. Generar una muestra de nmeros aleatorios uniformes de tamao N. 2. Ordenar dichos nmeros en orden ascendente. 3. Calcular la distribucin acumulada de los nmeros generados con la siguiente expresin

Donde i es la posicin que ocupa el nmero aleatorio Xi en el vector ordenado obtenido en el paso 2. 4. Calcular el estado de prueba Kolmogorov-Smirnov del modo siguiente Dn = mx | Fn (Xi) Xi | para toda Xi 5. Si Dn es menor dalfa,n, entonces no se puede rechazar la hiptesis de que los nmeros generados provienen de una distribucin uniforme. La distribucin de Dn ha sido tabulada como una funcin de n y alfa para cuando Fn (x) = F0 (x).

EJEMPLO 5. Efectuar la prueba de Kolmogorov Smirnov a la siguiente muestra de nmeros aleatorios uniformes.
0.15 0.26 0.33 0.25 0.18 0.31 0.34 0.49 0.83 0.11 0.81 0.70 0.77 0.68 0.03 0.48 0.31 0.04 0.97 0.59 0.01 0.07 0.43 0.11 0.25 0.60 0.06 0.92 0.00 0.55

Sustituyendo los valores en las frmulas correspondientes se tiene que:


i 1 2 RNDi 0.00 0.01 F(RNDi) 0.03 0.07 RNDi- F (RNDi) 0.03 0.06

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

0.03 0.04 0.06 0.07 0.11 0.11 0.15 0.18 0.25 0.25 0.26 0.31 0.33 0.34 0.34 0.43 0.48 0.49 0.55 0.59 0.60 0.68 0.70 0.77

0.10 0.13 0.17 0.20 0.23 0.27 0.30 0.33 0.36 0.40 0.43 0.47 0.50 0.53 0.57 0.60 0.63 0.67 0.70 0.73 0.77 0.80 0.83 0.87

0.07 0.09 0.11 0.13 0.12 0.16 0.15 0.15 0.11 0.15 0.17 0.16 0.17 0.19 0.23 0.17 0.15 0.18 0.15 0.14 0.17 0.12 0.13 0.1

27 28 29 30

0.81 0.83 0.92 0.97

0.90 0.93 0.97 1.00

0.09 0.1 0.05 0.03

siguiendo con el paso 4 Dn = Max |RNDi F(RNDi)| = 0.23 Comparamos el valor Dn (calculado) contra el valor en tablas de la distribucin Kolmogorov-Smirnov con n = 30 y un nivel de significancia alfa = 5%, el cual es d30.5% = 0.242. como 0.23 es menor que 0.242, entonces, no se puede rechazar la uniformidad de los nmeros aleatorios.

CORRIDAS POR ARRIBA Y POR ABAJO DEL PROMEDIO Procedimiento Generar la muestra de tamao N de nmeros aleatorios. Con base en esta muestra, obtener una nueva sucesin binaria, segn el criterio siguiente: Si rj es menor o igual a 0.50 entonces asignarle a rj el smbolo 0. Si rj es mayor a 0.50 entonces asignarle a rj el smbolo 1. La frecuencia esperada para cada longitud de corrida i, es:

EJEMPLO 6. Dada la siguiente muestra de tamao 30 de nmeros aleatorios, aplicar la prueba de corridas, para la independencia
0.15 0.26 0.31 0.34 0.81 0.70 0.48 0.31 0.01 0.07 0.60 0.06

0.33 0.25 0.18

0.49 0.83 0.11

0.77 0.68 0.03

0.04 0.97 0.59

0.43 0.11 0.25

0.92 0.00 0.55

Comparando los nmeros aleatorios segn el criterio establecido, se obtiene la siguiente sucesin binaria. Leyendo de izquierda a derecha se agrupan los smbolos del mismo tipo para formar las corridas.
0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1

En la siguiente tabla se resume la informacin necesaria para el clculo de la Jicuadrada


Longitud de corrida i 1 2 3 4 5 FE 8.000 3.875 1.875 0.906 0.438 FO 9 3 2 1 1 (FE-FO)2/FE 0.125 0.197 0.008 0.010 0.721

Como para las longitudes de corrida i = 2, 3, 4, 5; las frecuencias observadas son menores o igual a cinco, agrupamos estas longitudes de corridas en una sola longitud de corrida ? 2.
i FE FO (FE-FO)2/FE

1 >=2

8 7.04

9 7

0.125 0.936 X02 = 1.061

El valor en tablas de X21.5%= 3.84; entonces no se puede rechazar la independencia de los nmeros aleatorios.

CORRIDAS ASCENDENTES Y DESCENDENTES Procedimiento 1. Generar la muestra de tamao N de nmeros aleatorios. 2. Construir la sucesin binaria de acuerdo al siguiente criterio: Si rj es menor o igual a rj+1 entonces asignarle a rj el smbolo 0. Si rj es mayor que rj+1 entonces asignarle a rj el smbolo 1. 3. Con base en la distribucin X2, efectuar la prueba, donde la frecuencia esperada de las longitudes de corrida i se calcular con:

EJEMPLO 7. Aplicar la prueba de las corridas ascendentes y descendentes a la muestra de nmeros aleatorios del ejemplo anterior. Compararemos a los nmeros por fila, pero es indistinto hacerlo por columna.
0.15 0.26 0.33 0.25 0.18 0.31 0.34 0.49 0.83 0.11 0.81 0.70 0.77 0.68 0.03 0.48 0.31 0.04 0.97 0.59 0.01 0.07 0.43 0.11 0.25 0.60 0.06 0.92 0.00 0.55

ahora la sucesin binaria es

0 0 0 0 1

0 0 0 1 1

1 0 1 0 0

1 1 0 1 1

0 1 1 1 0

1 0 1 0

obsrvese que la ltima celda se deja en blanco, pues no hay con que nmero comparar. (aqu N = 29)
Longitud de corrida i 1 2 3 4 5 FE 11.500 5.083 1.400 0.292 0.005 FO 11 5 2 (FE-FO)2/FE 0.020 0.001 0.257

i 1 >=2

FE 11.500 6.483

FO 11 7

(FE-FO)2/FE 0.020 0.004 X02 = 0.024

como el valor calculado de 0.024 es menor que el valor en tablas de Ji-cuadrada X21.5%= 3.84, no se puede rechazar la independencia de los nmeros aleatorios.

Potrebbero piacerti anche