Está en la página 1de 19

2006-2007 Lenguajes de simulacin

Nmeros aleatorios
Introduccin
Definiciones
Caractersticas de un generador
Mtodos de generacin
Pruebas de aleatoriedad
Referencias
2006-2007 Lenguajes de simulacin
La gran disponibilidad de generadores de nmeros aleatorios en muchos
entornos y en prcticamente casi todos los compiladores puede
llevarnos a pensar que para un usuario de la simulacin no sera
necesario estudiar estas cuestiones.
Una leccin del pasado reciente nos obliga a sacar conclusiones y actuar con
mucho cuidado con dichos generadores (RANDU - IBM).
El uso progresivo de modelos de simulacin cada vez ms detallados exige una
mayor calidad de los generadores de nmeros aleatorios.
Ripley indica que la generacin de nmeros aleatorios parece uno de los temas
peor comprendidos de la ciencia de computadoras.
Knuth, por su parte indica que Los nmeros aleatorios no deben ser obtenidos
con un mtodo elegido aleatoriamente
Nmeros aleatorios. Introduccin
2006-2007 Lenguajes de simulacin
Cuando se generan nmeros seudoaleatorios se pueden producir ciertos errores
o problemas, como por ejemplo:
1.- Los nmeros generados pueden no estar distribuidos uniformemente.
2.- Los nmeros generados pueden corresponder a una distribucin discreta en
lugar de a una continua.
3.- La media de los nmeros generados puede ser demasiado alta o demasiado
baja.
4.-La varianza de los nmeros generados puede ser demasiado alta o demasiado
baja.
5.- Puede existir una clara dependencia entre ellos. Por ejemplo
- Autocorrelacin entre nmeros.
- Nmeros correlativamente ms bajos o ms altos que los adyacentes.
- Varios nmeros por encima de la media seguidos de otros por debajo de
la misma.
Nmeros aleatorios. Algunas caractersticas
2006-2007 Lenguajes de simulacin
DEF 1: Kolmogorov (1987) [Complejidad Algortmica] Una sucesin de nmeros es
aleatoria si no puede producirse eficientemente de una manera ms corta que la
propia serie.
DEF 2: LEcuyer (1990) [Impredicibilidad] Una sucesin de nmeros es aleatoria si
nadie que utilice recursos computacionales razonables puede distinguir entre la
serie y una sucesin de nmeros verdaderamente aleatoria de una forma mejor
que tirando una moneda legal para decidir cul es cul.
Obs: Esta definicin conduce a los denominados generadores PT-perfectos usados en
Criptografa.
DEF 3: Un Nmero aleatorio es una realizacin de una variable aleatoria que tiene
asociada una ley de probabilidades F.
Obs: Una particular ley de Probabilidad base para la generacin de nmeros seudo-
aleatorios u
1
, u
2
,..., u
n
: es la uniforme (0 ; 1) u
i
~ U(0,1).
DEF 4: Una sucesin de nmeros aleatorios generados {u
1
, u
2
,..., u
n
} es una
sucesin de nmeros U(0;1), si tiene las mismas propiedades estadsticas
relevantes que dicha sucesin de nmeros aleatorios reales.
Nmeros aleatorios. Definiciones (I)
2006-2007 Lenguajes de simulacin
DEF 5: Una sucesin de nmeros aleatorios {u
i
} es aleatorio si h-tuplas de nmeros
sucesivos no superpuestos se distribuyen aproximadamente como una [0,1]
h
,
con h=1,2,..,n, para n suficientemente grande.
Obs: h=2 tenemos (u
i
,u
i+1
) , i=1,2,..n , se distribuye como una ley uniforme en [0,1]
2.
Existe una gran nmero de mtodos para generar
{u
i
} U(0,1) : -Uniformente distribuidos
- Independientes
- E[U]= ; V[U]= 1/12
- Perodo largo
Nmeros aleatorios. Definiciones (II)
2006-2007 Lenguajes de simulacin
Aunque existe un gran nmero de mtodos posibles para la generacin de
nmeros aleatorios en una computadora, hay tambin unas ciertas
consideraciones importantes para la eleccin de un mtodo u otro.
La rutina debe ser rpida.
La rutina debe ser transportable entre diferentes ordenadores e, idealmente,
a diferentes lenguajes de programacin.
La rutina debe tener un ciclo suficientemente largo. Un ciclo representa la
longitud de una secuencia antes que comiencen a repetirse los nmeros en
el orden anterior. La ocurrencia de repeticiones en los nmeros obtenidos
puede propiciar la no aceptacin del generador.
Las secuencias de nmeros aleatorios deben ser replicables. Partiendo del
mismo nmero se debe poder obtener la misma secuencia
Los nmeros obtenidos deben aproximarse a las propiedades estadsticas
ideales de uniformidad e independencia.
Consideraciones para la eleccin de generadores
2006-2007 Lenguajes de simulacin
Existen varios mtodos para la generacin de nmeros aleatorios
como:
- Mtodo de los cuadrados medios
- Mtodos de Congruencias
- Mtodos de Tausworthe
Todo proceso de generacin consta de tres fases:
[Semilla - Algoritmo - Validacin]
P
1
: Obtener semilla (valores iniciales)
P
2
: Aplicacin de algn algoritmo de generacin recursivo
P
3
: Validacin del conjunto de nmeros generados (Pruebas
de Aleatoriedad)
Mtodos de generacin
2006-2007 Lenguajes de simulacin
Consiste en que cada nmero de una sucesin es producido tomando los
dgitos medios de un nmero obtenido mediante la elevacin al cuadrado.
P
1
: Obtener semilla (por ejemplo 445)
P
2
: Aplicacin del algoritmo (elevar al cuadrado y truncar)
P
3
: Validacin del conjunto de los nmeros generados
Ejemplo: Consideremos la semilla 445
X X
2
N Aleatorio
445 1| 9802 | 5 0,9802
9802 96| 0792 | 04 0,0792
792 6 | 2726 | 4 0,2726
2726 ............... ...............
Mtodos de los cuadrados medios
2006-2007 Lenguajes de simulacin
Generadores de congruencias lineales.
La mayora de los generadores que se utilizan actualmente son
generadores de congruencias lineales. Este tipo de generadores producen
una secuencia de enteros entre 0 y m-1 de acuerdo con:
Z
n
=(a Z
n-1
+c) mod m
donde a es el multiplicador, c es el incremento o desplazamiento y m el
mdulo.
Se debe cumplir que m>0, a<m, c<m y Z
0
<m, siendo todos ellos enteros.
Para obtener el nmero aleatorio se utiliza: U
n
=Z
n
/m
La eleccin de los valores de a,c y m son determinantes para la longitud de
la secuencia y la calidad del generador.
Cuando c>0 los generadores se llaman mixtos y cuando c=0 se llaman
multiplicativos.
Z
i
=aZ
i-1
-mK
i
donde K
i
= aZ
i-1
/m
donde Z
0
es la semilla.
2006-2007 Lenguajes de simulacin
Su forma general es: Z
i
=(aZ
i-1
+c) mod m
Por induccin matemtica se puede ver que para i = 1,2,..
Teorema
1
: Un generador de congruencias lineales mixto tiene periodo total
si y solo si se cumplen las condiciones siguientes:
El nico entero positivo que divide exactamente a m y a c es 1 (m y c
son primos entre si).
Si q es un nmero primo que divide a m, entonces q divide a (a-1).
Si 4 divide a m, entonces 4 divide a (a-1).
(1) Planteado por HULL, T. E.; DOBELL, A. R. Random number generators. SIAM Rev. 4
(1962).
Generadores de congruencias lineales mixtos
m
a
a c
Z a Z
i
i
i
mod
1
) 1 (
0

+ =
2006-2007 Lenguajes de simulacin
Generadores de congruencias lineales. Ejemplo (I)
La frmula general es: X
i +1
= ( a X
i
+ c) mod m, i =0, 1, 2, 3
Ejemplo: sea m= 10
2
= 100, a = 19, c = 0 y X
0
= 63
la secuencia obtenida de acuerdo con dicha frmula es:
X
0
= 63
X
1
= ( 19) ( 63) mod 100 = 1197 mod 100 = 97
X
2
= ( 19) ( 97) mod 100 = 1843 mod 100 = 43
X
3
= ( 19) ( 43) mod 100 = 817 mod 100 = 17
X
4
= ( 19) ( 17) mod 100 = 323 mod 100 = 23
. . .
Cuando mes una potencia de 10, como 10
b
, la operacin mdulo se realiza
guardando los b dgitos decimales de la derecha, por lo que este tipo de
operacin ser muy eficiente en las computadoras.
2006-2007 Lenguajes de simulacin
Generadores de congruencias lineales. Ejemplo (II)
Sea la secuencia: X
i +1
= a X
i
mod 11, par a i = >1; Z
0
= 1
i/a 1 2 3 4 5 6 7 8 9 10
0 1 1 1 1 1 1 1 1 1 1
1 1 2 3 4 5 6 7 8 9 10
2 4 9 5 3 3 5 9 4 1
3 8 5 9 4 7 2 6 3
4 5 4 3 9 9 3 4 5
5 10 1 1 1 10 10 10 1
6 9 5 4 3
7 7 8 6 2
8 3 4 9 5
9 6 2 8 7
Las races primitivas son 2, 6, 7 y 8.
Los nmeros generado por 2 y 6 son iguales pero en sentido contrario. Lo
mismo ocurre con los generados por 7 y 8. Este tipo de relaciones se
producen generalmente en generadores multiplicativos.
2006-2007 Lenguajes de simulacin
Generadores de congruencias lineales. Ejemplo (III)
La frmula general es: X
i +1
= ( a X
i
+ c) mod m
Ejemplo: sea m= 2
6
= 64, a = 13, c = 0 y X
0
= 1, 2, 3 y 4
Para una potencia de 2, m= 2
l
y c = 0 el periodo posible ms grande es P =
m/ 4 =2
l - 2
que se consigue en el caso en que la semilla es impar y el
multiplicador a est dado por 3 + 8k donde k es un entero.
i Xi Xi' Xi'' Xi'''
0 1 2 3 4
1 13 26 39 52
2 41 18 59 36
3 21 42 63 20
4 17 34 51 4
5 29 58 23
6 57 50 43
7 37 10 47
8 33 2 35
9 45 7
10 9 27
11 53 31
12 49 19
13 61 55
14 25 11
15 5 15
16 1 3
2006-2007 Lenguajes de simulacin
Parmetros
a b m xo
6 0 13 1
7 0 13 10
5 0 13 5
7 0 11 5
6 0 11 3
Caso Salidas
1 6 10 8 9 2 12 7 3 5 4 11 1 6 10
2 5 9 11 12 6 3 8 4 2 1 7 10 5 9
3 12 8 1 5 12 8 1 5 12 8 1 5 12 8
4 2 3 10 4 6 9 8 1 7 5 2 3 10 4
5 7 9 10 5 8 4 2 1 6 3 7 9 10 5
5
Caso
1
2
3
4
Generadores de congruencias lineales. Ejemplo (IV)
2006-2007 Lenguajes de simulacin
Un algoritmo de muy fcil implementacin de generadores de congruencias
es m = 2
31
-1
a = 7
5
(raz primitiva de m)
X
n
= 7
5
X
n-1
mod (2
31
-1)
u
n
=
Dicho generador se encuentra en las bibliotecas IMSL y NAG
La rutina RANDU, que IBM proporcionaba para sus equipos consideraba
un modelo congruencial multiplicativo con m = 2
31
; a = 65539 ; b = 0
X
n
= 65539 X
n-1
mod (2
31
) = (2
16
+3) Xn-1 mod (2
31
)
u
n
= X
n
/m
Este generador proporciona tripletas consecutivas de nmeros que caen en 15
planos! Lo que sugiere cierta que los resultados a obtener son previsibles (Mal
Generador). En realidad existe una fuerte correlacin entre tres sucesivos nmeros
X
k
= 6 X
k-1
9 X
k-2
para todo k.
Generadores de congruencias lineales. Ejemplos (V)
2006-2007 Lenguajes de simulacin
Algunas observaciones de las salidas de los generadores de
congruencias:
i) Los generadores de congruencias tienen ciclos
iI) La longitud del ciclo depende de la seleccin de los parmetros
iii) Dentro de selecciones de parmetros que conducen a la misma
longitud, algunas salidas parecen ms aleatorias que otras.
iv) La representacin de pares (X
i
, X
i+1
) sugiere que stos se disponen
en un nmero finito de hiperplanos.
Generadores de congruencias lineales. Propiedades
2006-2007 Lenguajes de simulacin
Un generador que tiene el periodo mximo posible se dice que es de
periodo total.
X
n
= [(2
34
+1)X
n-1
+1] mod 2
35
X
n
= [(2
18
+1)X
n-1
+1] mod 2
35
No obstante, el periodo no debe ser el nico criterio de decisin a la hora
de elegir un generador. Una de las cuestiones de ms importancia en este
aspecto es el de la autocorrelacin ms baja entre nmero sucesivos.
Ambos generadores tienen el mismo periodo total pero el primero tiene una
correlacin de 0,25 entre X
n
y X
n-1
, mientras el segundo tiene una
correlacin despreciable menor que 2
-18
.
Consideraciones respecto a la eleccin
2006-2007 Lenguajes de simulacin
En este caso se deben proporcionar los primeros q bits, lo que es anlogo
a la semilla de los generadores de congruencias lineales.
Este tipo de generador depende del largo de la palabra
Ejemplo: r = 3 q = 5 con b
1
= b
2
= b
3
= b
4
= b
5
= 1
para i 6 b
i
= (b
i-3
+ b
i-5
) mdulo 2
b
6
= (b
3
+ b
1
) mod 2 = 2 mod 2 = 0
b
7
= (b
4
+ b
2
) mod 2 = 2 mod 2 = 0
b
8
= (b
5
+ b
3
) mod 2 = 2 mod 2 = 0
b
9
= (b
6
+ b
4
) mod 2 = 1 mod 2 = 1
b
10
= (b
7
+ b
5
) mod 2 = 1 mod 2 = 1
...
b
42
= (b
39
+ b
37
) mod 2 = 2 mod 2 = 0
Se puede repetir la secuencia pero dependiendo de la eleccin de la
longitud no coincidir en dicha repeticin.
Generadores de Tausworthe
2006-2007 Lenguajes de simulacin
Cmo se transforma la sucesin {b
i
} en nmeros aleatorios U(0,1)?.
Consideremos {b
i
}
b
1
b
2
b
3
b
4
b
5
b
6
b
7
b
8
b
9
b
10
b
11
b
12
b
13
......... b
41
b
42
1 1 1 1 1 0 0 0 1 1 0 1 1 ......... 1 0
1111 1000 1101 1101 0100 0010 01 01 1001 1111 0001 .
Se elige l = 4
y
1
= b
1
2
3
+ b
2
2
2
+ b
3
2
1
+ b
4
2
0
= 8 + 4 + 2 + 1 = 15
y
2
= b
5
2
3
+ b
6
2
2
+ b
7
2
1
+ b
8
2
0
= 8 + 0 + 0 + 0 = 8
y
3
= b
9
2
3
+ b
10
2
2
+ b
11
2
1
+ b
12
2
0
= 8 + 4 + 0 + 1 = 13
y
4
= b
13
2
3
+ b
14
2
2
+ b
15
2
1
+ b
16
2
0
= 8 + 4 + 0 + 1 = 13
.... y as sucesivamente
El periodo de los bits es 31 (2
q
1), pero no es el periodo de la secuencia de nmeros.
{ }

