Download Generación de Números Aleatorios

Document related concepts

Distribución uniforme continua wikipedia , lookup

Distribución de Poisson wikipedia , lookup

Varianza wikipedia , lookup

Distribución normal wikipedia , lookup

Distribución exponencial wikipedia , lookup

Transcript
Generación de Números
Seudo-Aleatorios
En la práctica ninguna función
produce datos aleatorios
verdaderos.
Las funciones producen números
pseudo-aleatorios.
1
Generación de Números
Seudo-Aleatorios
Un elemento importante en simulación es tener
rutinas que generen variables aleatorias con
distribuciones específicas: uniforme, normal, etc.
Para ello la base es generar una secuencia de
números aleatorios distribuidos uniformemente entre
0 y 1.
2
Y para ello la clave es generar números enteros
aleatorios y uniformemente distribuidos en un cierto
intervalo de una manera eficiente.
Técnicas para generar números
aleatorios
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.
3
Técnicas para generar números
aleatorios
Método Del Cuadrado Medio: comienza con un número inicial (semilla).
Este número es elevado al cuadrado. Se escogen los dígitos del medio de este
nuevo número (según los dígitos que se deseen) y se colocan después del
punto decimal. Este número conforma el primer número random.
Ejemplo:
X0 = 5497
X02 = (5497)2 = 30,217,009 ===> X1 = 2170
R1 = 0.2170
X12 = (2170)2 = 04,708,900 ===> X2 = 7089
R2 = 0.7089
4
X22 = (7089)2 = 50,253,921 ===> X3 = 2539
Operación mod

k mod m es el residuo de hacer la división de
k entre m
Sea x un entero grande
45 mod 12 =
(5+55x) mod 5 =
(5+55x) mod 11 =
5
Método de la Congruencia Lineal
6
7
El número aleatorio se encuentra de la siguiente manera:
R = x /m
8
Ejercicio 1
a = 12
9
c= 0
Usar Excel para calcular los números aleatorios
que se producen para m = 15, a = 12 y c = 0
con las semillas x0 = 0, hasta 14.
m = 15
x0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
x1
x2
x3
x4
x5
x6
x7
x8
x9
x 10
x 11
x 12
0
12
9
6
3
0
12
9
6
3
0
12
9
6
3
0
9
3
12
6
0
9
3
12
6
0
9
3
12
6
0
3
6
9
12
0
3
6
9
12
0
3
6
9
12
0
6
12
3
9
0
6
12
3
9
0
6
12
3
9
0
12
9
6
3
0
12
9
6
3
0
12
9
6
3
0
9
3
12
6
0
9
3
12
6
0
9
3
12
6
0
3
6
9
12
0
3
6
9
12
0
3
6
9
12
0
6
12
3
9
0
6
12
3
9
0
6
12
3
9
0
12
9
6
3
0
12
9
6
3
0
12
9
6
3
0
9
3
12
6
0
9
3
12
6
0
9
3
12
6
0
3
6
9
12
0
3
6
9
12
0
3
6
9
12
0
6
12
3
9
0
6
12
3
9
0
6
12
3
9
Ejercicio
Usar Excel para calcular los números aleatorios
que se producen para m = 15, a = 12 y c = 0
con las semillas x0 = 0, hasta 14.
Para x0 = 1: ¿Cuál es el período, la longitud es del
ciclo y la longitud de la cola ?.
R: 5, 4, 1.
10
Ejercicio
11
Usar Excel para calcular los números aleatorios
que se producen para m = 15, a = 12 y c = 0
con las semillas x0 = 0, hasta 14.
GCL Multiplicativos
Periodo completo = Cuando tiene el máximo periodo
posible, m – 1.
Los hay con m potencia de 2 (m = 2k ) que son rápidos pues el
residuo en divisiones con potencia de 2 puede hacerse rápidamente.
Aunque tienen la desventaja que no son de periodo completo
pueden ser suficientes para muchas aplicaciones.
12
Cuando m no es potencia de 2 el generador es menos rápido; se
acostumbra elegir un número m que sea primo y la relación entre m y
a debe ser especial para que el generador tenga un periodo
completo o al menos grande.
13
14
Ejercicio 2
Suponiendo que se utilice el generador de números
seudo-aleatorios.
y que la semilla se escoge eligiendo al azar un entero
entre 1 y 26 − 1 inclusive, determine el promedio de
la longitud del periodo y su desviación estándar.
15
Varianza y Desviación Estándar
para una muestra de datos.

