You are on page 1of 28

3 GENERACIN DE NUMEROS ALEATORIOS

1 Introduccin

En muchos de los experimentos de muestreo y en los de experimentos de simulacin se requiere disponer de


una fuente de nmeros aleatorios o de un mtodo para generarlos a medida que se los vaya necesitando.
Los nmeros aleatorios son indispensables para representar todas las variaciones aleatorias del sistema, es
decir, el comportamiento de las variables incontrolables, y son la base para realizar cualquier simulacin.

Un numero aleatorio es una variable aleatoria que sigue la distribucin uniforme en el intervalo (0,1).

Una variable aleatoria X tiene una distribucin uniforme en el intervalo (a,b) si su funcin de densidad esta
dada por:

1
a xb
f(x) = b a a<x<b
0 enotroscasos

La funcin de distribucin F(x), que representa la probabilidad de que la variable aleatoria X sea menor o igual
que un valor especifico x, est definida como:

xa
0
x a
axb
F(x) = P(X x) = =
b a xb
1

f(x) F(x)

1.0

a b a b

El valor esperado y la varianza de una distribucin uniforme son los siguientes:

b ab
E(X) xf (x)dx
a 2

Var (X) abx E(X) 2f ( x )dx


ba 2

12
As, un nmero aleatorio R tiene una funcin de densidad dada por:

f(r) = 1 0r<1

La funcin de distribucin est dada por:

F(r) = p(R r) = r 0r<1


B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-2

El valor esperado y la varianza estn dados por:

E(R) = 1/2
Var(R) = 1/12

La variable aleatoria R es continua y los valores generados deben ser estadsticamente independientes.

Es posible que en algn procedimiento de generacin de nmeros aleatorios la variable R est designando un
nmero finito de valores -N-, equiprobables y estadsticamente independientes. En este caso R es discreta y
su funcin de probabilidad y de distribucin estn dadas por:

f(r) = 1/N 0r<1


F(r) = r/N 0r<1

Para los experimentos de simulacin generalmente se requiere de secuencias grandes de nmeros aleatorios,
no solamente unos pocos. Los nmeros aleatorios generados en esta secuencia deben ser independientes.
Estamos interesados en determinar mtodos para generar estos nmeros. Estos mtodos deben cumplir
ciertas condiciones para que sean eficientes y para que las secuencias generadas sean en realidad aleatorias.
Estos mtodos los denominaremos Generadores de Nmeros Aleatorios o simplemente Generadores.

Las propiedades que debe tener un generador de nmeros aleatorios son las siguientes:

1) Los nmeros generados deben estar distribuidos uniformemente entre cero y uno.
2) Los nmeros generados deben ser estadsticamente independientes.
3) Las secuencias generadas deben ser reproducibles de tal forma que los diferentes experimentos de
simulacin se puedan repetir bajo las mismas condiciones.
4) El mtodo debe poseer un perodo largo. El perodo de un generador de nmeros aleatorios indica la
cantidad de nmeros aleatorios que se pueden generar en una secuencia antes de que estos comiencen
a repetirse. El perodo est asociado con la reproducibilidad. Si las secuencias no son reproducibles,
entonces no puede hablarse de perodo. El perodo debe ser lo suficientemente largo de tal forma que en
un mismo experimento de simulacin no se repita la secuencia de nmeros aleatorios.
5) Eficiencia. El mtodo debe requerir el mnimo tiempo para generar un nmero aleatorio, es decir, debe
generar nmeros a grandes velocidades.
6) El mtodo debe requerir una mnima capacidad de almacenamiento.
7) Portabilidad. El mtodo debe ser tal que se pueda transportar de una mquina a otra, sin ninguna
complicacin.

Las dos primeras condiciones estn asociadas con las condiciones bsicas de un generador de nmeros
aleatorios: Uniformidad e independencia. Si un mtodo cumple estas dos condiciones, se lo puede considerar
como un generador de nmeros aleatorios. Las condiciones tercera y cuarta son bsicas para poder comparar
diferentes alternativas en una simulacin, de tal forma que las diferencias en los resultados de una simulacin
se puedan explicar por las diferencias entre las alternativas, y no por las variaciones aleatorias. Las
condiciones 5a y 6a son esenciales si queremos reducir el tiempo ( y el costo) de los estudios de simulacin.
En algunos estudios de simulacin se requieren miles y a veces millones de nmeros aleatorios, y debemos
garantizar que la mayor parte del tiempo de la simulacin no se utilice en la generacin de los nmeros sino
en los otros procesos del sistema.

En general, un generador de nmeros aleatorios debe ser un programa corto y rpido que produzca una
secuencia larga de nmeros antes de que empiece de nuevo el ciclo.

Para disear un buen generador de nmeros aleatorios se deben seguir dos pasos o etapas: a) el primer
paso consiste en definir el mtodo a usar para generar los nmeros, y b) el segundo consiste en definir el
conjunto o batera de pruebas estadsticas a que se debe someter el generador para garantizar las
propiedades estadsticas de los nmeros generados.

2 Mtodos para generar nmeros aleatorios


B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-3

Para generar nmeros aleatorios se pueden usar diferentes procedimientos, siempre y cuando garanticen que
se cumplen las condiciones bsicas de uniformidad e independencia. La exigencia de las dems condiciones
depende del uso que se le vaya a dar al generador. A continuacin se har un recuento de los diferentes
mtodos empleados, pero se har nfasis en los utilizados actualmente.

2.1 Mtodos Manuales

Son los mtodos ms simples y despaciosos. Incluye el lanzamiento de monedas, dados, cartas y ruletas. Los
nmeros producidos por estos mtodos cumplen las condiciones estadsticas bsicas, pero es imposible
reproducir una secuencia generada por estos mtodos.

2.2 Tablas de Nmeros Aleatorios

Estos nmeros fueron generados por otros mtodos y sometidos a diferentes pruebas estadsticas de
uniformidad e independencia. La ventaja del mtodo consiste en que las secuencias siempre son
reproducibles y son muy apropiados para simulaciones de tipo manual. Sin embargo tiene la desventaja de no
realizarse con rapidez. Adems, para simulaciones por computador requerira mucho almacenamiento, fuera
de que el proceso de lectura de los datos es muy despacioso. Una de las tabla mas conocida es la de la Rand
Corporation Un Milln de Nmeros Aleatorios, que fue generada mediante el computador anlogo. Para usar
una tabla de nmeros aleatorios, se debe definir un punto inicial de partida, y la direccin en que se van a
seleccionar los nmeros. Estos deben escogerse siguiendo el orden determinado de antemano.

2.3 Mediante el computador anlogo.

Estos mtodos dependen de ciertos procesos fsicos aleatorios en el computador, por ejemplo, el
comportamiento de una corriente elctrica. Se considera que estos mtodos producen verdaderos nmeros
aleatorios y son mucho ms rpidos que los manuales o las tablas, pero las sucesiones de nmeros no son
reproducibles. Los nmeros aleatorios de la Rand Corporation fueron generados mediante este mtodo. Los
nmeros deben someterse a un conjunto de pruebas estadsticas para verificar uniformidad e independencia.

2.4 Mediante el computador digital

En esta seccin analizaremos el proceso de generacin de nmeros aleatorios mediante programas de


computador, bien sea a travs de lenguajes de compilacin de uso general, o de simulacin, hojas de clculo
o mediante calculadoras cientficas. Estos nmeros se generan mediante una relacin de recurrencia

Esta alternativa comprende la generacin de nmeros seudoaleatorios por medio de una transformacin
aplicada a un grupo de nmeros elegidos de una manera arbitraria. Se habla de nmeros seudoaleatorios ya
que, estrictamente hablando, estos nmeros no son aleatorios, pero se comportan como si lo fueran. Estos
nmeros son generados por mtodos completamente determinsticos y no presentan el problema de lectura ni
de la capacidad de almacenamiento. La principal objecin a estos mtodos radica en aspectos un tanto
filosficos respecto a que una sucesin de nmeros producidos por mtodos completamente determinsticos
resulta ser la anttesis directa de una secuencia aleatoria. Sin embargo, esta objecin puede superarse si se
someten los generadores a un conjunto de pruebas estadsticas para verificar la uniformidad e independencia
de las series producidas por estos mtodos.

Generalmente mediante estos mtodos se generan inicialmente nmeros enteros y luego se normalizan en el
rango cero uno mediante la transformacin apropiada, dividiendo por un valor tal que a serie resultante quede
entre cero y uno.

En texto hablaremos en forma genrica de nmeros aleatorios, bien sea que nos estemos refiriendo a
nmeros aleatorios estrictamente hablando o a nmeros seudoaleatorios.

A nivel meramente ilustrativo mencionaremos los primeros mtodos usados para generar nmeros
seudoaleatorios, como son los mtodos de las cuadrados y los productos centrales, y luego enfatizaremos en
los mtodos usados actualmente, basados en las relacioes de congruencia.

2.4.1 Mtodo de los cuadrados centrales


B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-4

Este es uno de los primeros mtodos empleados para generar nmeros aleatorios mediante el computador
(Von Neumann). Cada nmero de la secuencia se obtiene tomando las k cifras centrales del cuadrado del
nmero anterior. Si es necesario puede agregarse un cero (0) al principio o al final del cuadrado del nmero,
de tal forma que el nmero generado siempre tenga k dgitos. Para generar el nmero aleatorio R entre cero y
uno, se divide el nmero de k cifras por la mxima cantidad de nmeros de k cifras que pueda generarse (M).
Es decir,

Xn = K cifras centrales de X 2 2 0 Xn < M


n - 1= D C ( Xn - 1)
Rn = Xn / M 0r<1
k
donde M = 10

Por lo tanto, para aplicar este mtodo se deben definir dos parmetros: El nmero de dgitos k y el primer
nmero de K cifras, X0 , denominado la semilla.

Suponga que se desea generar nmeros de tres cifras, es decir, que podran generarse tericamente hasta
1000 nmeros diferentes (000, 001, 002, 998, 999). Adems, es necesario especificar el nmero inicial o
semilla. Sea este 721. Por lo tanto:
3
X0 = 721, M = 10 = 1000
R1 = 198/1000 = 0.198
2
X1 = D C (721 ) = DC (519841) = DC (0519841) = 198
R2 = 920/1000 = 0.920
2
X2 = D C (198 ) = DC (39204) = 920
R3 = 464/1000 = 0.464
2
X3 = D C (920 ) = DC (846400) = 464
R4 = 152/1000 = 0.198
2
X4 = D C (464 ) = DC (215296) = DC (0215296) = 152