=
=
,...
16
1
,
16
9
,
16
5
,
16
2
,
16
4
,
16
13
,
16
13
,
16
8
,
16
15
10
1 i i
u
16
15
2
1
1
= =
l
y
u
16
8
2
2
2
= =
l
y
u
16
13
2
3
3
= =
l
y
u
Generadores de Tausworthe
Comienza la repeticin
2006-2007 Lenguajes de simulacin
Generadores de Tausworthe
Ventajas:
Son independientes del ordenador y del tamao de la palabra que utilice.
Se pueden obtener secuencias de longitud considerable, como 2
251
-1 > 10
156
e
incluso mayores en micros de 16 bits.
Inconvenientes:
La secuencia obtenida puede tener buenos resultados en las pruebas sobre el
ciclo completo, pero pueden tener un comportamiento local poco satisfactorio.
En general proporcionan malos resultados en las pruebas de rachas hacia
arriba y hacia abajo.
Aunque la correlacin de primer orden (un nmero con el siguiente) es casi
cero se sospecha que algunos generadores pueden proporcionar valores
elevados de correlaciones de orden elevado.
No todos los polinomios primitivos tiene las mismas cualidades.
Las primeras versiones de GPSS/H utilizaban un generador de Tausworthe.
2006-2007 Lenguajes de simulacin
Muchos autores se han planteado cmo eliminar los problemas de los
generadores de congruencias lineales, algunas soluciones son:
Combinaciones de varios generadores, ya sean de congruencias o no.
Utilizar otros mtodos diferentes de los aportados hasta ahora.
Entre estos ltimos se pueden plantear generadores de congruencias
cuadrticas en los que se supone que se utiliza una funcin cuadrtica en
lugar de una lineal. Por ejemplo, la recurrencia:
x
n
=(ax
2
n-1
+ bx
n-1
+ c) mod m
Donde a, b, c y x
n
Z
m
(conjunto de enteros mdulo m)
Si m es una potencia de 2, este generador tiene periodo total si y solo si:
a es par
(b-a) mod 4 = 1
c es impar
A pesar de todo presenta algunos sntomas parecidos a los de los generadores de
congruencias lineales.
Otros generadores
2006-2007 Lenguajes de simulacin
Seleccin de la semilla
En casi todos los generadores es necesario disponer de una semilla. Se supone
que la seleccin de la misma no debe afectar a los resultados de la
simulacin.
Dependiendo de las caractersticas del generador (si es de periodo total o no) se
han establecido una serie de normas a la hora de seleccionar la semilla.
No utilizar el cero.
Prohibir los valores pares.
No subdividir una serie.
Utilizar series no solapadas (cada serie precisa una semilla separada).
Reutilizar las semillas para sucesivas rplicas de la misma simulacin.
No utilizar semillas aleatorias. Producen problemas como:
la simulacin no se puede reproducir
no es posible garantizar que seres vivos no se solapen
2006-2007 Lenguajes de simulacin
Pruebas de aleatoriedad
Para comprobar si los nmero aleatorios obtenidos cumplen las propiedades
deseadas de uniformidad e independencia se deben realizar una serie de
pruebas. En general, los generadores suministrados comercialmente ya han
pasado por algunas de estas pruebas.
Prueba de frecuencia.
Pruebas de series.
Prueba de autocorrelacin.
Prueba de saltos.
Prueba de poker.
Cuando se prueba la uniformidad las hiptesis son:
H
0
: R
i
U[0,1]
H
1
: R
i
U[0,1]
La hiptesis nula supone que la secuencia de nmeros obtenidos est
distribuida uniformemente en el intervalo [0,1].
2006-2007 Lenguajes de simulacin
Pruebas de frecuencia
La prueba bsica a la que se debiera someter cualquier nuevo generador de nmeros
aleatorios es la de uniformidad. Existen dos mtodos para realizar esta prueba:
Prueba de Kolmogorv-Smirnov.
Prueba de chi-cuadrado.
Kolmogorov-Smirnov compara la funcin de distribucin acumulada F( x) de la
distribucin uniforme con la emprica, S
N
( x) , de la muestra de N observaciones. Por
definicin: F( x) = x para 0 x 1
Para una muestra de R
1
, R
2
, ...,R
N
la funcin de distribucin acumulada, S
N
( x) , est
definida por: S
N
( x) = ( nmer o de R
1
, R
2
, ...,R
N
que son 1) / N
D = max | F( x) - S
N
( x) |
Forma de obtenerlo:
Se ordenan los datos de menor a mayor R
( 1)
R
( 2)
... R
( N)
Se calcula: D
+
= max
1 i N
{i / N - R
( N)
}
D
-
= max
1 i N
{R
( N)
- ( i - 1) / N }
Se obtiene D = max( D
+
, D
-
)
Se compara con el valor de la tabla para un dado.
2006-2007 Lenguajes de simulacin
Prueba de Kolmogorov-Smirnov
Ejemplo de prueba de Kolmogorov-Smirnov:
Sean 5 nmeros 0,44, 0,81, 0,14, 0,05, 0,93 generados por algn mtodo.
D
+
= max
1 i N
{i / N - R
( N)
} = 0, 26
D
-
= max
1 i N
{R
( N)
- ( i - 1) / N }= 0, 21
Por tanto D = 0, 26. Para = 0, 05 y N = 5 el valor de la tabla es 0, 565 por
tanto no se puede rechazar la hiptesis nula.
R(i) 0,05 0,14 0,44 0,81 0,93
I/N 0,20 0,40 0,60 0,80 1,00
I/N - R(i) 0,15 0,26 0,16 - 0,07
R(i) - (i-1)/N 0,05 - 0,04 0,21 0,13
2006-2007 Lenguajes de simulacin
Prueba de Chi-cuadrado (I)
Sean X
1
, X
2
,X
n
n observaciones.
Se define la hiptesis nula como
H
0
: La X
i
s son variables aleatorias idnticamente distribuidas con una
funcin de distribucin F.
Se divide el rango de F en k intervalos adyacentes [a
0
,a
1
),[a
1
,a
2
),.,[a
k-1
,a
k
)
Sea N
j
= nmero de X
i
s en [a
j-1
,a
j
) y sea p
j
la probabilidad de que un resultado est
en [a
j-1
,a
j
) (es decir, p
j
= F(a
j
)-F(a
j-1
))
Se construye el test estadstico como
Si H
0
es verdadera, np
j
es el nmero esperado de n X
i
s que caen en el intervalo j-
simo.
Una forma ms simple de la expresin es:
donde O
j
es el nmero observado en el intervalo j y E
j
es el nmero esperado.

