You are on page 1of 22

INGENIERIA EN SISTEMAS DE INFORMACION

SIMULACIÓN - 4º AÑO - AÑO 2019


VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

CONTENIDOS

1. Introducción a la generación de números aleatorios .................................................................. 1

2. Uso y aplicaciones de los números aleatorios ............................................................................. 3

3. Generación de números pseudoaleatorios ................................................................................. 4

a. Generadores congruenciales lineales ....................................................................................... 5


i. Generadores Congruenciales Multiplicativos ....................................................................... 6
ii. Generadores Congruenciales Mixtos .................................................................................... 6
iii. Elección de los parámetros a, c, m y x0. ........................................................................... 6
b. Método Del Cuadrado Medio ................................................................................................... 7
4. Pruebas estadísticas para comprobar la aleatoriedad de la sucesión ......................................... 8

a. Prueba de CHI-CUADRADO ..................................................................................................... 10


b. Prueba de KOLMOGOROV-SMIRNOV ..................................................................................... 12
c. Prueba Serial ........................................................................................................................... 14
d. Test de rachas ......................................................................................................................... 16
e. Prueba de Poker ...................................................................................................................... 17
5. Generación de variables aleatorias............................................................................................ 18

a. Método de la Transformada Inversa ...................................................................................... 19


b. Método de Aceptación-Rechazo ............................................................................................. 21

1. Introducción a la generación de números aleatorios

El mundo real es muy raro que sea determinístico, al estudiar un sistema y sus influencias externas como la
llegada de clientes a un banco y el comportamiento del sistema como el tiempo de servicio bancario, tienen
un comportamiento aleatorio o probabilístico. En la construcción de un modelo de simulación bancario es
necesario reproducir los efectos aleatorios del sistema, por lo cual es necesario incursionar en la genera-
ción de números aleatorios o pseudoaleatorios, como también la manera de poderlos generar y probar que
dichos números tengan la aleatoriedad deseada.
El tiempo de servicio bancario varía dependiendo del tipo de transacciones que el cliente realice. Los datos
históricos obtenidos en un banco tan solo se puede recopilar una muestra de una población desconocida,

Ing.Castellanos Pág. Nº 1
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
siendo estos datos limitados debido al tiempo y los costos que se requieren, En ocasiones no existe real-
mente el sistema (un banco que desea abrir una nueva sucursal) o la imposibilidad de obtener datos reales,
o la obtención de grandes volúmenes de datos que originan un procesamiento lento o vuelve complejo el
modelo a construir.
La obtención artificial de los datos del tiempo de servicio viene a simplificar el modelo, partiendo de una
muestra significativa. A continuación se incursiona en el estudio de la aleatoriedad y las pruebas estadísti-
cas para garantizar que se cuenta con un generador confiable.
Un número aleatorio es el resultado de una variable al azar especificada por una función de probabilidad.
Cuando no se especifica una función de probabilidad, se supone que sigue una distribución uniforme en el
intervalo entre cero y uno.
Existen números aleatorios no uniformes los cuales pueden ser generados a partir de números aleatorios
uniformes. Por lo cual es importante enfocarse primero a la generación de números aleatorios uniformes,
para luego profundizar en la generación de números aleatorios no uniformes.
Los números aleatorios uniformes son utilizados ampliamente en el proceso de simulación para representar
eventos tales como llegadas de clientes o servicio proporcionado.
Existen tres maneras ampliamente conocidas:
1. Provisión externa
2. Generación interna basada en un proceso físico
3. Generación interna basada en una relación de recurrencia.

1. Provisión Externa. Se usan tablas de números previamente calculados, se requiere el almacenamiento de


dichos números, un ejemplo son las Tablas RAND. El Proyecto RAND inicio después de la II Guerra Mundial
por la Iniciativa de la Compañía de Aviación Douglas ubicada en Santa Mónica California, con el propósito
de continuar las investigaciones de los científicos reclutados durante la guerra. Las investigaciones fueron
para la Fuerza Aérea de Estados Unidos de Norteamérica y enfocadas exclusivamente a la seguridad nacio-
nal. A partir de 1948 el proyecto RAND se separó de La Compañía de aviación Douglas y se convirtió en
Rand Corporation, siendo por más de seis décadas una organización sin fines de lucro dedicada a promover
la ciencia y la educación realizando análisis científico para hacer un mundo más seguro, saludable y más
próspero.
2. Generación interna basada en un proceso físico. En esta generación se requiere conectar un dispositivo
especializado a una computadora, ya que por medio de este dispositivo pueda proporcionar los números
aleatorios. Esta técnica de generación es utilizada en simulaciones que requieren observar el ambiente
físico y usualmente se utilizan interfaz analógica - digital las cual requieren de inversiones más costosas y
tardan más tiempo en implementarse.
3. Generación interna basada en una relación de recurrencia. Es la generación más utilizada en los procesos
de simulación. Una relación de recurrencia es una ecuación que define una secuencia recursiva donde cada
término de la secuencia es definida como una función de los términos anteriores. Las relaciones de recu-
rrencia son ampliamente utilizadas en la teoría de la probabilidad.