Este mtodo tiene tendencia a degenerarse rpidamente, dependiendo del valor inicial, y no puede lograrse
el perodo completo (h < M). Por ejemplo, si X0 = 10, entonces X1 = 10, X2 = 10, X3 = 10,...,

Adems, este mtodo es relativamente lento y estadsticamente insatisfactorio.

2.4.2 Mtodo de los productos centrales

Este mtodo es una variante del anterior, pero el nmero resultante se genera como las k cifras centrales del
producto de los dos nmeros generados previamente. Es decir,

Xn = D C( Xn-1 x Xn-2 )

Para empezar una secuencia, es necesario suministrar dos valores iniciales de k cifras cada uno. Por ejemplo,
X0 = 13 y X1 = 15, para M = 100

X2 = DC ( 13 x 15 ) = DC (195) = DC (0195) = 19 R2 = 19/100 = 0.19


X3 = DC ( 15 x 19 ) = DC (285) = DC (0285) = 28 R3 = 28/100 = 0.28
X4 = DC ( 19 x 28 ) = DC (532) = DC (0532) = 53 R4 = 53/100 = 0.53

Los mtodos anteriores tienen perodos relativamente cortos, los cuales se ven altamente afectados por los
valores iniciales asignados. Adems, son estadsticamente insatisfactorios.

2.4.3 Mtodos congruenciales

Estos son los mtodos que se usan actualmente, bien sea en su forma original, o mediante a combinacin de
diferentes generadores.

3 Mtodos congruenciales

Los mtodos congruenciales para generar nmeros aleatorios son completamente determinsticos debido a
que el proceso aritmtico involucrado en el clculo determina unvocamente cada trmino de la secuencia de
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-5

nmeros. En efecto, existen frmulas para calcular por adelantado el i -simo trmino de la secuencia { X0 ,
X1, X2,..., Xi,..., } sin que se hayan calculado los trminos anteriores. Aunque la secuencia de nmeros as
generada no sea estrictamente aleatoria, puede considerarse como tal si satisface un conjunto de pruebas
estadsticas sobre aleatoriedad, es decir, si se puede demostrar estadsticamente que los nmeros generados
se distribuyen uniformemente y son independientes.

Los mtodos congruenciales estn basados n la relacin fundamental de congruencia que puede expresarse
por medio de la siguiente ecuacin recursiva:

Xi (a Xi-1 +C) Mdulo M

donde a, Xi-1, C y M son enteros no negativos.

Para poder entender claramente la relacin fundamental de congruencia y su utilizacin en la generacin de


nmeros aleatorios es necesario tener en cuenta las siguientes definiciones.

Definicin No 1 Relacin de Congruencia.

Dos enteros A y B son congruentes mdulo M si su diferencia es un mltiplo de M. La relacin de congruencia


se expresa mediante la notacin A B Mod M, que se lee A es congruente con B mdulo M. El hecho de
que dos enteros A y B sean congruentes mdulo M significa que:

1. A - B es divisible por M, es decir, A - B/M = entero = k.


2. A y B dan el mismo residuo al ser divididas por el mdulo M, es decir, Res(A/M) = Res(B/M).

Por ejemplo: Son congruentes 127 y 238 mdulo 100?.


Res (127/100) = 27
Res ( 238/100) = 38 127 y 238 no son congruentes mdulo 100.

Son congruentes 115 y 435 mdulo 80 ?


Aplicando la definicin 1 se tiene: 435 - 115/80 = 320/80 = 4 115 435 mod 80
Aplicando la definicin 2 se tiene: Res(115/80) = 35
Res(435/80) = 35 115 435 mod 80

Cmo encontrar un nmero B que sea congruente con otro nmero dado A mdulo M?

El mtodo mas sencillo sera dividir el nmero A por el mdulo M y tomar el residuo como el nmero B
buscado, o tambin, tomar el residuo mas un nmero entero k de veces el mdulo o menos un nmero entero
de veces el mdulo.

B Res (A/M) Res (A/M) + M Res (A/M) +2 M ... Res (A/M) +k M

ya que si se divide Res (A/M) +k M por el mdulo M se obtiene el mismo residuo.

Ejemplo: 55 5 mod 10, 55 15 mod 10, 55 25 mod 10, 55 95 mod 10, 55 185 mod 10

Otra forma sera sumarle o restarle k veces el mdulo al nmero dado A. Si a un nmero A se le suma o se le
resta un nmero entero de veces el mdulo la relacin de congruencia no cambia ya que el residuo sigue
siendo el mismo.

A (A + M) mod M (A - M) mod M (A + 2M) mod M (A - 2M) mod M (A kM) mod M,

siendo k un entero.

Qu nmero sera congruente con 425 mdulo 90?


Res (425/90) = 65
425 65 155 245 355 425 -25 -115 mod 90
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-6

Para encontrar un nmero que sea congruente con otro nmero negativo basta con sumarle el mdulo
cuantas veces sea necesario hasta que el nmero se vuelva positivo. Por ejemplo, qu nmero es congruente
con - 173 mdulo 100?.

-173 -173 + 100 mod 100 -73 mod 100 -73 +100 mod 100 27 mod 100

Son congruentes 434 y -166 mdulo 100?.

Para un nmero dado A existen muchos otros nmeros que sean congruentes con A mdulo M, como se
observ anteriormente. Sin embargo, slo existe un entero no negativo menor que M, (el residuo) que sea
congruente con A Mdulo M, y es el que se usar para la generacin de nmeros aleatorios. Este aspecto se
formaliza mediante la siguiente definicin.

Definicin No 2 Residuo

Para un valor dado A el menor entero positivo m que sea congruente con A mdulo M (m A mod M) recibe el
nombre de residuo de A mdulo M. Para un nmero dado M existen entonces M residuos diferentes {0, 1, 2,
..., M-2, M-1}.

Al conjunto de nmeros enteros mutuamente congruentes con un residuo M se le denomina Clase residual
mdulo M.

Retomando la relacin fundamental de congruencia Xi (a Xi-1 +C) Mdulo M, tenemos que para generar
nmeros aleatorios mediante esta relacin, el valor de Xi ser el residuo mdulo M de la operacin a Xi-1 +C,
es decir:

Xi = Residuo de (a Xi-1 +C) Mdulo M 0 Xi < M

Se tiene que 0 Xi < M, entonces de la secuencia de enteros Xi se pueden obtener nmeros racionales en el
intervalo (0,1) -nmeros aleatorios- dividiendo Xi por el mdulo M, esto es,

Ri = Xi /M, 0 ri < 1

El valor M recibe el nombre de mdulo, a es el multiplicador, C la constante aditiva y X 0 la semilla.

Por ejemplo, si M=100, a = 13, C = 7 y X0 = 3 se tiene:

X1 13 x 3 + 7 mod 100 46 mod 100 = 46 R1 = 46/100 = 0.46


X2 13 x 46 + 7 mod 100 605 mod 100 = 5 R2 = 5/100 = 0.05
X3 13 x 5 + 7 mod 100 72 mod 100 = 72 R3 = 72/100 = 0.72
X4 13 x 72 + 7 mod 100 943 mod 100 = 43 R4 = 43/100 = 0.43
X5 13 x 43 + 7 mod 100 566 mod 100 = 66 R5 = 66/100 = 0.66
X6 13 x 66 + 7 mod 100 865 mod 100 = 65 R6 = 65/100 = 0.65
X7 13 x 65 + 7 mod 100 852 mod 100 = 52 R7 = 52/100 = 0.52

Entonces, dadas la semilla X0, las constantes multiplicativa (a) y aditivas (C) junto con el mdulo, la relacin
de congruencia permite obtener cualquier trmino de la secuencia {X1 , X2,..., Xi...,}.

Al realizar la operacin a Xi-1 puede tomarse como valor de Xi-1 o el residuo de la operacin anterior o el
nmero completo sin reducir al residuo, y los resultados no cambian, ya que el nmero completo sin reducir
contiene el residuo mas un nmero entero de veces el mdulo.

Tomado la relacin fundamental de congruencia Xi (a Xi-1 +C) Mdulo M y aplicndola en forma recursiva
para X1 , X2,..., Xi se obtiene:

X1 (a X0 +C) Mod M
X2 (a X1 +C) Mod M (a[a X0 +C] Mod M +C) Mod M (a X0 +aC +C) Mod M
2
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-7

X3 (a X2 +C) Mod M (a[a X0 +aC +C] Mod M +C) Mod M (a X0 +a C + aC +C) Mod M
2 3 2

X4 (a X3 +C) Mod M (a[a X0 +a C + aC +C] Mod M +C) Mod M (a X0 +a C + a C + aC +C) Mod M.


3 2 4 3 2

...
En general, Xi puede expresarse como:

Xi (a Xi-1 +C) Mod M


(a[a X0 +a C + a C +...+aC+C] Mod M +C) Mod M
i-1 i-2 i-3

(a X0 +a C + a C +...+ aC +C) Mod M (a X0 +[a + a +...+ a +1]C) Mod M


i i-1 i-2 i i-1 i-2

i 1 i 1
i
= (a X0 + C a
k i
) mod M = a X0 + C a
mod M, si a 1
a 1
k 0
Entonces, dadas la semilla X0, las constantes multiplicativa (a) y aditivas (C) junto con el mdulo, la relacin
de congruencia expresada en la forma anterior permite obtener cualquier trmino de la secuencia {X 1 , X2,...,
Xi...,} sin haber calculado previamente los nmeros anteriores.

La mxima cantidad de nmeros de la secuencia {Xi} que se pueden producir es M, ya que en el instante en
que se repita un nmero se repite toda la secuencia, por ser el proceso completamente determinstico y
definido por una expresin matemtica fija. Es decir, el perodo terico mximo sera h = M. Sin embargo, el
perodo largo es slo uno de los criterios que se deben tener en cuenta para juzgar la bondad de un
generador. Es posible obtener un perodo mximo en una secuencia no aleatoria. Por ejemplo, qu sucede si
se escogen a = 1, c = 1, es decir, se tiene el siguiente generador ?.

Xi ( Xi-1 + 1) Mdulo M

Con respecto al perodo h se est interesado en el caso en que Xi = X0 = Xh porque entonces Xh+1 = X1, Xh+2 =
X2 ,... y as sucesivamente, donde h es el perodo de la secuencia.