=
k
j
j
j j
np
np N
1
2
2
) (

=
k
j
j
j j
E
E O
1
2
2
) (

2006-2007 Lenguajes de simulacin


Si H
0
es verdadera, entonces la distribucin converge a una distribucin de chi-
cuadrado con k-1 grados de libertad cuando n .
Por tanto, se rechaza H
0
si donde es el cuantil 1- de la
distribucin de chi-cuadrado con k-1 grados de libertad.
Prueba de chi-cuadrado para variables aleatorias U(0,1):
Se divide (0,1) en k subintervalos de igual longitud y se generan U
1
, U
2
,..,U
n
.
Sea N
j
el nmero de variables aleatorias U
i
en le intervalo j-simo. Entonces:
Se recomienda elegir k100 y n/k 5.
Ejemplo: Sea el generador de congruencias multiplicativo Z
n
=AZ
n-1
mod M
con A=630360016, M=2
31
-1 y semilla Z
0
=1973272912.
Si se generan n=2
15
=32768 nmeros aleatorios (U
i
), y se divide (0,1) en k=2
12
=4096
subintervalos, entonces como
No se rechaza la hiptesis H
0
al nivel =0.1.
2
1 , 1
2



>
k
2
1 , 1

=
k
j
j
k
n
N
n
k
1
2
2

Prueba de Chi-cuadrado (II)


4141
2
= 4 . 4211
2
9 . 0 , 4095
=
2006-2007 Lenguajes de simulacin
042 , 7
) (
10
1
2
2
=

= j
j
j j
E
E O
92 , 16
2
9 , 05 . 0
=
No se puede rechazar la hiptesis nula
Prueba de Chi-cuadrado (Ejemplo)
2006-2007 Lenguajes de simulacin
La experiencia obtenida despus de bastantes aos de utilizacin de pruebas de
aleatoriedad permiten plantear las siguientes afirmaciones:
Los generadores con un periodo de menos de 2
32
no se deben utilizar en los
paquetes de software general. Casi todos los generadores de congruencias lineales
de ese tamao fallan en varias pruebas con una muestra mucho ms pequea que
el periodo.
Los GCL con mdulos potencia de 2 son ms fciles de fallar que los de mdulos
primos, en especial si nos fijamos en los bits de orden bajo.
Algunos generadores de tipo Tausworthe o los basados en Fibonacci, con una
estructura simple y dimensin grande, tambin fallan en varias pruebas.
Los generadores combinados con periodos largos y propiedades estructurales
adecuadas obtienen buenos resultados en las pruebas.
Aquellos generadores con buenas estructuras de red o con buena equi-distribucin
cuando se utiliza un subconjunto de la secuencia se comportan mejor en las
pruebas. Como norma general los generadores basados en recurrencias ms
complicadas (por ejemplo, combinaciones de ellos) y propiedades tericas buenas
se comportan mejor.
Resumen de las pruebas empricas
2006-2007 Lenguajes de simulacin
Pruebas de secuencias (I)
Una secuencia (o serie) es un conjunto de eventos semejantes, precedidos o
seguidos por otro de distinto tipo. En el caso de nmeros aleatorios puede ser
que el nmero sea superior o inferior al anterior. Ejemplo:
Sean los 15 nmeros siguientes:
-
0,87
+
0,15
+
0,23
+
0,45
-
0,69
-
0,32
-
0,30
+
0,19
-
0,24
+
0,18
+
0,65
+
0,82
-
0,93
+
0,22 0,81
La secuencia de 14 + o - es:
- + + + - - - + - + + + - +
Hay 8 secuencias de + o - seguidos, cada una puede ser de una longitud
cualquiera. Si N es el nmero de nmeros aleatorios (en este caso 15) y a es
el nmero total de secuencias, la media y la varianza de a vienen dadas por:

a
= (2N - 1) / 3

a
2
= (16N - 29) / 90
Para N > 20 la distribucin de a se aproxima razonablemente a una distribucin
normal, N(
a
,
a
2
). El valor estadstico a comprobar es:
Z
0
= (a -
a
)/
a
= (a [(2N - 1) / 3])/ SQR((16N - 29) / 90)
2006-2007 Lenguajes de simulacin
Sea la siguiente secuencia de 20 nmeros aleatorios
0.43 0.28 0.33 0.27 0.12
0.31 0.42 0.01 0.32 0.45
0.98 0.79 0.99 0.55 0.67
0.74 0.16 0.20 0.12 0.58
- + - - + + - + + + - + - + + - + - +
a=14
a
= 13
a
=3,23 Z = (14 -13) / 3,23
Z = 0.55 comparado con el valor crtico N ( 13 ;3.23)
El supuesto de independencia no puede ser rechazado
Pruebas de secuencias (II)
2006-2007 Lenguajes de simulacin
Sea la siguiente secuencia de 40 nmeros aleatorios
0.41 0.68 0.89 0.94 0.74 0.91 0.55 0,62 0.36 0,27
0.19 0.72 0.75 0.08 0.54 0.02 0,01 0.36 0,16 0.28
0.18 0.01 0.95 0.69 0.18 0.47 0.23 0,32 0.82 0,53
0.31 0.42 0.73 0.04 0.83 0.45 0.13 0,57 0.63 0,29
Aplicando la prueba de rachas por encima y por debajo de la media se
obtiene:
- + + + + + + + - - - + + - + - - - - -
- - + + - - - - + + - - + - + - - + + -
Los valores que se obtienen son:
n
1
= 18 n
2
= 22 N = n
1
+ n
2
= 40 b = 17
2
1 2
2 1
+ =
N
n n
b

( )
( ) 1
2 2
2
2 1 2 1 2


=
N N
N n n n n
b

( )
( )
2
1
2
2 1 2 1
2 1
0
1
2 2
2
1
2

=
N N
N n n n n
N
n n
b
Z
3 , 20
2
1
40
) 22 )( 18 ( 2
= + =
b

( )
( )
54 , 9
1 40 ) 40 (
40 ) 22 )( 18 ( 2 ) 22 )( 18 ( 2
2
2
=


=
b
07 , 1
54 , 9
3 , 20 17
0
=

= Z
96 , 1
025 , 0
= Z
Pruebas de secuencias (III)
2006-2007 Lenguajes de simulacin
Sea la siguiente secuencia de 30 nmeros aleatorios
0.12 0.01 0.23 0.28 0.89 0.31 0.64 0,28 0.83 0,93
0.99 0.15 0.33 0.35 0.91 0.41 0,60 0.27 0,75 0.88
0.68 0.49 0.05 0.43 0.95 0.58 0.19 0,36 0.69 0,87
Con una inspeccin visual los nmeros pueden parecer aleatorios y
probablemente puedan pasar las pruebas indicadas hasta ahora. Pero si se
examinan los nmeros 5,10,(cada 5 nmeros) se observa que el nmero
correspondiente es muy grande, dentro del rango considerado.
La prueba trata de ver si existe correlacin entre pares de nmeros con un
retardo de m. Por tanto, nos interesa la auto correlacin
im
entre R
i
, R
i+m
,
R
i+2m
,, R
i+(M+1)m
, siendo M el entero ms grande tal que i+(M+1)m N siendo N
el nmero total de nmeros en la secuencia.
La prueba a realizar es: que se supone se ajusta a una
distribucin normal de media 0 y varianza 1, suponiendo que existe
independencia para valores de M grandes.
im
im
Z

0

=
Pruebas de autocorrelacin (I)
2006-2007 Lenguajes de simulacin
Pruebas de autocorrelacin (II)
25 , 0
1
1

0
) 1 (

+
=

=
+ + +
M
k
m k i km i im
R R
M

im

im


Las frmulas para y la desviacin estndar de dicho estimador
estn dadas por:
y
) 1 ( 12
7 13

+
+
=
M
M
im

Con ambos valores se calcula Z


0
. La hiptesis nula de independencia no se rechaza si
z
/2
Z
0
z
/2
donde z
/2
se obtiene de las tablas correspondientes.
En el caso anterior si se toma i=3, m=5 con N=30 y M=4 (3+(M+1)5 30) se obtiene para
el estimador de la autocorrelacin:
[ ] 1945 , 0 25 , 0 36 , 0 * 05 , 0 05 , 0 * 27 , 0 27 , 0 * 33 , 0 33 , 0 * 28 , 0 28 , 0 * 23 , 0
1 4
1

35
= + + + +
+
=
1280 , 0
) 1 4 ( 12
7 4 * 13
35

=
+
+
=

516 , 1
1280 , 0
1945 , 0
0
= = Z
z
0,025
=1,96
No se puede rechazar la hiptesis de independencia
2006-2007 Lenguajes de simulacin
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
dat os=uni f r nd( 0, 1, 1000, 2)
x=dat os( 1: 1000, 1)
y=dat os( 1: 1000, 2)
pl ot ( x, y, ' . ' )
Representacin grfica de una matriz de 1.000x1.000 de nmeros aleatorios generados por Matlab
Ejemplo 1. Matlab
2006-2007 Lenguajes de simulacin
Representacin grfica de una matriz de 10.000x10.000 de nmeros aleatorios generados por Matlab
Ejemplo 2. Matlab
x=unifrnd(0,1,10000,1)
y=unifrnd(0,1,10000,1)
plot(x,y,'.')
2006-2007 Lenguajes de simulacin
Libros:
Banks, Carson, Nelson, Nicol. Discrete event system simulation (third edition).
El captulo 7 trata sobre generacin de nmeros aleatorios.
http://www.bcnn.net
Law and Kelton. Simulation Modeling and Analysis (third edition). El captulo 7
est dedicado al tema. http://www.mhhe.com/lawkelton
Direcciones:
http://random.mat.sbg.ac.at/generators/
http://random.mat.sbg.ac.at/tests/
http://csrc.nist.gov/rng/rng6_4.html Documentacin y distintos tipos de pruebas
para nmeros aleatorios.
http://www.iro.umontreal.ca/~lecuyer/ Pgina personal de Pierre LEcuyer
http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html Pgina del
algoritmo Mersene Twister de Matsumoto
http://en.wikipedia.org/wiki/Pseudo-random_number_generator
Referencias

También podría gustarte