La generación de números aleatorios es necesario que tenga las siguientes características:

Ing.Castellanos Pág. Nº 2
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
 Que sean uniformemente distribuidos
 Estadísticamente independientes
 Reproducibles
 Periodo Largo
 Generados de manera rápida
 Que no requiera gran capacidad de almacenamiento
Por lo que es común utilizar la relación de recurrencia la cual cumple con estos requisitos, aunque algunos
autores han observado que dichos números son pseudoaleatorios (no son puramente aleatorios) por haber
sido generados por relaciones de recurrencia apoyadas en reglas deterministas.

2. Uso y aplicaciones de los números aleatorios

Los generadores de números pseudoaleatorios son ampliamente utilizados en campos tales como el mode-
lado por computadora, estadística, diseño experimental, etc. Algunas de estas secuencias son lo suficien-
temente aleatorias para ser útiles en estas aplicaciones.
Una de las utilidades principales de los números pseudoaleatorios tiene lugar en los campos de la criptogra-
fía y la esteganografía. Por ello se sigue investigando en la generación de dichos números, empleando por
ejemplo medidores de ruido blanco o analizadores atmosféricos, ya que experimentalmente se ha compro-
bado que tienen una aleatoriedad bastante alta.
Asimismo, también destacan su uso en el llamado Método de Montecarlo, con múltiples utilidades, por
ejemplo, para hallar áreas / volúmenes encerradas en una gráfica y cuyas integrales son muy difíciles de
hallar o irresolubles; mediante la generación de puntos basados en estos números, podemos hacer una
buena aproximación de la superficie /volumen total, encerrándolo en un cuadrado / cubo, aunque no lo
suficientemente buena.
Un campo donde resulta imprescindible, es en la programación de juegos, donde a menudo se necesita
disponer de series elegidas al azar. Por ejemplo para crear nubes con patrones diferentes según escenarios.
Esto es aún más necesario en aquellos juegos donde el azar es primordial (como juegos donde el azar está
implícito en la propia dinámica del juego, por ejemplo juegos de cartas, que necesitan ser barajadas) o in-
cluso una cuestión que garantice la fiabilidad para dotar al juego de imparcialidad, como en los casos donde
en esos juegos se realizan apuestas económicas.
A modo de resumen, se puede sintetizar alguna de las aplicaciones de números pseudoaleatorios para:
 Simular las entradas de aquellas variables aleatorias (no determinísticas).
 Juegos o teoría de decisiones.
 Cálculo numérico (por ejemplo en la resolución de integrales).
 Teoría del muestreo (aquellos casos en los que sea demasiado costoso realizar la muestra).
 Programación (generación de entradas para realizar las pruebas de los algoritmos y progra-
mas).

Ing.Castellanos Pág. Nº 3
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
 Generadores de números aleatorios en lenguaje C, C++, Delphi o Java, utilizan métodos con-
gruenciales lineales (como se verá a continuación).

3. Generación de números pseudoaleatorios

Un paso clave en simulación es tener rutinas que generen variables aleatorias con distribuciones especifi-
cas: exponencial, normal, etc. Esto es hecho en dos fases. La primera consiste en generar una secuencia de
números aleatorios distribuidos uniformemente entre 0 y 1. Luego esta secuencia es transformada para
obtener los valores aleatorios de las distribuciones deseadas.
Para comprender porque un generador puede ser considerado mejor que otro es necesario saber cómo
operan los mismos. El método más común es generar el siguiente número a partir de los últimos números
generados:
xn=f (xn-1, xn-2, …)
Por ejemplo:
xn=(5xn-1+1) mod 16

Si comenzamos con x0 = 5 los primeros 32 números generados son: 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14,
7, 4, 5, 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5. Las x son enteros entre 0 y 15, y si las dividimos entre
16 obtenemos una secuencia de números aleatorios entre 0 y 1: 0.6250, 0.1875, 0.0000, ...
Si conocemos f podemos generar la secuencia en cualquier momento si tenemos el valor de x 0. El valor
usado para comenzar la secuencia es llamado semilla, f es determinística. Dada la semilla se puede prede-
cir con probabilidad 1 los números de la secuencia. Sin embargo, los números son aleatorios en el sentido
de que pasan pruebas estadísticas de aleatoriedad y por esto son llamados pseudo-aleatorios. En muchos
casos se prefieren estos números en vez de los completamente aleatorios ya que es necesario repetir las
secuencias en distintos experimentos. Si deseamos otra secuencia simplemente cambiamos la semilla.
En el ejemplo la secuencia tiene un ciclo y la longitud del ciclo es 16.
Las propiedades deseadas del generador son las siguientes:
1. Deben ser eficientes computacionalmente: dado que típicamente se requieren varios miles de
números aleatorios por corrida, el tiempo de procesador requerido para generarlos debe ser pe-
queño.
2. El periodo debe ser largo: periodos cortos limitan la longitud aprovechable de una corrida de si-
mulación porque el reciclaje resulta en una repetición de secuencias de eventos.
3. Los valores sucesivos deben ser independientes y uniformemente distribuidos: la correlación en-
tre números sucesivos debe ser pequeña y si es significante indica dependencia.