El perodo de la secuencia depende del mdulo M. El perodo siempre existir y su valor mximo depende de
M, y el que se logre ese valor mximo depender de la adecuada seleccin de los parmetros del generador.
Sin embargo, el valor mximo no siempre ser h = M en todos los casos.

Mediante el empleo de diferentes versiones de la relacin fundamental de congruencia se han desarrollado


varios mtodos para generar nmeros aleatorios. El objetivo de cada uno de los mtodos es la generacin, en
un tiempo mnimo, de secuencias con un perodo mximo. Entre los principales estn el mixto, multiplicativo y
mtodos compuestos.

3.1 Mtodo congruencial multiplicativo (c = 0)

Calcula una secuencia { Xi } de enteros no negativos cada uno de los cuales es menor que M mediante la
relacin Xi a Xi-1 Mod M.

Es un caso especial de la relacin de congruencia en que la constante aditiva toma el valor de cero (C = 0).
Por lo general, este mtodo se comporta estadsticamente de una manera muy satisfactoria, es decir, las
secuencias generadas se distribuyen uniformemente y no estn correlacionadas. Sin embargo, tiene un
perodo mximo menor que M, pero se pueden imponer condiciones a X 0 y a de tal forma que se garantice
el perodo mximo. Desde el punto de vista computacional es el ms rpido de todos.

3.2 Mtodo congruencial mixto o lineal

Genera secuencias de nmeros mediante la relacin fundamental de congruencia en su forma original


tomando C > 0.

Xi (a Xi-1 + C) Mdulo M C > 0


B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-8

Las condiciones estadsticas de las secuencias generadas por este mtodo son generalmente buenas,
aunque en ciertos casos el comportamiento resulta inaceptable, razn por la cual el generador debe ser
siempre validado estadsticamente. El perodo mximo es h = M.

3.3 Generadores compuestos

4 Seleccin de los Parmetros para mtodos congruenciales

Se han desarrollado estudios tericos acerca de las propiedades que deben cumplir los diferentes parmetros
de los modelos de tal forma que se logre el perodo mximo y sean estadsticamente satisfactorios. Todos los
estudios se basan en la Teora de Nmeros.

La frmula de Greenberger y Coveyou da las condiciones tericas sobre los valores ptimos de a, C y M para
una determinacin a priori de la autocorrelacin serial de primer orden entre dos nmeros. La magnitud del
coeficiente de correlacin serial ( Xi-1 , Xi ) se encuentra entre los valores:

1/a - (6c/aM) (1-C/a) a/M

En general, a = M dar los menores valores para el coeficiente de correlacin serial de primer orden,
independiente del valor de C. Este resultado proporciona una condicin necesaria desde este punto de vista,
pero no es suficiente. Se ha demostrado experimentalmente que aunque a = M minimiza la correlacin serial
de primer orden, tiende a maximizar la correlacin serial de segundo orden (Xi-2 , Xi ) y que para lograr un
adecuado balance entre estos dos coeficientes de correlacin a debe ser mucho mayor que M (a>>M).

Los siguientes dos teoremas dan las condiciones bsicas que se deben tener en cuenta para la seleccin de
los parmetros en generadores congruenciales.

Teorema No 1. Un generador congruencial lineal tendr perodo mximo M si y solo si

a. C es diferente de cero y es primo relativo con M (es decir, C y M no tienen ningn factor primo comn).
b. (a mod q) 1 para cada factor primo q de M.
c (a mod 4) 1 si 4 es un factor de M.

Recuerde que C y M son primos relativos si y solo si C y M no tienen otro divisor comn diferente de 1, lo cual
es equivalente a decir que no tienen factor primo comn.

Teorema No 2. Si C = 0 en un generador congruencial, entonces Xi = 0 no puede estar incluido en el ciclo,


dado que a partir de ah se repetira el cero. Sin embargo, el generador tendr ciclo a travs de todos los M-1
enteros en el conjunto {1, 2, ..., M-1} si y solo si:

a. M es un entero primo y
b. a es un elemento primitivo mdulo M.

Todos los parmetros son funcin del mdulo, por lo tanto, este es el primero que debe seleccionarse y su
seleccin debe hacerse teniendo en cuenta que el perodo de las secuencias sea lo mas grande posible.

4.1 Seleccin del Mdulo para un generador congruencial

Para escoger el mdulo se deben tener en cuenta dos aspectos:

El mdulo M debe ser bastante grande, ya que el perodo nunca puede ser mayor que M.
M debe escogerse de tal forma que los nmeros se generen a la mayor velocidad posible.
e
4.1.1 Mdulo 2
e
En los computadores generalmente se usa como mdulo M = p que representa el tamao de la palabra del
computador, donde p denota el nmero de guarismos del sistema numrico del computador y e el nmero de
dgitos (bits) en una palabra. Para un computador binario (como son la mayora y por lo tanto slo nos
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3-9

concentraremos en ellos) p = 2 y para uno decimal p = 10. El valor de e depende del tipo de palabra empleado
por el computador en sus operaciones. La mayora de los computadores y microcomputadores pueden
trabajar dos tipos de palabras: Palabras sencillas, en cuyo caso e = 15 y palabras dobles con e = 31. An
otros computadores como el VAX 11 de Digital pueden trabajar con la palabra cudruple, en cuyo caso e =
15 31
63. As el mdulo para palabra sencilla sera M = 2 = 32768 y con palabra doble sera M = 2 =
2147483648. Para palabras sencillas el nmero de bits usados para representar una palabra es 16, pero
como se requiere uno para el signo slo quedan disponibles 15. Para palabras doble (que es la palabra
normal del computador) existen 32 bits, quedando disponibles 31 para representar los nmeros.
e
Existen dos razones para escoger M = p ::
Trabajando con aritmtica entera el proceso de reduccin mdulo M se efecta mediante el truncamiento
y la retencin de los e bits de orden inferior.
La conversin al intervalo unitario, para obtener nmeros entre 0 y 1 se logra moviendo el punto binario o
decimal a la izquierda del nmero.
e
La reduccin mdulo M = 2 es casi automtica si las operaciones se realizan en aritmtica entera, ya que el
e e
mayor entero positivo que puede almacenar el computador es 2 -1 y el mayor entero negativo es -2 . Es
e e
decir, cualquier entero que maneje el computador estar entre -2 y -2 . Para el caso de un computador
binario con palabra sencilla los nmeros estaran entre -32768 y +32767. Cuando el computador efecte
cualquier operacin entera el resultado estar representado por un nmero entre -32768 y +32767. La forma
como el computador expresa los nmeros se representa por medio de la figura siguiente:
-2 -1 0 1 2
-3 -3 -4
65536
65535
65534

32771 32770
32769
-32765 32765
-32766 32766
-32767 32767
-32768
+32768

Suponga que se est usando el mtodo congruencial mixto, es decir:

Xi (a Xi-1 +C) Mdulo 2


15
= (a Xi-1 +C) Mdulo 32768

El computador efectuar el producto a Xi-1 y le agregar c. Si el resultado da menor que 32768 el computador
almacenar ese nmero (positivo). Si el resultado da entre 32768 y 65535 el computador registrar un nmero
negativo. Si el resultado es 65536 el computador guardar cero. Si est entre 65536 y 98303 el computador
guardar un nmero positivo. Por ejemplo:

Si el resultado es 32766 el computador guardar 32766, que es el residuo mdulo 32768.


Si el resultado es 32767 el computador guarda 32767, que es el mismo residuo.
Si el resultado es 32768 el computador no est en capacidad de almacenar este nmero, sino que lo
representa como -32768. Ahora bien, el residuo de 32768 mdulo 32768 es cero. Es decir, se requiere
convertir -32768 en 0 que es el residuo. Para convertirlo en cero basta con sumarle el mdulo (32768),
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 10

pero es necesario sumarlo en dos partes, tal como 32767+1. (Por qu es necesario hacer el clculo de
esta manera? )

As: -32768 = -32768 + 32767 + 1 = 0

Si el resultado es 32769 (cuyo residuo es 1) el computador lo representa como -32767 y para encontrar el
residuo basta con sumarle el mdulo en forma similar al caso anterior.

La siguiente tabla ilustra varios posibles resultados, su representacin en el computador y su residuo

RESULTADO RESIDUO RESULTADO DEL PROCESO CONVERSION


REAL MODULO 32768 COMPUTADOR RESIDUO MOD 32768
1 1 1 No hay
20 000 20000 20000 No hay
32 766 32766 32766 No hay
32 767 32 767 32 767 No hay
32 768 1 -32 768 -32 768 + 32767 +1 = 0
32 769 2 -32 767 -32 767+32767 + 1 = 1
32 770 3 -32 766 -32 766 +32767 + 1 = 2
... ... ... ...
65 534 32766 -2 -2 +32767 + 1 = 32766
65 535 32767 -1 -1 + 32767 + 1 = 32767
65 536 0 0 0
65 537 1 1 1
65 538 2 2 2
e 31
4.1.2 Mdulo 2 1 (2 - 1)
31
Este mdulo (2 1) se usa principalmente en generadores congruenciales multiplicativos. La razn principal
e e
para usar el mdulo 2 - 1 en lugar de 2 es que se puede obtener un perodo de M-1, aprovechando el hecho
31
de que (2 1) es un nmero primo. Sin embargo, los mtodos no seran tan eficientes como en caso en que
31
M = 2 ya que habra que disear algoritmos mas complicados para efectuar la reduccin mdulo M.

4.2 Mtodo lineal o mixto

Este mtodo tiene la ventaja de que puede lograrse el perodo completo h = M, pero puede presentar
problemas de aceptabilidad estadstica. Est basado en la relacin fundamental de congruencia con C > 0.

Las condiciones impuestas al multiplicador y a la constante aditiva para obtener el perodo mximo son las
dadas por el teorema No 1 enunciado previamente, y se resumen en las siguientes:

c > 0 debe ser primo relativo con M. si M = 2 (=2 ) c debe ser un nmero impar.
e 31

a 1 mod q para cada factor primo q de M. si M = 2 (=2 ) a debe ser un nmero impar.
e 31

a 1 mod 4 si 4 es un factor de M, es decir, a puede expresarse como a = 4k+1, siendo k un nmero


entero.
Como se obtiene el perodo completo, entonces puede seleccionarse cualquier entero como semilla.
Adems, para minimizar la correlacin serial de primer y segundo orden a >> M.