x

 x  X   x  n
2
n
Varianza:
S 
2
i 1
Desviación Estándar:
16
2
i
n 1

s  s2
i
2
i
n 1
Ejercicio
1. Determina el rango, la varianza y la desviación estándar para los
siguientes datos:
2
4
3
5
2
2
0
1
R = Rango 5; Varianza 2.5536 y Desviación Estándar 1.5980
2. Determina el rango, la varianza y la desviación estándar para los
siguientes datos:
-2
-4
-3
-5
-2
-2
0
-1
R = Rango 5; Varianza 2.5536 y Desviación Estándar 1.5980
17
3. Determina el rango, la varianza y la desviación estándar para los
siguientes datos:
6
12
9
15
6
6
0
3
R = Rango 15; Varianza 22.9821 y Desviación Estándar 4.7940
Ejercicio
Frecuentemente se utilizan generadores de números seudoaleatorios en forma encadenada; por ejemplo, el número que
sale de
xn+1 = (81 ・xn + 121) mod 255
es utilizado por
yn+1 = (625 ・ xn+1 + 48) mod 63
18
para producir el número yn+1 que es el que se reporta.
Usando la semilla x0 = 23 y los datos anteriores, determine los
primeros 2 números aleatorios generados (y1 y y2).
Otro ejercicio
Frecuentemente se utilizan generadores de números seudoaleatorios en forma encadenada; por ejemplo, el número que
sale de
xn+1 = (45 ・xn + 71) mod 127
es utilizado por
yn+1 = (125 ・ xn+1 + 11) mod 63
19
para producir el número yn+1 que es el que se reporta.
Usando la semilla x0 = 49 y los datos anteriores, determine los
primeros 2 números aleatorios generados (y1 y y2).
Probando generadores de
números aleatorios
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, podemos 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.
20
¿Cómo sabemos que nuestro
generador es bueno?
PRUEBAS GRÁFICAS
• Gráfica de Serie de Tiempo.
• Tablas de frecuencias e histogramas
PRUEBA ESTADÍSTICA
• Prueba Ji-cuadrada
• Usar el ejemplo: xn+1 = (75 ・xn) mod 231 – 1
Con semilla = 1, los primeros 200 números generados.
21
Gráfica de Serie de Tiempo
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
1
11
21
31
41
51
61
71
81
91
101 111 121 131 141 151 161 171 181 191 201
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
22
20
40
60
80
100
120
140
160
xn+1 = (75 ・xn) mod 231 – 1
Con semilla = 1, los primeros 200 números generados
180
200
Es
importante
observar que
NO exista
ningún
patrón o
tendencia.
¿Cómo sabemos que nuestro
generador es bueno?
¿Cuál de estas series de números
parecen venir de un buen generador?
Generador Uniforme?
Generador Uniforme
1.25
random
1
0.75
0.5
0.25
0
-0.25 0
-0.5
1
0.8
0.6
0.4
0.2
0
0
23
50
100
Tabla de frecuencias e histograma
Intervalo Frecuencia
24
21
19
20
16
25
20
20
17
20
22
200
Histograma
30
25
Frecuencias
[0, 0.1)
[0.1, 0.2)
[0.2, 0.3)
[0.3, 0.4)
[0.4, 0.5)
[0.5, 0.6)
[0.6, 0.7)
[0.7, 0.8)
[0.8, 0.9)
[0.9, 1.0)
20
15
10
5
0
[0, 0.1) [0.1,
0.2)
[0.2,
0.3)
[0.3,
0.4)
[0.4,
0.5)
[0.5,
0.6)
Intervalo
[0.6,
0.7)
[0.7,
0.8)
[0.8,
0.9)
[0.9,
1.0)
Números aleatorios entre 0 y 1
f(x)
1, 0  x  1
f(x) =
1
0, en otro caso
1
x
F(x)
0, x < 0
F(x) =
x, 0  x  1
1
1, x<1
1
25
x
Números aleatorios entre 0 y 1
* La probabilidad de observar un valor en un particular intervalo es
independiente del valor previo observado.
* Todo punto en el rango tiene igual probabilidad de ser elegido.
* Si el intervalo (0,1) es dividido en n sub-intervalos de igual longitud, el
número esperado de observaciones en cada intervalo es N/n. (N número
de observaciones totales).
El objetivo de cualquier esquema de generación (generador), es producir
una secuencia de números entre 0 y 1 que simule las propiedades ideales
de distribución uniforme y de independencia.
26
Prueba estadística Ji-cuadrada
Esta es la prueba más comúnmente usada. En general, puede ser usada
para cualquier distribución.
A partir de un histograma, se comparan las frecuencias observadas
con las frecuencias obtenidas de la distribución específica (frecuencias
esperadas).
Intervalo
I1
I2
…
Ik
27
Frecuencia
Observada
O1
O2
…
Ok
Total
Frecuencia
Esperada
E1
E2
…
Ek
Total
Prueba estadística Ji-cuadrada
 Hipótesis nula.