Las primeras dos propiedades son relativamente fáciles de implementar. La tercera requiere un conjunto
de pruebas estadísticas.

En general la mayoría de los métodos (generadores) comienzan con un número inicial (semilla), a este nú-
mero se le aplica un determinado procedimiento y así se encuentra el primer número random. Usando este
número como entrada, el procedimiento es repetido para lograr un próximo número random.
Ing.Castellanos Pág. Nº 4
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

Para generar números pseudoaleatorios basado en una relación de recurrencia existen varios esquemas,
siendo el de Derrick Henry Lehmer uno de los más utilizados en las computadoras. En el ano de 1940 Leh-
mer desarrollo el primer generador de números pseudo aleatorios denominado congruencial lineal.
El generador congruencial lineal genera una secuencia de números pseudo aleatorios en la cual el próximo
número pseudo aleatorio es calculado a partir del último numeropseudo aleatorio generado. Es decir Xn+1
se deriva del numero Xn.
Los generadores congruenciales lineales más populares son el congruencial mixto y el congruencial multi-
plicativo.
a. Generadores congruenciales lineales
Estos son métodos que se encuadran dentro de lo que se conoce como computación digital. Dada una fun-
ción y una semilla, se van generando los números aleatorios.
Ventajas:
 Rapidez.
 Pocos requerimientos de almacenamiento.
 Las series obtenidas son reproducibles.
Inconvenientes:
 Los números obtenidos no son independientes.

A los números obtenidos mediante dichos métodos se les conoce como números pseudoaleatorios, dado
que, como se ha mencionado más arriba, los números obtenidos están uniformemente distribuidos pero no
son independientes.

El generador congruencial mixto utiliza la siguiente relación de recurrencia:

xn 1  (axn  b) mod m 0  xn  m n

En el generador distinguimos cuatro elementos:

 x0, es el valor inicial o semilla, x0 > 0.


 a, multiplicador, 0 <= a < m.
 b, incremento o constante aditiva, 0 <= b < m.
 m, módulo.

Se llama periodo a la subcadena, dentro de la serie generada, en la que no hay repeticiones de números y
longitud de periodo al número de elementos de dicha subcadena. Cuando la longitud del período coincide
con el modulo, se dice que el generador es de ciclo completo.

La repetición de números en la serie puede ser aleatoria, pero dado el método utilizado para la generación
de las mismas, en el momento en el que se repite un valor ya empieza a repetirse todo el periodo, por lo
que interesan métodos que garanticen longitudes de periodo grandes.

Podemos distinguir dos tipos de estos generadores que se diferencian en el valor del incremento.

Ing.Castellanos Pág. Nº 5
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
i.
Generadores Congruenciales Multiplicativos

En ellos el incremento o constante aditiva b es 0.

x n 1  axn mod m

ii. Generadores Congruenciales Mixtos

En ellos el incremento o constante aditiva b es distinto de 0. Fueron introducidos por Thomson hacia 1958.

xn 1  (axn  b) mod m

Los primeros presentan la ventaja de ser más rápidos, al tener que realizar menos operaciones en el cálculo
de los elementos. Sin embargo, la longitud de periodo que se alcanza en las series generadas por ellos son
menores que la alcanzadas en las series generadas por los segundos.

Se puede observar que la selección del multiplicador, incremento y módulo afectan el periodo y la auto
correlación en la secuencia.

Ejemplo. Dado los valores de a=5, c=7, m=8 y X0=4 construir una secuencia de números pseudoaleatorios, y
determinar el periodo que tiene esta secuencia.

iii. Elección de los parámetros a, c, m y x0.

El Dr. Donald Knuth en los 60s propuso la regla para la selección de a, c, y m y X0, lo cual arroja una buena
secuencia de números. Hoy en día los generadores más eficientes tienen m = 232 para computadoras de 32
bits y m= 264 para computadoras de 64 bits, debido a que es el valor máximo para calcular la operación de
modulo debido a truncamiento. La siguiente tabla muestra los parámetros utilizados por las funciones
rand() predefinidas en los principales compiladores comerciales.

Ing.Castellanos Pág. Nº 6
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

Fig. Tabla de Parámetros de recurrencia usados por compiladores comerciales

Entre los resultados de los estudios realizados con estos generadores congruenciales mixtos tenemos:

1. El modulo m debe ser grande. Dado que los x están entre 0 y m-1, el periodo nunca puede ser mayor que
m.