Sin embargo las condiciones anteriores no son suficientes para garantizar que las secuencias generadas por
el mtodo congruencial lineal sern estadsticamente satisfactorias. Slo mediante el uso de pruebas
estadsticas se puede tener confianza en las propiedades de las secuencias generadas mediante este
mtodo.

4.3 Mtodo congruencial multiplicativo

Los nmeros aleatorios se generan haciendo uso de la relacin Xi a Xi-1 Mod M a mod M.
i
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 11

e 31
Para el mdulo puede escogerse M = 2 = 2 para obtener una mayor eficiencia en la generacin de las
31
secuencias de nmeros o M = 2 - 1 si se desea obtener una mayor aleatoriedad en las ltimas cifras de los
nmeros y un perodo mayor.
31
4.3.1 Mtodo congruencial multiplicativo , mdulo 2
e e--2
Para el mdulo M = 2 el perodo mximo es h = 2 Para palabra simple e = 15 y para palabra doble e =31,
es decir, los perodos mximos seran 8192 y 536870912, respectivamente. Para lograr el perodo mximo la
semilla X0 y el multiplicador a deben cumplir ciertas condiciones.

Las condiciones que debe cumplir el multiplicador a para obtener el perodo mximo son las siguientes:

e
a debe ser primo relativo con M. Es decir, si M = 2 y a es primo relativo con M entonces a debe ser un
nmero impar.
Los valores de a que garantizan perodo mximo residen en una clase residual representada por la
relacin de congruencia: a 3 mod 8. Usando esta relacin entonces a puede expresarse tambin como
a = 8 k 3, siendo k un nmero entero positivo.

e/2
De acuerdo con la frmula Greenberger Coveyou los valores de a cercanos a M = 2 minimizan la
correlacin serial de primer orden entre dos nmeros aleatorios. Sin embargo, como ya se indic, se tiende
a maximizar la correlacin serial de segundo orden por lo cual se recomienda que el valor de a sea mucho
mayor que la raz del mdulo (a >> M ). Por lo tanto se deben ensayar varios valores y escoger el que
tenga un mejor comportamiento estadstico.

Condiciones que debe cumplir el valor inicial o semilla:

e
Dado que no se puede obtener el valor de cero y M = 2 , entonces el valor inicial o semilla X0 debe ser
primo relativo con el mdulo, es decir, X0 debe ser un nmero impar.

Como ya se indic, todos los clculos deben realizarse en aritmtica entera.

Si se desea generar nmeros aleatorios, usando palabra sencilla, cual de los siguientes valores seran
apropiados como multiplicadores (a): 131, 179, 181, 191, 715, 717 719?

Las siguientes subrutinas, apropiadas para el lenguaje FORTRAN, generan nmeros aleatorios usando
palabra sencilla y palabra doble, que es la normal, por defecto, mientras no se defina lo contrario. (La primera
rutina corresponde a la rutina RANDU de la IBM).

Subroutine randon (semi,r) Subroutine randon (semi,r)


integer *2 semi, semi1
semi1 = 899*semi semi1 = 1220703125*semi
If(semi1.lt.0)then If(semi1.lt.0)then
semi1=semi1+32767+1 semi1 = semi1 +2147483647+1
end if end if
r = float(semi1)/32768. r = float(semi1)*0.4656613E-9
semi = semi1 semi = semi1
return return
end end
13
Para la palabra sencilla se usa un multiplicador de 899, mientras que para la palabra doble el valor es de 5 .
Ambas subrutinas tienen dos argumentos: 1) semi que corresponde al valor inicial de la semilla, la primera
vez que se la llame, y las otras veces al valor generado previamente, 2) r que corresponde al nmero
aleatorio generado entre 0 y 1. Las rutinas efectan el producto entre el multiplicador a y la semilla y verifican
si es negativo. Si resulta negativo, entonces calculan el residuo sumndole el mdulo; si es positivo, el valor
calculado es directamente el residuo y no hay que hacer ninguna operacin adicional. Posteriormente se
divide por el mdulo (en aritmtica real) para obtener el nmero aleatorio y se cambia el valor de la semilla, de
tal forma que la prxima vez que se llamen las rutinas, empleen el ltimo valor generado.
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 12

Para aprovechar la reduccin automtica mdulo M es necesario investigar las caractersticas propias del
lenguaje que se est empleando, para conocer la forma como se hace el respectivo truncamiento. Por
ejemplo, para trabajar en FORTRAN con palabra sencilla basta con hacer la declaracin INTEGER *2; en
otros caso puede ser el comando NOCHECK OVERFLOW, etc.

5 Pruebas estadsticas para generadores de nmeros aleatorios

Las propiedades estadsticas de lo nmeros seudoaleatorios generados por los mtodos explicados en los
prrafos anteriores deberan coincidir con las propiedades estadsticas de nmeros generados por un
procedimiento aleatorio idealizado que seleccione nmeros en el intervalo (0,1), que sean independientes y
que todos sean igualmente probables. Claramente los nmeros aleatorios generados por programas de
computador no son aleatorios, dado que estn completamente determinados por los datos iniciales y por los
parmetros del mtodo empleado. Sin embargo, estos nmeros pueden considerarse como verdaderos
nmeros aleatorios si pasan una serie de pruebas estadsticas sobre la uniformidad y la independencia de las
secuencias de nmeros generados.

Los requisitos que se impongan a un conjunto particular de nmeros (a una secuencia) deben estar basados
principalmente en la aplicacin que se desee dar a esos nmeros en los experimentos de simulacin. Se han
propuesto diferentes pruebas que proveen las herramientas estadsticas necesarias para validar la
aleatoriedad de un conjunto de nmeros para unas condiciones dadas. El analista debe decidir cules de las
pruebas ha de emplear para estar seguro de que su generador s producir nmeros aleatorios, segn su
aplicacin especfica. En los prrafos siguientes se resumen las principales pruebas estadsticas.

5.1 Pruebas sobre la Uniformidad de la distribucin

Un anlisis bsico que siempre debe realizarse es la validacin de la uniformidad de la distribucin. Se


proponen dos pruebas bsicas que pueden aplicarse: La prueba Chi - Cuadrado y la prueba de Smirnov-
Kolmogorov. Ambas pruebas caen en la categora de lo que en estadstica se denominan pruebas de Bondad
de Ajuste y miden el grado de ajuste entre la distribucin obtenida de una muestra de nmeros aleatorios y la
distribucin terica que se supone debe seguir esa muestra, en nuestro caso la distribucin uniforme. Ambas
pruebas estn basadas en la hiptesis nula de que no hay diferencias apreciables (significativas) entre la
distribucin muestral y la terica. En resumen ambas pruebas estn basadas en las siguientes hiptesis:

Hiptesis Nula H0: Los valores provienen de una distribucin uniforme (0,1)
Hiptesis Alternativa H1: Los valores no provienen de una distribucin uniforme (0,1)

5.1.1 Prueba Chi Cuadrado (ji dos)

Esta prueba se usa cuando se quiere probar la hiptesis de que unos datos muestrales provienen de una
determinada distribucin.

Se quiere demostrar que no existe una diferencia significativa entre la distribucin de frecuencia de la muestra
y la distribucin uniforme. La prueba chi cuadrado permite determinar si las frecuencias observadas en la
muestra estn lo suficientemente cerca de las frecuencias esperadas bajo la hiptesis nula.

Para esta prueba es necesario agrupar o distribuir los nmeros aleatorios generados en intervalos de clase,
preferiblemente del mismo tamao. El estadstico de prueba est definido como:

O i E i
2
k
X
2
i 1 Ei
donde: Oi = Frecuencia absoluta, o total de nmeros aleatorios que caen en el intervalo i.
Ei = Nmero esperado de valores en el intervalo i.
k = Nmero de intervalos de clase en que se distribuyen las observaciones.
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 13

Si los lmites del intervalo de clase estn dados por Xi-1, y Xi, como lo ilustra la presente grfica, el nmero
esperado de observaciones para ese intervalo est dado por:

Ei = pi n

donde: pi = probabilidad de que una observacin (un nmero aleatorio) quede en el intervalo i.
n = Total de observaciones o nmeros aleatorios generados.

Ei

X0 X1 X2 Xi-1 Xi Xk

La probabilidad de que un nmero aleatorio caiga en el intervalo i est dada por:

p xx
i
i

i 1
x
f ( x)dx i dx xi xi 1 x 1 / k
xi 1
siendo f(x) la funcin de densidad de la variable aleatoria X, bajo la hiptesis nula. En nuestro caso,
tratndose de la distribucin uniforme y para k intervalos de clase igualmente espaciados, la probabilidad de
que una observacin quede en el intervalo i est dada por:
.
pi = 1/k, i = 1, 2 ,,, k

Entonces el nmero de observaciones en cada intervalo est dado por:

Ei = pi n = n/k, i = 1, 2 ,,, k
2
Estadstico X sigue una distribucin chi cuadrado con k - 1 grados de libertad. Para que esta suposicin sea
vlida se requiere que el nmero esperado de observaciones en cada intervalo de clase sea por lo menos 5
(Ei 5). Si esta condicin no se cumple, es necesario agrupar en uno los resultados de varios intervalos de
clase.
2
Para la prueba de uniformidad se calcula el valor X como se acaba de explicar, y se acepta la hiptesis nula

2 2
si X
2
k1,1
, donde el valor k1,1
representa el valor de la distribucin chi cuadrado con k-1 grados de
libertad y un nivel de significancia de , es decir, que tiene un rea de 1 - a la izquierda ( a la derecha).

Algunas consideraciones que hay que tener en cuenta con respecto a la aplicacin de esta prueba son las
siguientes:

El nmero de intervalos de clase debe ser por lo menos cinco. Para facilidad de los clculos y para una
buena visualizacin de la distribucin tampoco debera ser muy grande ( k 20).
El nmero esperado de observaciones en cada intervalo debe ser mayor o igual a cinco; en caso contrario,
deberan agruparse varios intervalos para lograr esto.
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 14

Ejemplo. En la tabla siguiente se presentan los clculos para realizar la prueba Chi cuadrado para una
muestra de 100 nmeros aleatorios generados mediante el generador congruencial multiplicativo con a = 899,
c = 0 y M = 32768, y distribuidos en 10 intervalos de clase.

PRUEBA DE UNIFORMIDAD CHI CUADRADO

Clase/concepto 1 2 3 4 5 6 7 8 9 10
Lmite Inf Xi-1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Lmite Sup Xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Oi 14 15 9 8 4 11 10 10 7 12
pi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Ei 10 10 10 10 10 10 10 10 10 10