Ho: no hay diferencia entre frecuencias
observadas y esperadas.
 Hipótesis alternativa. Ha o H1 : existe una diferencia entre
frecuencias observadas y esperadas.
Estadístico de prueba:
28
Si el ajuste es exacto, c02 es cero, pero por aleatoriedad no lo
será. Se puede demostrar que tiene distribución ji-cuadrado con
k-1 grados de libertad.
Distribución Ji-cuadrada
29
Ejercicio:
Determine el 95º percentil de la distribución ji-cuadrada con 6 grados de libertad.
Prueba estadística Ji-cuadrada
Los grados de libertad son iguales a: número de filas - 1
Región de Rechazo:
c  c ,k 1
2
0
30
2
En esta prueba se debe
cuidar que las frecuencias
esperados sean mayores
o iguales a 5.
Prueba estadística Ji-cuadrada
Ejercicio 3
Generador:
xn+1 = (75 ・xn) mod 231 – 1
Con semilla = 1, los primeros 200 números generados.
Realizar la prueba estadística ji-cuadrada para probar si los
valores vienen de una distribución uniforme.
Usar nivel de significancia =  = 0.05
 Ho: Los valores provienen de una distribución uniforme.
 Ha: Los valores NO provienen de una distribución uniforme.
31
Prueba estadística Ji-cuadrada
Ejercicio 3
Frecuencia
Intervalo
Observada
[0, 0.1)
[0.1, 0.2)
[0.2, 0.3)
[0.3, 0.4)
[0.4, 0.5)
[0.5, 0.6)
[0.6, 0.7)
[0.7, 0.8)
[0.8, 0.9)
[0.9, 1.0)
Total
10
c 
2
0
32
i 1
Frecuencia
Esperada
21
19
20
16
25
20
20
17
20
22
200
Oi  Ei 
20
20
20
20
20
20
20
20
20
20
200
(observado - esperado) 2
esperado
0.05
0.05
0
0.8
1.25
0
0
0.45
0
0.2
2.8
2
Ei
 2.8
Estadístico de prueba
Prueba estadística Ji-cuadrada
Ejercicio 3
Región de Rechazo:
c  c ,k 1
2
0
2
c2 ,k 1  c 02.05,9
 16.919