Si m 25 y el ciclo es completo, la serie generada tendrá los números 0, 1, 2, 3 …31

Una cuestión de interés es cómo elegir los parámetros del generador de forma que este tenga ciclo com-
pleto.

2. Para que el computo de m sea eficiente, m debe ser una potencia de pd, p es la base del sistema (deci-
mal, binario, hexadecimal).

3. Un generador congruencial mixto tiene periodo completo si y sólo si se cumplen las siguientes condicio-
nes (El siguiente teorema, propuesto por Hull y Dobell (1962) proporciona una caracterización en este sen-
tido):

 m y b son primos entre sí (no tengan factores comunes excepto el 1).


 Si q es un número primo que divide a m, entonces q divide a (a-1).
 Si 4 divide a m, entonces 4 divide a (a-1).

b. Método Del Cuadrado Medio


Es un método propuesto en los años 40 por los matemáticos John von Neumann y Nicholas Metropolis,
siendo utilizado para la generación de números pseudoaleatorios. La sucesión de números básicamente se
obtienen a partir de recurrencia.
El procedimiento consiste en que cada número de una sucesión es producido tomando los dígitos medios
de un número obtenido mediante la elevación al cuadrado, de acuerdo al siguiente detalle:

 Se define una semilla.


 Se eleva la semilla al cuadrado.

Ing.Castellanos Pág. Nº 7
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
 Dependiendo de la cantidad de dígitos que se desea tenga el número pseudoaleatorio, se to-
man de la parte central del número resultante, el número de dígitos requeridos. Si no es posi-
ble determinar la parte central, se completa el número agregando ceros al principio o al final.
 Para obtener números pseudoaleatorios entre 0 y 1, en consecuencia el resultado se debe
normalizar, es decir, si los números son de dos dígitos se normaliza dividiendo por 100, si es de
tres dígitos por mil y así sucesivamente.
 El procedimiento se repite, tomando la parte central del número obtenido en el párrafo ante-
rior para obtener el siguiente número.

Algunas desventajas del método:


 Tiene una fuerte tendencia a degenerar a cero rápidamente.
 Los números generados pueden repetirse cíclicamente después de una secuencia corta.
La utilización de números primos puede generar ciclos más largos en la generación de números pseudoa-
leatorios

Ejemplo. Generar 3 números aleatorios de 4 dígitos.

X0 = 5497

X02 = (5497)2 = 30.217.009 ===> X1 = 2170


R1 = 0.2170 Se normaliza dividiendo el número x1 obtenido por 1000

X12 = (2170)2 = 04.708.900 ===> X2 = 7089


R2 = 0.7089

X22 = (7089)2 = 50.253.921 ===> X3 = 2539

4. Pruebas estadísticas para comprobar la aleatoriedad de la sucesión

Es importante asegurarse de que el generador usado produzca una secuencia suficientemente aleatoria.
Para esto se somete el generador a pruebas estadísticas. Si no pasa una prueba, se puede asumir que el
generador es malo. Pasar una prueba es una condición necesaria pero no suficiente. Un generador puede
pasar una prueba y luego no pasarla si se usa otra semilla u otro segmento del ciclo.
La hipótesis de rechazar o no un generador es el objetivo de estas pruebas estadísticas. Garantizar que se
cuenta con un generador confiable, es un requisito inicial que se debe examinar.
Existen una gran cantidad de pruebas estadísticas las cuales parten de la idea de analizar estadísticamente
los números pseudo aleatorios los cuales se presume tienen un comportamiento uniforme.
Existe una gran gamma de pruebas de aleatoriedad, algunas simples de implementar computacionalmente,
otras más complejas.

Ing.Castellanos Pág. Nº 8
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
Se describirán pruebas para números aleatorios uniformemente distribuidos, aunque muchas de las prue-
bas también pueden ser usadas para probar variables aleatorias.
Lo primero en la prueba de un generador, es graficar y observar las distribuciones de un histograma y la
frecuencia acumulada.
Por ejemplo, se toman 200 números aleatorios obtenidos de un generador.
La tabla de frecuencias es:

Tabla de Frecuencias

El histograma de frecuencias relativas es:

Este valor surge de dividir 10 (tabla de frecuencia)/200=0.05

El gráfico de frecuencia acumulada es:

Se observa que los gráficos son los esperados. Todas las frecuencias en el histograma son aproximadamen-
te 0.05 y el gráfico de las frecuencias acumuladas es aproximadamente una línea recta de 45°.

Una vez que se han generado los valores pseudoaleatorios según la distribución uniforme se debe compro-
bar que efectivamente están uniformemente distribuidos, lo que significa que son uniformes e indepen-
dientes.

Se estudiarán las siguientes pruebas de aleatoriedad:

Uniformidad:
Ing.Castellanos Pág. Nº 9
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

 Prueba de la
 Prueba de Kolmogorov-Smirnov
 Prueba Serial