O i E i 1.6 2.5 0.10 0.40 3.6 0.1 0.0 0.0 0.9 0.4
2

Ei
O i E i 1.6 4.1 4.2 4.6 8.2 8.3 8.3 8.3 9.2 9.6
2
k

i 1 Ei

k1,1 = 21.7 para un nivel de significancia del 1%, lo


2 2
El estadstico de prueba X = 9.6 y el valor crtico
cual nos lleva a aceptar la hiptesis de que los valores generados provienen de una distribucin uniforme.

5.1.2 Prueba de Simirnov - Kolmogorov (s-K)

En esta prueba tambin se est interesado en el grado de concordancia entre la distribucin de frecuencia
muestral y la distribucin de frecuencia terica, bajo la hiptesis nula de que la distribucin de la muestra es
uniforme (0,1), e interesa probar que no existe diferencia significativa. La prueba trabaja con la funcin de
distribucin (distribucin de frecuencia acumulativa), y se puede realizar para valores agrupados en intervalos
de clase, o para las observaciones individuales, sin agrupar.

Sea FX (x) la funcin de distribucin terica para la variable aleatoria X (uniforme en nuestro caso), y
representa la proporcin esperada de observaciones que tengan un valor menor o igual a x. Es decir:
x
FX (x) = P ( X x) =
f ( x)dx = x si X es U(0,1)

Sea Sn(x) la funcin de distribucin emprica (observada) de la muestra de n observaciones (nmeros


aleatorios). Sn(x) representa la proporcin de valores observados (generados) que son menores o iguales a x,
y est definida como:

Sn(x) = P(X x/dados los resultados muestrales) = m/n

donde m es el nmero de valores observados (generados) que son menores o iguales a x.

En la prueba de Smirnov-Kolmogorov se est interesado en la mayor desviacin entre la funcin de


distribucin terica y la emprica, es decir entre F X (x) y Sn(x), para todo el rango de valores de x. Bajo la
hiptesis nula se espera que estas desviaciones sean pequeas y estn dentro de los lmites de errores
aleatorios. Por lo tanto, en la prueba S-K se calcula la mayor desviacin entre F X (x) y Sn (x), denotada por
D(x) y est dada por:

D(x) = Max | FX (x) Sn(x) |

La distribucin de D(x) es conocida y depende del nmero de observaciones n. Se acepta la hiptesis nula de
que no existe diferencia significativa entre las distribuciones terica y emprica si el valor de D(x) es menor o
igual que el valor crtico Dmax(1-,n). (Ver tabla adjunta para valores crticos).
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 15

Prueba Smirnov Kolmogorov para observaciones agrupadas en intervalos de clase

El procedimiento general para realizar esta prueba se puede resumir en los siguientes pasos: siguiente:

Especificar la distribucin nula, la cual se supone que sigue la muestra aleatoria, os nmeros generados,
la uniforme en nuestro caso.
Organizar la muestra observada de nmeros aleatorios en una distribucin de frecuencia.
Con base en la distribucin observada de frecuencia, se calcula la distribucin acumulativa S n(x), que
corresponde a la frecuencia relativa acumulada para el intervalo.
Se calcula la funcin de distribucin terica FX(x).
Para cada intervalo de clase (o para cada valor de x) se calcula la diferencia entre F X (x) y Sn (x), y se
busca la mxima D(x) = Max | FX (x) Sn(x) |.
Se busca en la tabla el valor crtico Dmax(1-, n) con un nivel de significancia . Si el valor observado D(x)
es menor o igual que el valor crtico, entonces se acepta la hiptesis nula de que no existen diferencias
significativas entre la distribucin terica y la distribucin dada por los resultados muestrales, es decir, que
los valores generados siguen la distribucin que se haba supuesto (uniforme).

Tabla No 2
Prueba de Smirnov-Kolmogorov. Valores crticos Dmax(1-,n) de la mxima diferencia absoluta entre las
funcin de distribucin muestral y terica.

Tamao de la Nivel de significancia


muestra
.20 .15 0.10 0.05 0.01
1 .9000 .925 .950 .875 .995
2 .684 .726 .776 .842 .929
3 .565 .597 .642 .708 .828
4 .494 .525 .564 .624 .733
5 .446 .474 .510 .565 .669
6 .410 .436 .470 .521 .618
7 .381 .405 .438 .486 .577
8 .358 .381 .411 .457 .543
9 .339 .360 .388 .432 .514
10 .322 .342 .368 .410 .490
11 .307 .326 .352 .391 .468
12 .295 .313 .338 .375 .450
13 .284 .302 .325 .361 .433
14 .274 .292 .314 .349 .418
15 .266 .283 .304 .338 .404
16 .258 .274 .295 .328 .392
17 .250 .266 .286 .318 .381
18 .244 .259 .278 .309 .371
19 .237 .252 .272 .301 .363
20 .231 .246 .264 .294 .356
25 .210 .220 .240 .270 .320
30 .190 .200 .220 .240 .290
35 .18 .190 .201 .230 .270
35 1.07/ N 1.14/ N 1.22/ N 1.36/ N 1.63/ N

Valores de Dmax(1-,n) tales que Pr {Max | FX (x) Sn (x) | Dmax(1-,n)} = 1-


Tabla tomada parcialmente del libro Simulation and Analysis of Industrial Systems, de Schmidt y
Taylor.
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 16

Ejemplo: Prueba de Smirnov - Kolmogorov - Valores agrupados. En la tabla siguiente se presentan los
clculos para realizar la prueba S-K para la muestra de 100 nmeros aleatorios generados mediante el
generador congruencial multiplicativo con a = 899, c = 0 y M = 32768, usados para la prueba chi cuadrado.

Prueba de Smirnov - Kolmogorov - Valores agrupados

Clase/concepto 1 2 3 4 5 6 7 8 9 10
Lmite Inf Xi-1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Lmite Sup Xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Oi 14 15 9 8 4 11 10 10 7 12
Oi 14 29 38 46 50 61 71 81 88 100
Sn(x) .14 0.29 0.38 0.46 0.50 0.61 0.71 0.81 0.88 1.00
FX (x) 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00
| FX (x) Sn (x) | 0.04 0.09 0.08 0.06 0.00 0.01 0.01 0.01 0.02 0.00

La diferencia mxima observada es Dmax(x) = 0.09 y el valor crtico para un nivel de significancia del 1% es de
1.63/ 100 = .163. Como Dmax(x) < D(100,.99) no podemos rechazar la hiptesis nula y debemos concluir que
la muestra tomada del generador de nmeros aleatorios proviene de una distribucin uniforme (0,1).

Prueba Smirnov Kolmogorov para observaciones individuales

Para realizar la prueba de S-K no se requiere que las observaciones estn distribuidas en intervalos de clase,
sino que puede realizarse sin necesidad de agrupar los valores en intervalos de clase, principalmente cuando
el tamao de la muestra es pequeo. En este caso es necesario ordenar los valores generados en forma
ascendente, de menor a mayor, y calcular, para cada valor observado, (sin agrupar en intervalos de clase) las
distribuciones tericas Fx(x) y empricas Sn(x) en la forma como se explic anteriormente.

Ejemplo. La tabla siguiente presenta la prueba para los primeros 20 valores generados mediante el
generador congruencial multiplicativo considerado anteriormente (a = 899, c = 0 y M = 32768). La diferencia
mxima observada es 0.123 y la mxima permitida es 0.294 para 20 valores y un nivel de significancia del 5%,
lo cual lleva a la conclusin de que no existe evidencia de que las observaciones no se distribuyan
uniformemente en el intervalo (0,1).

Prueba de Smirnov - Kolmogorov - Valores individuales

Observacin No 1 2 3 4 5 6 7 8 9 10
Valor R 0.066 0.075 0.080 0.119 0.178 0.228 0.262 0.348 0.573 0.620
Sn(x) 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50
FX (x) 0.066 0.075 0.080 0.119 0.178 0.228 0.262 0.348 0.573 0.620
| FX (x) Sn(x) | 0.016 0.025 0.070 0.081 0.072 0.072 0.088 0.052 0.123 0.120
Observacin No 11 12 13 14 15 16 17 18 19 20
Valor R 0.635 0.695 0.709 0.719 0.829 0.908 0.916 0.945 0.964 0.973
Sn (x) 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00
FX (x) 0.635 0.695 0.709 0.719 0.829 0.908 0.916 0.945 0.964 0.973
| FX (x) Sn (x) | 0.085 0.095 0.059 0.019 0.079 0.108 0.066 0.045 0.014 0.027

La prueba de Smirnov - Kolmogorov tiene las siguientes caractersticas:

La prueba puede aplicarse para tamaos de muestra pequeos, lo que no sucede con la chi cuadrado.
Adems, la prueba S-K es mas poderosa que la Ji dos, es decir, cuando se rechaza la hiptesis nula, se
tiene una mayor confiabilidad en dicho resultado.
La prueba S-K debe usarse cuando la variable de anlisis es continua. Sin embargo, si la prueba se usa
cuando la distribucin de la poblacin no es continua, el error que ocurre en la probabilidad resultante
est en la direccin segura. Es decir, cuando se rechaza la hiptesis nula, tenemos verdadera confianza
en la decisin.
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 17

5.2 Pruebas de Independencia

Las dos pruebas anteriores son aplicables para verificar la uniformidad de la distribucin de una secuencia de
nmeros aleatorios, pero ninguna tiene en cuenta el ordenamiento de la secuencia de nmeros aleatorios, de
acuerdo al tiempo de generacin. Por ejemplo, si a la secuencia 1, 1, 1, 3, 3, 3, 5, 5, 5, 7, 7,7, 9, 9, 9, 0, 0, 0,
2, 2, 2, 4, 4, 4, 6, 6, 6, 8, 8, 8 se le aplicaran las dos pruebas anteriores las pasaran con una confiabilidad del
100%. Sin embargo, la secuencia anterior dista mucho de ser aleatoria. Esto ilustra la necesidad de efectuar
otras pruebas que incluyan aspectos tales como el orden en que aparecen los nmeros, para verificar si en
realidad son independientes. Estas pruebas se las conoce con el nombre de Pruebas de Rachas o Corridas.

5.2.1 Pruebas de Rachas