33
2.8 no es mayor que 16.919,
por lo que el estadístico de
prueba NO cae en la región
de rechazo.
Conclusión: Ho NO se rechaza.
Los valores generados sí parecen
venir de una distribución uniforme
Ejercicio 4
Generador:
xn+1 = (57 ・xn) mod 215 – 1
Con semilla = 1, considere los primeros 100 números generados
entre 0 y 1.
Realizar la prueba estadística ji-cuadrada para probar si los valores
vienen de una distribución uniforme.
Usar 10 intervalos.
Usar nivel de significancia =  = 0.05.
34
Ejercicio 5
Usando el método del cuadrado medio y
semilla = 5896, se generaron los
primeros 80 números aleatorios.
Realizar la prueba estadística jicuadrada para probar si los valores
provienen de una distribución uniforme.
Usar 8 intervalos y un nivel de
significancia =  = 0.05.
35
Intervalo
Frecuencia
[0, 0.125)
[0.125, 0.25)
[0.25, 0.375)
[0.375, 0.5)
[0.5, 0.625)
[0.625, 0.75)
[0.75, 0.875)
[0.875, 1.0)
16
12
11
11
8
6
7
9
80
Ejercicio 6
Generador:
xn+1 = (57 ・xn) mod 215 – 1
Con semilla = 14, considere los primeros 100
números generados entre 0 y 1.
Realizar la prueba estadística ji-cuadrada
para probar si los valores vienen de una
distribución uniforme.
Usar 8 intervalos.
Usar nivel de significancia =  = 0.05.
36
Intervalo
Frecuencia
[0, 0.125)
[0.125, 0.25)
[0.25, 0.375)
[0.375, 0.5)
[0.5, 0.625)
[0.625, 0.75)
[0.75, 0.875)
[0.875, 1.0)
22
7
18
13
21
4
9
6
100
Generación de variables
aleatorias discretas
Suponga que un determinado fenómeno aleatorio tiene la
siguiente distribución de probabilidad:
Variable
18 cm.
37
Probabilidad Acumulada
0.3
0.3
19 cm.
0.4
0.7
20 cm.
0.3
1
0  R  0.3
entonces x = 18 grs.
0.3 < R  0.7
entonces x = 19 grs.
0.7 < R  1
entonces x = 20 grs.
Para esto, se necesitan números aleatorios R entre 0 y 1.
Ejercicio 7
Usar el generador:
xn+1 = (57 ・xn) mod 215 – 1
Con semilla = 1.
a) Generar 100 valores de la distribución:
Variable
18 cm.
38
Probabilidad
0.3
19 cm.
0.4
20 cm.
0.3
b) Utilizar la prueba ji-cuadrada para decidir si los valores
generados realmente parecen tener la distribución de
probabilidad anterior ( = 0.05).
c) Usar 20 semillas y observar en cuántos casos la prueba se
rechaza.
Números aleatorios con distribución
normal
En Excel.
=NORMINV(RAND(),500,50)
aleatorio entre 0 y 1 media desv. std.
(puedes usar tu
propio generador)
39
Ejercicio 8
Usar el generador:
xn+1 = (59 ・xn) mod 217 – 1
Con semilla = matrícula menor del equipo.
a) Generar 500 valores de la distribución uniforme continua entre 0 y 1 con el
generador.
b) Usar esos valores para generar 500 números aleatorios de la distribución
normal con media 100 y desviación estándar 16 (distribución del puntaje de
IQ).
c) Utilizar la prueba ji-cuadrada para decidir si los valores generados realmente
parecen tener la distribución normal ( = 0.01).
En la tabla de frecuencias, calcular a mano 3 frecuencias esperadas (mostrar
procedimiento usando editor de ecuaciones). Escribir conclusión (sí o no se
trata de un buen generador de números normales).
d) Construir el histograma de frecuencias observadas y el histograma de
frecuencias esperadas.
40
e) Usar 20 semillas y observar en cuántos casos la prueba se rechaza. Indicar
qué semillas se usaron y cuál fue el valor del estadístico en cada caso.