Independencia:
 Test de rachas
 Prueba de Poker entre otras.

a. Prueba de CHI-CUADRADO

La prueba chi-cuadrada también conocida como la prueba de Pearson o la prueba de frecuencias es una
prueba de bondad de ajuste que establece si difiere o no la frecuencia observada de una distribución teóri-
ca. El inglés Karl Pearson desarrollo a principios del siglo XX esta prueba, y hasta la fecha tiene muchas apli-
caciones en el campo estadístico.
La prueba chi-cuadrada es una de las pruebas más útiles y ampliamente utilizadas en la estadística. La dis-
tribución Chi-Cuadrada es en teoría una distribución matemática que se aplica ampliamente en el trabajo
estadístico. El termino Chi-cuadrada proviene del uso de la letra griega χ el cual se pronuncia ji o chií y es el
que define a esta distribución. Esta es la prueba más comúnmente usada.
La hipótesis nula y alternativa son las siguientes:

H 0 : FOi  FE i
H 1 : FOi  FE i
En general, puede ser usada para cualquier distribución. A partir de un histograma, se comparan las fre-
cuencias observadas con las frecuencias obtenidas de la distribución específica (frecuencias esperadas),
para un total de N números aleatorios. Si el histograma tiene k celdas o intervalos, y FOi y FEi son las fre-
cuencias observadas y esperadas respectivamente para la i-esima celda, la prueba consiste en calcular
K
( FO I  FE I )2
 02  
I 0 FE I

Si el ajuste es exacto, es cero, pero por aleatoriedad no lo será. Se puede demostrar que tiene
distribución chi-cuadrado con k-1 grados de libertad.

Se aceptará que los datos tienen la distribución en prueba con un nivel de significancia  si:

 02   2 ;k 1

Estrictamente hablando, la prueba de chi-cuadrado está diseñada para distribuciones discretas y para
muestras grandes. Para distribuciones continuas la chi-cuadrado es solo una aproximación y el nivel de
significación se aplica solo sí n   .
Ing.Castellanos Pág. Nº 10
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
Uno de los problemas de esta prueba es la selección de los límites de las celdas. Esto puede afectar las con-
clusiones y no hay reglas exactas para seleccionar su tamaño. Para darnos cuenta de la situación, conside-
remos los dos histogramas siguientes, ambos construidos a partir de los mismos datos. En el de la izquierda
difícilmente se puede llegar a la conclusión de que los datos provienen de una población uniforme. Si va-
mos al de la derecha, en donde tenemos los mismos datos pero reagrupados, la historia es otra y en este
caso no tenemos dudas de la uniformidad; la prueba de chi-cuadrado da un ajuste perfecto.

Ejemplo. Se desea realizar la prueba de chi-cuadrada a una secuencia de 100 números pseudoaleato-
rios de la siguiente tabla:

Se cuenta con 100 números por lo que N=100, y se determina arbitrariamente 5 subintervalos (n=5), k=5.
Se calcula la frecuencia esperada y observada.
FE = 100/5 = 20, por lo que la FE1= FE2= FE3= FE4=FE5=20.
Se contabiliza las frecuencias observadas en cada uno de los 5 subintervalos, y se obtiene:

i Subintervalo FOi FEi


1 [0;0.2) 20 20
2 [0.2;0.4) 18 20
3 [0.4;0.6) 21 20
4 [0.6;0.8) 20 20
5 [0.8;1) 21 20

El estadístico muestral es:

Ing.Castellanos Pág. Nº 11
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
K
( FO I  FE I )2
 02    0.3
I 0 FE I

El estadístico teórico de la tabla de chi-cuadrada, tomando como  =5%=0.05 y 5-1 grados de libertad es:

 02.05; 4  9.49
Se deben comparar los estadísticos para decidir si se rechaza o no la hipótesis.
 02  0.3   02.05; 4  9.49 NO se rechaza

b. Prueba de KOLMOGOROV-SMIRNOV

La prueba de Kolmogorov-Smirnov también conocida como la prueba K-S, trata de determinar si dos con-
juntos de datos difieren significativamente.
La prueba de Kolmogorov-Smirnov se utiliza para probar la bondad del ajuste de una distribución de fre-
cuencia teórica, es decir, si existe una diferencia significativa entre la distribución de la frecuencia observa-
da y la distribución de frecuencia teórica (esperada). La diferencia entre la FDA (Función de Distribución
Acumulada) observada y la FDA esperada FX(x) debe ser pequeña.
La prueba K-S compara la función de distribución (probabilidad acumulada) teórica con la observada, y cal-
cula un valor de discrepancia, representado habitualmente como D, que corresponde a la discrepancia má-
xima en valor absoluto entre la distribución observada y la distribución teórica, proporcionando asimismo
un valor de probabilidad P, que corresponde, si estamos verificando un ajuste a la distribución normal, a la
probabilidad de obtener una distribución que discrepe tanto como la observada si verdaderamente se hu-
biera obtenido una muestra aleatoria, de tamaño n, de una distribución normal.
Si esa probabilidad es grande no habrá por tanto razones estadísticas para suponer que nuestros datos no
proceden de una distribución, mientras que si es muy pequeña, no será aceptable suponer ese modelo
probabilístico para los datos.