Estamos interesados en el arreglo particular de los nmeros dentro de una secuencia para determinar su
aleatoriedad. La secuencia 0, 1, 2 , 3, 4, 5, 6, 7, 8, 9 y 1, 7, 3, 4, 9, 6, 2, 5, 0 ,8 , aunque contienen los mimos
nmeros son completamente diferentes. En la primera secuencia encontramos los nmeros en orden
ascendente, de 0 a 9, mientras que en la segunda no hay ningn ordenamiento aparente entre los mismos. En
la primera secuencia los nmeros forman lo que se denomina una racha ascendente de longitud 9, es decir,
existe una serie de nueve aumentos sucesivos.

Definicin. Una racha se define como una serie de eventos o fenmenos de una misma clase. Por ejemplo,
una racha de mala suerte.

La longitud de una racha es el nmero de elementos o eventos que contiene la racha. El propsito de estudiar
las rachas es analizar el carcter aleatorio de una secuencia de nmeros.

Para la aplicacin del anlisis de rachas se requiere que los eventos que puedan ocurrir se puedan clasificar
en una de dos categoras mutuamente excluyentes.

Para una secuencia de valores, las rachas se pueden clasificar en dos formas diferentes:

Rachas ascendentes o hacia arriba y rachas descendentes o hacia abajo, dependiendo de si un nmero
est seguido por otro mayor o por otro menor. Por ejemplo, en la secuencia 1, 5, 6, 8, 4, 2, 0, 1 , 7 se
presenta una racha ascendente de longitud tres, una descendente de longitud tres y finalmente una
ascendente de longitud dos.
Rachas por encima o por debajo del valor medio. En este caso la racha se clasifica dependiendo de si un
valor est por encima o por debajo del valor medio (0.5 para el caso de nmeros aleatorios). En la
secuencia 0.1, 0.5, 0.6, 0.8, 0.4, 0.2, 0.0, 0.1, 0.7 se presenta una racha por debajo de longitud 1, una por
encima de longitud tres (suponiendo que 5 est por encima del valor medio), una por debajo de longitud
cuatro y finalmente una por encima de longitud uno.

Al examinar la aleatoriedad de una secuencia de nmeros aleatorios, debemos analizar tanto el


comportamiento del nmero de rachas (por encima y por debajo, ascendentes y descendentes) como la
distribucin de la longitud de las diferentes rachas.

Inicialmente analizaremos el nmero total de rachas que se presentan en una secuencia de nmeros.

5.2.1.1. Anlisis del nmero de rachas.

Rachas hacia arriba y hacia abajo.

Una racha ascendente o hacia arriba es una sucesin de aumentos, es decir, si se tiene una secuencia de
nmeros tal que cada nmero de la secuencia est seguido por otro mayor. Si la secuencia es tal que cada
nmero est seguido por otro menor, la secuencia recibe el nombre de racha descendente o hacia abajo..
Considere la secuencia de 20 nmeros

3, 1, 2, 3, 6, 4, 5, 4, 1, 2, 6, 8, 9, 7, 5, 2, 3, 1, 5, 1,
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 18

A cada nmero de la secuencia le podemos asignar un cdigo especial (+, o un 1) si este nmero est
seguido por otro mayor, y otro signo (- o un 0) si el nmero est seguido por otro menor. En la secuencia
anterior tendramos la siguiente representacin:

-+ + + - + - - + + + + - - -+ - + -

Cada secuencia de + y - constituye una racha y su longitud est dada por el nmero de signos iguales
contenidos en la racha. Para esta secuencia, se presentan cinco rachas ascendentes y seis descendentes,
para un total de once.

El nmero mnimo de rachas ascendentes y descendentes es uno y el mximo n - 1, si hay n valores en la


secuencia. Por lo tanto, una secuencia puede ser no aleatoria si hay o muy pocas o demasiadas rachas. Por
ejemplo, considere las dos secuencias siguientes :

Secuencia A: 10, 30, 33, 45, 50, 63, 70, 77, 81, 87
Secuencia B: 43, 17, 42, 30, 55, 19, 75, 11, 25, 07

En la secuencia A se tiene nicamente una racha, de longitud nueve, es decir, cada valor est seguido
siempre por otro mayor, mientras que en la secuencia B se tienen nueve rachas, 4 ascendentes y cinco
descendentes. Dado que no es lgico esperar que los nmeros aleatorios aumenten continuamente,
podramos cuestionar la aleatoriedad de la primera secuencia. De igual forma, podramos cuestionar la
aleatoriedad de la secuencia B ya que tampoco es normal que los nmeros aumenten y disminuyan
continuamente, en forma cclica. Esperamos que el total de rachas en una secuencia de verdaderos nmeros
aleatorios est en algn valor entre uno y n-1.

Sea A el nmero total de rachas ascendentes y descendentes en una secuencia de n nmeros aleatorios. La
media y la varianza de A, A y A estn dadas por:
2

2N 1
A

3

16 N 29

2
A
90
Para n > 20 la distribucin de A puede aproximarse por una distribucin normal con la media y varianza dadas
por las expresiones anteriores. Esta aproximacin es apropiada para probar la aleatoriedad de los valores
generados por un generador de nmeros aleatorios, dado que generalmente se generan cientos de valores
antes de aplicar la prueba.

La hiptesis de que una secuencia es aleatoria puede rechazarse, o bien porque existan pocas rachas, o bien
porque existan demasiadas. Por consiguiente, se requiere efectuar una prueba de dos colas para determinar
si ha ocurrido alguno de los extremos. El estadstico de prueba sera:

A A
Z
A

donde Z se distribuye normalmente con media cero y varianza unitaria.

Si es el nivel de significancia de la prueba y Z 1-/2 es el valor de la distribucin normal (0,1) que tiene un rea
de 1-/2 hacia la izquierda, es decir, es el valor para el cual se cumple que:

1-/2 = P( Z Z1-/2 ) P( Z Z1-/2 ) = /2

entonces se puede rechazar la hiptesis de la aleatoriedad de la secuencia si


B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 19

Z Z1-/2

Ejemplo: Considere el generador congruencial multiplicativo definido por los siguientes parmetros : a = 899, c
= 0 y M = 32768. Determine si las secuencias generadas pueden considerarse como aleatorias, con base en
la prueba de rachas ascendentes y descendentes. Use un nivel de significancia del 5%.

Para probar la hiptesis anterior, se gener una secuencia de 100 nmeros aleatorios, los cuales se
presentan a continuacin. Para visualizar mejor su presentacin, los valores se presentan como enteros, con
dos cifras.

95 97 83 72 35 12 8 91 23 69 62 96 71 8 57 26 92 64 7 18
98 75 22 9 1 79 17 36 15 14 3 38 51 17 93 51 23 26 99 14
42 77 34 63 21 9 11 37 73 58 41 72 10 64 38 7 45 62 14 78
90 91 81 23 58 87 52 80 61 89 40 87 11 34 56 80 22 60 14 97
5 3 26 76 73 2 4 55 39 94 61 70 16 17 10 59 14 7 62 60

La secuencia de rachas ascendentes y descendentes es la siguiente :

+-----+-+-+--+-+--++----+-+---++-+--++-++-+--+++- -
+-+--++-+++--++-+-+-+-+++-+-+--++--++-+-+-+-+--+-

La distribucin del nmero de rachas es la siguiente:

Longitud de Racha 1 2 3 4 5 Total A


Nmero de rachas 42 18 4 1 1 66

Se tiene entonces: n = 100, A = 66. La media y la varianza estarn dadas por:

2 N 1 2 x100 1
A

3

3
66.3

16 N 29 16 x100 29

2
A
17.46 A
4.18
90 90

66 66.3
Z 0.072
4.18
Para un nivel de significancia del 5%, se tiene que Z 1-/2 = 1.96. Por lo tanto, dado que Z <Z0.975 se acepta
que, en cuanto al nmero de rachas ascendentes y descendentes,la secuencia es aleatoria.

Rachas por encima y por debajo

La prueba anterior no es suficiente para probar la aleatoriedad de una secuencia de nmeros. Para ilustrarlo,
considere la siguiente secuencia:

35, 12, 11, 17, 41, 48, 12, 16, 40, 36, 32, 12, 25, 31, 48, 11,
51, 66, 77, 65, 75, 88, 67, 90, 96, 54, 72, 89, 86, 93, 66, 59

La secuencia de rachas ascendentes y descendentes sera :

--+++-++---+++-+++-++-++-++-+--
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 20

Si se realiza el anlisis de rachas ascendentes y descendentes, (a = 17, A =21, A =5.4, Z=-1.72) se


2

concluye que no hay evidencia para dudar de la aleatoriedad de la secuencia. Sin embargo, esta secuencia no
es aleatoria ya que la primera mitad de los valores estn por debajo de la media (50) mientras que la otra
mitad est por encima. Por lo tanto, se concluye que se debe realizar el anlisis de rachas no slo
ascendentes y descendentes sino tambin por encima y por debajo de la media.

Una racha por encima del valor medio es una sucesin de valores o puntos que estn por encima de su valor
esperado. Una racha por debajo del valor medio es una sucesin de valores o puntos que estn por debajo de
su valor esperado. Al analizar una secuencia de nmeros, le asignaremos un signo + o un 1 a aquellos
valores que estn por encima de 0.5 y un signo - un 0 a aquellos valores que estn por debajo de 0.5.

Sean n1 y n2 el nmero de valores individuales por encima y por debajo de la media. Sea B el nmero total de
rachas por encima y por debajo de la media en una secuencia de n valores. El valor esperado y la varianza
del nmero total de rachas por encima y por debajo del valor medio (B y B ) estn dados por :
2

2 n1 n 2
B 1
n1 n 2

2 n1n 2 (2 n1n 2 n1 n 2)
B
2
(n1 n 2) 2 (n1 n 2 1)
Para n1 o n2 mayores de 20 B tiende a distribuirse normalmente con la media y varianza dadas por las
expresiones anteriores. El estadstico para la prueba sera:

B B
Z
B

donde Z se distribuye normalmente con media cero y varianza unitaria. Si se tiene una secuencia de n
nmeros aleatorios, el mnimo nmero de rachas es uno y el mximo posible es n. Dado que estamos
interesados en la ocurrencia de muy pocas o de demasiadas rachas, se requiere efectuar una prueba de dos
colas para determinar si ha ocurrido alguno de los extremos. Si es el nivel de significancia de la prueba y Z 1-
/2 es el valor de la distribucin normal (0,1) que tiene un rea de 1-/2 hacia la izquierda, rechazamos la
hiptesis de aleatoriedad si Z Z1-/2