Dada una sucesión de números, se debe ordenar los mismos. y(j) = j ésimo valor más pequeño, y(1) < y(2) <
….. < y(n).

Para cada y(i) se obtiene la distribución empírica Fe(x), donde Fe(xi)=i/n

Gráficamente:

Ing.Castellanos Pág. Nº 12
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

Para cada valor se establece la diferencia entre el valor de la sucesión y el valor de la distribución empírica
correspondiente. Se selecciona el máximo valor y se compara con el estadístico Dn,  .
i
Luego, se determina sí y   Dn,  . Aplica el criterio de decisión:
n max

 Si el valor calculado es menor que Dn,  se acepta la hipótesis nula (Ho) que establece que la serie de
datos se ajusta a la distribución teórica escogida.
 Si el valor calculado es mayor que Dn,  se rechaza la hipótesis nula (Ho) y se acepta la hipótesis alter-
nativa (Ha) que establece que la serie de datos no se ajusta a la distribución teórica escogida.

Ejemplo. Dada una secuencia de números aleatorios (N=16):

0,05 0,46 0,84 0,41 0,72 0,24 0,68 0,62


0,11 0,92 0,18 0,21 0,5 0,61 0,77 0,76

Se calcula la Distribución Empírica. Primera columna de la tabla i/N.


Se orden los números aleatorios en forma ascendente. Segunda columna de la tabla Nro. Aleatorio.
Se calcula en valor absoluto la diferencia entre el valor de celda de la primera columna y el valor de celda
de la segunda columna. abs(i/N - Num Aleat).
Se selecciona el mayor valor de la tercera columna, 0.105
Como 0.105 <= D(0.20;16) = 0,2577 Se acepta la secuencia de números

I/N Nro. Aleatorio abs(i/N - Num Aleat)


0,0625 0,05 0,0125
0,125 0,11 0,015
0,1875 0,18 0,0075
0,25 0,21 0,04
0,3125 0,24 0,0725
0,375 0,41 0,035
0,4375 0,46 0,0225
Ing.Castellanos Pág. Nº 13
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
0,5 0,5 0
0,5625 0,61 0,0475
0,625 0,62 0,005
0,6875 0,68 0,0075
0,75 0,72 0,03
0,8125 0,76 0,0525
0,875 0,77 0,105
0,9375 0,84 0,0975
1 0,92 0,08

c. Prueba Serial

El concepto de uniformidad puede ser extendido a k dimensiones. Por este motivo, esta prueba es usada
para probar uniformidad en dos o más dimensiones. La siguiente figura muestra cómo se distribuyen en
área parejas de números aleatorios. El primer elemento de cada pareja de número aleatorio corresponde a
algún valor de intervalo de abscisa (indicado con xn) y el segundo elemento de dicha pareja corresponde a
algún valor de intervalo de ordenada (indicado con xn+1).

Si se trabaja en dos dimensiones, se divide el espacio entre 0 y 1 en K2 celdas de igual área. Si se tiene una
muestra de tamaño n, se puede construir n/2 pares no solapados (x1 , x2 ), (x3 , x4 ), ..., y contar los puntos
n
que caen en cada celda. Idealmente se esperan 2 puntos en cada celda. Se puede usar la chi-cuadrado
2
k
para encontrar la desviación entre lo observado y lo esperado. Los grados de libertad son K2-1.

Ejemplo. La siguiente gráfica presenta la distribución de parejas de números aleatorios al cual se le aplicará
el Test Serial con  =5%=0.05:

Ing.Castellanos Pág. Nº 14
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
0,75 a 1 16 5 11 6
0,5 a 0,75 7 9 10 9
0,25 a 0,5 5 13 8 8
0 a 0,25 12 7 5 13
0 a 0,25 0,25 a 0,5 0,5 a 0,75 0,75 a 1

De la gráfica se puede sacar la siguiente información:


Total de números aleatorios n=288
Total de parejas n/2=144
k=4 Hay cuatro intervalos en el eje x y 4 intervalos en el eje y
n
2
k 2 = 9. Se esperan 9 parejas de números aleatorios por celda.
Se confecciona la tabla de frecuencias esperadas y observadas por celda y se determinan los estadísticos:

( FO I  FE I )2
i FOi FEi FE I
1 16 9 5,44
2 7 9 0,44
3 5 9 1,78
4 12 9 1,00
5 5 9 1,78
6 9 9 0,00
7 13 9 1,78
8 7 9 0,44
9 11 9 0,44
10 10 9 0,11
11 8 9 0,11
12 5 9 1,78
13 6 9 1,00
14 9 9 0,00
15 8 9 0,11
16 13 9 1,78
18,00
 02  18

 20.05;15  25

Ing.Castellanos Pág. Nº 15
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
Se deben comparar los estadísticos para decidir si se rechaza o no la hipótesis.
 02  18   02.05;15  25 NO se rechaza

Si   0.5 entonces  02.5;15  14.34 , y se rechaza la hipótesis que el generador de números es aleatorio.

d. Test de rachas

El procedimiento Test de rachas contrasta si es aleatorio el orden de aparición de dos valores de una varia-
ble.
Una racha es una secuencia de observaciones similares, o secuencia de eventos de cierto tipo. Una muestra
con un número excesivamente grande o excesivamente pequeño de rachas sugiere que la muestra no es
aleatoria.
Se toman en consideración la forma como se dan los números en la secuencia.

Rachas Bajo y Sobre la media


Una racha bajo la media es aquella en que el número es menor o igual a 0.5 (la media de la uniforme),
mientras que es sobre si el número es mayor a 0.5.
Da la siguiente secuencia de números aleatorios:

0.00001 0.13154 0.75561 0.45865 0.53277 0.21896 0.04704 0.67886 0.67930 0.93469

Si usamos signos más y menos para identificar si un número está en una racha por encima o debajo de la
media, tenemos:
- - + - + - - + + +
Sean n1 y n2 la cantidad de números sobre y debajo de la media respectivamente, N = n1 + n2 la longitud de
la secuencia y b el número de rachas en la misma, si los números efectivamente son aleatorios y n 1 o n2 es
mayor que 20, b se distribuye normalmente y:

Si  Z  / 2  Z 0  Z  / 2 no hay evidencia para rechazar la hipótesis de independencia de los números.

El mínimo de racha igual a 1. El número máximo de rachas N.


Ejemplo. Aplicar el Test de Rachas a la siguiente secuencia de números aleatorios

Ing.Castellanos Pág. Nº 16
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

Se usan signos + y – para identificar si un número está por encima o por debajo de la media. Se obtiene la
siguiente tabla:

b=21
n1=22
n2=18
 b  20.30
 b2  9.54
Z0=0.227
Si Z 0.1  1.645 , NO rechazamos la hipótesis de la independencia.
5

e. Prueba de Poker

Esta es una prueba de independencia basada en la frecuencia con que ciertos digitos se repiten en una se-
rie de números. Su nombre se debe al popular juego de cartas Poker.
La prueba Poker se utiliza para analizar la frecuencia con la que se repiten los dígitos en números aleatorios
individuales.
Consideremos la siguiente serie de números:
0.255, 0.577, 0.331, 0.414, 0.828, 0.909, 0.033, 0.010
En cada caso aparecen uno de los tres dígitos repetido y las posibilidades para este caso son:
- Los tres dígitos distintos
- Los tres dígitos iguales
- Un par de dígitos iguales
Ing.Castellanos Pág. Nº 17
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
y las probabilidades asociadas son:
- P(todos distintos) = P(segundo distinto del primero)P(tercero distinto del segundo) =
(0.9)(0.8) = 0.72
- P(todos iguales) = P(segundo igual al primero)P(tercero igual al segundo) = (0.1)(0.1) =
0.01
- P(un par) = 1 – 0.72 – 0.01 = 0.27 (la única opción restante y podemos calcular por
complemento).

Las consideraciones y pasos a seguir para aplicar el Test de Poker son:


 Saber la cantidad de dígitos que formarán los aleatorios que se desean probar.
 Clasificar los casos posibles que se pueden formar (pares de iguales, tercias, etc.).
 Calcular las probabilidades de que en esos números se presenten los casos que se determina-
ron.
 Generar una muestra de aleatorios con el generador a probar y clasificar la frecuencia que pre-
sentaron los casos en la muestra.
 Efectuar una prueba Chi cuadrada para verificar si existe evidencia estadística para afirmar que
las frecuencias observadas son diferentes a las esperadas. En caso contrario, no se rechazará la
hipótesis de que el generador produce aleatorios independientes.

Ejemplo. Se tiene 1000 números de tres dígitos, de los cuales 700 tienen los 3 dígitos distintos, 273 tienen
dos dígitos iguales y 27 tienen todos iguales. Los cálculos respectivos usando la prueba Chi-Cuadrado son:

( FO I  FE I )2
Casos FOi FEi FE I
3 dígitos diferentes 700 720 0.555
2 dígitos iguales 273 270 0.033
3 dígitos iguales 27 10 28.9
29.488

Si   0.5 , entonces  02.5;2  5.99

 02  29.488   02.05;2  5.99


Se rechaza la independencia del generado de números.