Ejemplo : Considere el generador congruencial multiplicativo definido por los siguientes parmetros : a = 899,
c = 0 y M = 32768. Determine si las secuencias generadas pueden considerarse como aleatorias, con base en
la prueba de rachas por encima y por debajo del valor medio. Use un nivel de significancia del 5%.

Para probar la hiptesis anterior, se gener una secuencia de 100 nmeros aleatorios, los cuales se
presentaron en el ejemplo de rachas ascendentes y descendentes presentado anteriormente.

Las rachas por encima y por debajo del valor medio son las siguientes:

++++---+-++++-+-++--++---+------+-++--+--+-+---++
-+-+---+-++++-++++++-+--++-+-+---++--+-+++---+--++
La distribucin del nmero de rachas es la siguiente:

Longitud de Racha 1 2 3 4 5 6 Total B


Nmero de rachas 28 13 6 4 0 2 53

Se tiene entonces : n = 100, B = 53, n1 =50, n2 = 50. La media y la varianza estarn dadas por:
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 21

B

2 x50x50
50 50
1 51

2 x50x50(2 x50x05 50 50)


2B 24.75 4.97
50 502 (50 50 1)
B

Dado que tanto n1 como n2 son mayores que 20, la aproximacin normal es apropiada. Por lo tanto

53 51
Z 0.402
4.97
Dados Z = 0.402, Z0.975 = 1.96, y como Z <Z0.975 no se puede rechazar la hiptesis de la aleatoriedad de la
secuencia, con base en esta prueba.

5.2.1.2. Distribucin de la longitud de Rachas

Hasta ahora hemos estado interesados en el nmero total de rachas que aparecen en una secuencia, sin
interesarnos la longitud de las mismas. En una secuencia de nmeros aleatorios deben aparecer rachas de
diferente longitud, no todas de una misma longitud, para poder aceptar plenamente la aleatoriedad de esta
secuencia. Considere la siguiente secuencia de nmeros:

11, 17, 45, 66, 99, 88, 42, 12, 30, 69, 97, 85, 21, 37, 36, 69, 92, 77, 44, 31, 22,
91, 75, 70, 44, 30, 05, 87, 97, 52, 43, 12, 19, 55, 72, 86, 32, 49, 15, 91, 81, 67

Las rachas por encima y por debajo de la lnea media las podemos representar de la siguiente manera:

---+++---+++---+++---+++---+++---+++---+++

Como se observa, todas las rachas tienen la misma longitud, lo cual nos hace dudar de la aleatoriedad de
esta secuencia. Por lo tanto, adems de las pruebas anteriores, se requiere efectuar otras sobre la
distribucin de la longitud de las rachas que se presentan en una secuencia de nmeros aleatorios.

Sea Li el nmero de rachas de longitud i que aparecen en una secuencia de n nmeros aleatorios. Los valores
esperados, basados en muestras aleatorias estn dados por las siguientes expresiones.

1) Para rachas por encima y por debajo de la media

E L i 2n n1
n
i
n2
n
2
, i= 1, 2, ..., n

2) Para rachas ascendentes y descendentes :

E L i
2
i 3!
n(i 2 3i 1) (i 3 3 i 2 i 4) , in-2

E L i
2
, i= n-1
n!
Se puede usar la prueba de bondad de ajuste chi cuadrado para comparar el nmero observado de rachas de
longitud i con el nmero esperado. Esto es, si Oi es el nmero observado de rachas de longitud i, se puede
usar el siguiente estadstico de prueba :
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 22

k O i E[ L i]2
X 2
i 1 E[ L i]

donde k = n para rachas por encima y por debajo, y k = n-1 para rachas ascendentes y descendentes.

Ejemplo: Considere de nuevo el generador congruencial multiplicativo definido por los siguientes parmetros:
a = 899, c = 0 y M = 32768 y la secuencia de 100 nmeros generada previamente y presentada en los
ejemplos anteriores. Determine si las secuencias generadas pueden considerarse como aleatorias, con base
en las distribuciones de longitudes de rachas, usando un nivel de significancia del 5%.

1) Anlisis de rachas ascendentes y descendentes.

En el ejemplo realizado en la seccin a) se encontraron 42 rachas de longitud 1, 18 de longitud 2, 4 de


longitud 3 y una de longitudes 4 y 5 para un total de 66 rachas. El nmero esperado de rachas ascendentes y
descendentes de las diferentes longitudes est dado por:

E L1
2
1 3!
100(12 3x1 1) (13 3x 12 1 4) = 41.75

E L 2 181
.
E L 3 515
.
E L 4 110
.
E L5 019
.

Dado que el nmero esperado de rachas debe ser mayor o igual que 5 para poder aplicar la prueba chi
cuadrado, es necesario agrupar los resultados de las rachas 3, 4 y siguientes los cuales se calculan como :
66-41.75-18.1 = 6.15. La tabla siguiente resume los principales clculos de la prueba

Longitud de Racha 1 2 3 o mas Total A


Nmero observado de
42 18 4+1+1 66
rachas
Nmero esperado de
41.75 18.10 6.15 66
rachas

O i E ( L i 2 0.001 0.001 0.004 0.006


E ( L i)
2
El valor experimental X es de 0.006. Para dos grados de libertad, y un nivel de significancia del 5% el valor
terico es de 7.378, lo cual lleva a la conclusin de que se puede aceptar la aleatoriedad, dado que no hay
diferencia significativa entre la distribucin de rachas observadas y las esperadas.

2) Anlisis de rachas por encima y por debajo de la media

En el ejemplo realizado en la seccin b) se encontraron 28 rachas de longitud 1, 13 de longitud 2, 6 de


longitud 3, 4 de longitud 4 y dos de longitudes 6 para un total de 53 rachas.

Adems se tiene: n1 = 50
n2 = 50
n =100
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 23

El nmero esperado de rachas por encima y por debajo de la media de las diferentes longitudes est dado
por:

E L i 2n
n1
n
i
n2
n
2

= 2 x100x
50
100
1
50
100
2
25.0

E L 2 12.5
E L 3 6.25
E L 4 3125
.
E L5 15625
.
E L 6 0.78125

Dado que el nmero esperado de rachas debe ser mayor o igual que 5 para poder aplicar la prueba chi
cuadrado, es necesario agrupar los resultados de las rachas 4, 5 y siguientes, los cuales se calculan como :
53 25 - 12.5 - 6.25 = 9.25. La tabla siguiente resume los principales clculos de la prueba

Longitud de Racha 1 2 3 4 o mas Total A


Nmero observado de rachas 28 13 6 6 53
Nmero esperado de rachas 25.0 12.5 6.25 9.25 53