Esta prueba se puede extender a más dígitos pero a su vez las posibilidades aumentan y o los cálculos se
complican. Por ejemplo, para 5 dígitos, podríamos tener, todos iguales, todos distintos, exactamente un
par, exactamente un trío, un trío y un par, dos pares, etc.

5. Generación de variables aleatorias


Ing.Castellanos Pág. Nº 18
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

La generación de cualquier variable aleatoria se basa en la generación previa de una distribución uniforme
(0,1) y transformación de dicho número generado en valores de otras distribuciones.
Las variables aleatorias se representan por medio de distribuciones de probabilidad.
El procedimiento para generar variables aleatorias a partir de distribuciones de probabilidad se conoce
como generación de variables aleatorias o muestreo de Monte Carlo. El principio del muestreo se basa en
la interpretación de frecuencia de la probabilidad y requiere un flujo permanente de números aleatorios.
Hay una variedad de métodos para generar variables aleatorias. Cada método se aplica solo a un subcon-
junto de distribuciones y para una distribución en particular un método puede ser más eficiente que otro.
El esquema general de generación de variables aleatorias y muestras de procesos estocásticos puede grafi-
carse:

{Ui}: Conjunto de números generados en el computador, que siguen una distribución uniforme entre 0 y 1,
independientes.
{xi}: Conjunto de números que pueden verse como:
 Muestras de una determinada variable aleatoria.
 Muestras de un proceso estocástico en distintos instantes de tiempo.

a. Método de la Transformada Inversa

Se emplea la distribución acumulada F(x) de la distribución de probabilidad a simular por medio de integra-
ción. Como el rango de F(x) se encuentra en el intervalo de cero a uno, se debe generar un número aleato-
rio ri para luego determinar el valor de la variable aleatoria cuya distribución acumulada es igual a ri. El pro-
blema de este método radica en el hecho que algunas veces se dificulta demasiado la consecución de la
transformada inversa.
El método consiste en:

 Definir la función de Densidad f(x) que representa la variable a modelar.


 Calcular la función acumulada F(x).
 Despejar la variable aleatoria x y obtener la función acumulada inversa F-1.
 Generar las variables aleatorias x, sustituyendo valores con números pseudoaleatorios ri ~U (0,1)
en la función acumulada inversa.

Si la variable aleatoria X tiene una FDA F(x), entonces la variable u = F(x) está distribuida uniformemente
entre 0 y 1. Por lo tanto, X se puede obtener generando números uniformes y calculando x = F-1 (u).

Ing.Castellanos Pág. Nº 19
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS

Este método nos permite generar variables aleatorias siempre que se pueda determinar F-1 (x) analítica-
mente o empíricamente.

El método de la transformada inversa también puede emplearse para simular variables aleatorias de tipo
discreto, como en las distribuciones de Poisson, de Bernoulli, binomial, geométrica, discreta general, etc.

La generación se lleva a cabo a través de la probabilidad acumulada P(x) y la generación de números pseu-
doaleatorios ri ~U (0,1).

Metodología para obtener variables aleatorias continuas

Metodología para obtener variables aleatorias discretas

Ing.Castellanos Pág. Nº 20
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
Ejemplo Caso continuo.

Ejemplo Caso Discreto


Se desea realizar un estudio sobre el número de crías en una camada. Sea la v.a. X:“Número de crías en
una camada”. X toma los valores x = 0, 1, 2, 3 con las siguientes probabilidades:
P{X=0} =0.2
P{X=1} =0.3
P{X=2} =0.3
P{X=3} =0.2

b. Método de Aceptación-Rechazo

Para generar variables aleatorias por este método es necesario definir una función f(x) en el intervalo [a, b].
Se trata de una función acotada, donde a <= x <= b.
Se desarrolla un algoritmo donde la variable aleatoria se acepta o rechaza de acuerdo a los siguientes crite-
rios:

Ing.Castellanos Pág. Nº 21
INGENIERIA EN SISTEMAS DE INFORMACION
SIMULACIÓN - 4º AÑO - AÑO 2019
VARIABLES ALEATORIAS
GENERACION DE NÚMEROS PSEUDOALEATORIOS, PRUEBAS ESTADISTICAS, GENERACION VARIABLES
ALEATORIAS
1. Seleccionar una constante M, tal que M es el valor más grande de f(x) en el intervalo [a, b].
2. Generar dos números aleatorios r1 y r2; tal que r1, r2∈ [0,1].
3. Calcular x* = a+ (b–a)r1. Esto asegura que cada miembro de [a, b] tiene una probabilidad igual de
ser elegido como x*.
4. Evaluar la función f(x) en el punto x*, o sea f(x*).
5. Aceptar o rechazar la variable aleatoria x*. Si r2 ≤f(x*) / M, entonces se acepta x* como una variable
aleatoria continua. De lo contrario, se rechaza x* y se vuelve al paso 2.

Ejemplo.

Ing.Castellanos Pág. Nº 22

You might also like