O i E ( L i 2 0.36 0.02 0.01 1.14 1.53


E ( L i)
2
El valor experimental X es de 1.53. Para tres grados de libertad, y un nivel de significancia del 5% el valor
crtico es de 9.348, lo cual lleva a la conclusin de que no se puede rechazar la hiptesis de que los nmeros
sean aleatorios con base en los resultados de esta prueba.

5.2.2 Prueba de autocorrelacin

Las pruebas de autocorrelacin muestran la tendencia de los nmeros a estar seguidos por otros nmeros,
bien de iguales caractersticas, o de caractersticas opuestas, o sin ninguna caracterstica especial. Estamos
interesados en examinar la autocorrelacin para cada secuencia del tipo Ri, Ri+m, Ri+2m,...,. Para realizar la
prueba se define el coeficiente de autocorrelacin m como :

1 nm
m R R
n m i 1 i i m

Para n grande con relacin a m, m se distribuye aproximadamente normal con media y varianza dadas por
las siguientes expresiones

E(m) 0.25
13n 19m
Var ( m)
144 (n m) 2

Si los nmeros son independientes este coeficiente debe tender a 0.25 Como estamos interesados en
detectar cualquier tipo de correlacin (positiva o negativa) se debe realizar una prueba de dos colas. La
independencia se rechaza si Z Z1-/2, donde
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 24

E( m)
Z m
Var ( m)
Ejemplo : Considere el generador congruencial multiplicativo definido por los siguientes parmetros : a = 899,
c = 0 y M = 32768. Determine si las secuencias generadas pueden considerarse como aleatorias, con base en
la prueba de autocorrelacin. Use un nivel de significancia del 5%.

Los resultados fueron presentados en ejemplo anterior:

Los resultados para rezagos de 1, 2, y 3 se presentan en la tabla siguiente

m 1 2 3
m 0.2238 0.2128 0.2048
E(m) 0.25 0.25 0.25
Var(m) 0.090 0.089 0.089
(m) 0.300 0.299 0.298
Z -0.087 -0.125 -0.151

Como Z0.975 = 1.96 no hay ninguna evidencia para dudar de la aleatoriedad de la secuencia generada.

5.2.3 Prueba de Intervalos

La prueba de intervalos (gap test) se emplea para determinar la significancia de los intervalos entre la
ocurrencia de un dgito dado. Si el dgito k est seguido por x dgitos diferentes antes de que aparezca de
nuevo el dgito k, entonces se dice que existe un intervalo de tamao x. Para ilustrarlo, considere los
intervalos que ocurren entre los ceros (0) sucesivos en el siguiente conjunto de dgitos:

4, 8, 9, 7, 9, 8, 3, 3, 3, 9, 9, 0, 6, 3, 0, 3, 3, 4, 4, 3, 5, 3, 8, 2,
9, 5, 5, 2, 5, 1, 5, 4, 8, 7, 9, 0, 6, 4, 8, 9, 2, 3, 9, 6, 0, 1

El cero ocurri cuatro veces. Por lo tanto existen tres intervalos. El primer intervalo es de longitud dos, el
segundo de longitud 20 y el tercero de longitud 8.

Para el propsito de esta prueba estamos interesados en la frecuencia con que ocurren los diferentes
intervalos. En general, para cualquier dgito dado k la probabilidad de que ese dgito est seguido por x dgitos
diferentes de k antes de que k ocurra de nuevo, est dada por :
k
P(x/k) = P(k seguido por x dgitos diferentes de k, y luego por k) = (0.9) (0.1), k = 0, 1,2, ...

Para una secuencia dada de dgitos, se registra el nmero de veces que ocurren intervalos de 0, 1,2, 3,...,.
Este procedimiento se aplica para cada dgito entre 0 y 9. Despus de registrar la frecuencia con que cada
intervalo ocurre, se compara la frecuencia relativa acumulada observada con la frecuencia relativa acumulada
esperada mediante la prueba Smirnov Kolomogorov. Bajo la suposicin de que los dgitos estn ordenados
aleatoriamente, la funcin de distribucin est da dada por:

x x
x 1
(09
j
F X
( x) P( j) . ) (01. ) 1 (09
. )
j 0 j 0
Ejemplo: Basado en la frecuencia con que ocurren los intervalos determine si puede suponerse que los
siguientes dgitos estn ordenados aleatoriamente. Use = 0.05.

2, 9, 3, 1, 6, 3, 0, 4, 6, 3, 2, 8, 7, 0, 8, 1, 3, 1, 8, 3, 6, 0, 7, 9, 6, 1, 3, 4, 8, 6, 3, 4, 9, 1, 4, 2,
8, 1, 0, 5, 5, 9, 2, 3, 1, 4, 0, 5, 8, 8, 9, 8, 3, 9, 9, 3, 3, 5, 9, 1, 1, 5, 3, 6, 8, 4, 7, 7, 9, 6, 0, 4,
0, 6, 0, 5, 7, 3, 1, 5, 9, 5, 4, 0, 1, 4, 6, 0, 0, 5, 4, 6, 2, 4, 8, 4, 2, 0, 5, 4, 4, 1, 0, 2, 0, 5, 4, 1,
3, 7, 5, 3, 3, 1, 6, 7, 1, 0, 2, 9, 6, 7, 0, 1, 7, 7
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 25

Como la prueba debe realizarse para cada dgito y registrarse la frecuencia con que se presenta cada
intervalo para cada uno, entonces, el nmero de intervalos registrados ser igual al total de valores analizados
menos 10, dado que cada dgito debe aparecer al menos una vez. Para nuestro caso se tiene:

Total de intervalos = 125 - 10 = 115

La tabla siguiente resume los resultados de la prueba para la secuencia anterior

Longitud del Frecuencia Frecuencia FX (x) | FX (x) - SN (x) |


intervalo absoluta relativa
acumulada Sn(x)
0-2 27 0.234 0.271 0.027
3-5 30 0.495 0.469 0.026
6-8 33 0.675 0.613 0.082
9 - 11 11 0.792 0.718 0.074
12 - 14 8 0.860 0.794 0.066
15 - 17 3 0.888 0.850 0.038
18 - 20 2 0.905 0.891 0.014
21 - 23 3 0.931 0.920 0.011
24 - 26 1 0.940 0.942 0.002
27 - 29 1 0.948 0.958 0.010
30 - 32 2 0.965 0.969 0.004
33 - 35 1 0.974 0.978 0.004
36 - 38 1 0.983 0.984 0.001
39 - 41 0 0.983 0.988 0.005
42 - 44 1 0.990 0.991 0.001
45 - 47 0 0.990 0.994 0.004
48 - 50 1 1.000 0.995 0.005

La diferencia mxima absoluta es 0.082 y la desviacin mxima permitida es 1.36/(115) = 0.127, lo cual nos
lleva a aceptar la hiptesis de que los dgitos estn ordenados aleatoriamente.

Esta prueba no est relacionada directamente con los nmeros aleatorios en s sino con los dgitos que los
conforman.

5.3 Nivel de significancia

Si se aplican k pruebas diferentes a una serie de nmeros aleatorios y el nivel de significancia de cada prueba
es i, entonces el nivel de significancia total de la prueba T est dado por :

k
T
1 1 i
i 1
k
1 1 1 1
k
Si 1 = 2 = 3 =... =k = entonces
T
i 1
Esto es, si la hiptesis nula para cada prueba es en efecto verdadera, la probabilidad de que una o ms de
estas pruebas sea rechazada es T. Por consiguiente, para un nivel total de significancia dado T, el error i
de cada prueba estar dado por:

i 1 1 T 1/ k
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 26

Ejemplo: Se aplican cinco pruebas diferentes a una serie de nmeros. La probabilidad de rechazar
incorrectamente una prueba es 0.05, entonces el error total para la prueba ser de:

T = 1-(0.95) = 0.226
5

Si se quisiera un error mximo del 5% para todas las pruebas en conjunto, entonces cada prueba debera
tener un nivel de significancia i del 1%, segn se deduce de la siguiente expresin :

i = 1- (0.95)
1/5
= 0.01

Problema: Se dice que las tres o cuatro ltimas cifras de cada nmero del directorio telefnico puede utilizarse
como un nmero aleatorio. Demuestre que el directorio telefnico sirve como un generador de nmeros
aleatorios.

Indicacin: Tome al azar una pgina y extraiga, en forma sucesiva, un centenar de nmeros telefnicos, sin
considerar los dos primeros dgitos, y aplique las pruebas expuestas en los prrafos anteriores.

6 Algunos generadores de nmeros aleatorios

Debe tenerse mucho cuidado cuando se usan generadores de nmeros aleatorios en microcomputadores o
en algunos compiladores de uso general, ya que algunos de ellos no han sido probados muy extensamente y
presentan resultados no muy deseables.

A continuacin se presentan algunos generadores que se han usado en algunos programas de simulacin o
en rutinas cientficas.

6.1 Generadores Congruenciales lineales

Generador de Coveyou y MacPherson (mquina UNIVAC)


15 35
a=5 ,c=1ym=2

Generador propuesto por Kobashy para mquinas IBM y aplicable a muchos minicomputadores
31
a = 314,159,269, c = 453,806,245 y m = 2
e
6.2 Generadores Congruenciales multiplicativos (c = 0) con mdulo m = 2

15
RANDU: a = 899, m = 2 = 32768 (Propiedades estadsticas buenas)

16 31
RANDU: a = 5 + 3 = 65539, m = 2 (Propiedades estadsticas indeseables)
e
6.3 Generadores Congruenciales multiplicativos (c = 0) con mdulo m = 2 1

Lews, Goodman y Millery (1969) en el paquete LLRANDOM de Learmonth y Lewis (1973) y en el


generador RNUM del paquete IMSL (1987):
5
a = 7 = 16807
a = 630,360,016

Generadores en programas de simulacin

GPSS/H: a = 742,938,285
GPSS/PC: a = 397,204,094
SIMAN: a = 16807
SIMCRIPTII.5: a = 630,360,016
SLAM II a = 16807
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 27

Otros generadores . Valores del multiplicador a:

950,706,376
742,938,285
1,226,874,159
62,089,911
1,343,714,438

7 Problemas

3.1 Genere 200 nmeros aleatorios, por medio de un computador, de acuerdo con el mtodo que usted
considere apropiado.

a) Pruebe si esos nmeros se distribuyen uniformemente en el intervalo (0.1) por medio de la prueba
chi-cuadrado o de la Smirnov Kolmogorov..
b) Verifique si la secuencia generada es independiente, mediante la aplicacin de diferentes pruebas
estadsticas.
c) Repita el proceso anterior para diferentes tamaos de muestra y analice el comportamiento de su
generador (muestras de 20, 50, 100, 500, 1000 nmeros).

3.2 Para los siguientes generadores congruenciales multiplicativos, calcule X i para valores suficientes de i
1 para cubrir un ciclo completo
a) Xi = (11 Xi-1 )Mod 16, X0 = 1
b) Xi = (11 Xi-1 )Mod 16, X0 = 2
c) Xi = (2 Xi-1 )Mod 13, X0 = 1
d) Xi = (3 Xi-1 )Mod 13, X0 = 1

3.3 Sin calcular ningn Xi determine cual de los siguientes generadores congruenciales lineales tiene
perodo completo
a) Xi = (13 Xi-1 +13)Mod 16
b) Xi = (12 Xi-1 +13)Mod 16
c) Xi = (13 Xi-1 +12)Mod 16
d) Xi = (Xi-1 +12)Mod 16

3.4 Analice el comportamiento del siguiente generador de nmeros aleatorios. Lo considera usted
adecuado?
Xi = (3 Xi-1 + 7) mod 1056

3.5 Suponga que Usted ha diseado un generador que le produce nmeros aleatorios R (en el rango 0,1).
Sea p un nmero entre 0 y 1. Suponga que Usted ha generado una secuencia, dada por R1, R2, ..., Rn.
Considere la secuencia formada por

R = (1 - R )/( 1 - p).

Considera Usted que la secuencia de nmeros obtenida a partir de R puede considerarse como una
secuencia de nmeros aleatorios?

3.6 Analice el comportamiento del siguiente generador de nmeros aleatorios. Lo considera usted
adecuado?

Xi = (3 Xi-1 + 7) mod 1056

3.7 Demuestre que la suma de dos nmeros aleatorios independientes (0, 1), mdulo 1, es de nuevo
uniforme (0, 1)

3.8 Determine con un nivel de confianza del 95% usando varias pruebas si la siguiente lista de nmeros
corresponde a una muestra aleatoria
B. Caldern. Introduccin a la Simulacin. Cap 3. Generacin de nmeros aleatorios 3 - 28

0.88 0.53 0.42 0.39 0.80 0.54 0.53 0.28 0.34 0.50 0.90 0.80
0.82 0.01 0.91 0.15 0.79 0.16 0.10 0.35 0.02 0.21 0.05 0.10
0.36 0.81 0.80 0.04 0.24 0.90 0.50 0.26 0.49 0.53 0.26 0.03
0.53 0.63 0.66 0.45 0.73 0.62 0.36 0.23 0.17 0.38 0.67 0.03

3.9 Suponga que Usted ha diseado un generador que le produce nmeros aleatorios R (en el rango 0,1).
Sea p un nmero entre 0 y 1. Suponga que Usted ha generado una secuencia, dada por R1, R2, ..., Rn.
Considere la secuencia formada por

R = R / p

Considera Usted que la secuencia de nmeros obtenida a partir de R puede considerarse como una
secuencia de nmeros aleatorios?

3.10 Considere la siguiente secuencia de nmeros aleatorios que fueron generados mediante un mtodo
congruencial. Pruebe que tan adecuado es este generador usando las siguientes pruebas estadsticas.
Use un nivel de significancia del 5%, con 10 intervalos de clase, prueba Chi-cuadrado y nmero de
rachas ascendentes y descendentes. Los nmeros estn amplificados por un factor de 1000.

913 661 889 378 721 671 508 214 167 534 341
449 604 228 141 966 233 562 927 159 830 662
081 143 870 429 211 307 485 254 591 274 894
808 899 191 677 804 088 676 603 415 850 401
025 096 457 502 156 449 709 613 511 476 867
356 766 182 634 332 310 981 958 498 133 361
808 340 686

Pruebas estadsticas presentadas en el libro de Averil Law


Generador de Averill Law

You might also like