Generación de Números Seudo-Aleatorios

40
1 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.

description

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 . . Generación de Números Seudo-Aleatorios. - PowerPoint PPT Presentation

Transcript of Generación de Números Seudo-Aleatorios

Page 1: Generación de Números  Seudo-Aleatorios

1

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.

Page 2: Generación de Números  Seudo-Aleatorios

2

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.

Y para ello la clave es generar números enteros aleatorios y uniformemente distribuidos en un cierto intervalo de una manera eficiente.

Page 3: Generación de Números  Seudo-Aleatorios

3

 

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.   

Técnicas para generar números aleatorios

Page 4: Generación de Números  Seudo-Aleatorios

4

 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

X22 = (7089)2 = 50,253,921 ===> X3 = 2539

Técnicas para generar números aleatorios

Page 5: Generación de Números  Seudo-Aleatorios

Operación mod

k mod m es el residuo de hacer la división de k entre m

Sea x un entero grande45 mod 12 =(5+55x) mod 5 = (5+55x) mod 11 =

5

Page 6: Generación de Números  Seudo-Aleatorios

Método de la Congruencia Lineal

6

Page 7: Generación de Números  Seudo-Aleatorios

7El número aleatorio se encuentra de la siguiente manera:

R = x / m

Page 8: Generación de Números  Seudo-Aleatorios

8

Page 9: Generación de Números  Seudo-Aleatorios

Ejercicio 1

9

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.

a = 12 c = 0 m = 15

x 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

x 1 0 12 9 6 3 0 12 9 6 3 0 12 9 6 3

x 2 0 9 3 12 6 0 9 3 12 6 0 9 3 12 6

x 3 0 3 6 9 12 0 3 6 9 12 0 3 6 9 12

x 4 0 6 12 3 9 0 6 12 3 9 0 6 12 3 9

x 5 0 12 9 6 3 0 12 9 6 3 0 12 9 6 3

x 6 0 9 3 12 6 0 9 3 12 6 0 9 3 12 6

x 7 0 3 6 9 12 0 3 6 9 12 0 3 6 9 12

x 8 0 6 12 3 9 0 6 12 3 9 0 6 12 3 9

x 9 0 12 9 6 3 0 12 9 6 3 0 12 9 6 3

x 10 0 9 3 12 6 0 9 3 12 6 0 9 3 12 6

x 11 0 3 6 9 12 0 3 6 9 12 0 3 6 9 12

x 12 0 6 12 3 9 0 6 12 3 9 0 6 12 3 9

Page 10: Generación de Números  Seudo-Aleatorios

10

EjercicioUsar 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.

Page 11: Generación de Números  Seudo-Aleatorios

11

EjercicioUsar 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.

Page 12: Generación de Números  Seudo-Aleatorios

GCL Multiplicativos

12

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.

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.

Page 13: Generación de Números  Seudo-Aleatorios

13

Page 14: Generación de Números  Seudo-Aleatorios

14

Page 15: Generación de Números  Seudo-Aleatorios

Ejercicio 2

15

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.

Page 16: Generación de Números  Seudo-Aleatorios

16

Varianza:

Desviación Estándar: 2ss

11

22

1

2

2

nnx

x

n

XxS

ii

n

ii

Varianza y Desviación Estándar para una muestra de datos.

Page 17: Generación de Números  Seudo-Aleatorios

17

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 -1R = Rango 5; Varianza 2.5536 y Desviación Estándar 1.5980

3. Determina el rango, la varianza y la desviación estándar para los siguientes datos:

6 12 9 15 6 6 0 3R = Rango 15; Varianza 22.9821 y Desviación Estándar 4.7940

Ejercicio

Page 18: Generación de Números  Seudo-Aleatorios

18

Frecuentemente se utilizan generadores de números seudo-aleatorios 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

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).

Ejercicio

Page 19: Generación de Números  Seudo-Aleatorios

19

Frecuentemente se utilizan generadores de números seudo-aleatorios 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

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).

Otro ejercicio

Page 20: Generación de Números  Seudo-Aleatorios

Probando generadores de números aleatorios

20

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.

Page 21: Generación de Números  Seudo-Aleatorios

21

¿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 – 1Con semilla = 1, los primeros 200 números generados.

Page 22: Generación de Números  Seudo-Aleatorios

Gráfica de Serie de Tiempo

220

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 20 40 60 80 100 120 140 160 180 200

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201

Es importante observar que NO exista ningún patrón o tendencia.

xn+1 = (75 ・ xn) mod 231 – 1Con semilla = 1, los primeros 200 números generados

Page 23: Generación de Números  Seudo-Aleatorios

23

Generador Uniforme

-0.5-0.25

00.250.5

0.75

11.25

rand

om

Generador Uniforme?

00.20.40.60.8

1

0 50 100

¿Cómo sabemos que nuestro generador es bueno?

¿Cuál de estas series de números parecen venir de un buen generador?

Page 24: Generación de Números  Seudo-Aleatorios

0

5

10

15

20

25

30

[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)

Frecue

ncias

Intervalo

Histograma

24

Tabla de frecuencias e histograma

Intervalo Frecuencia

[0, 0.1) 21[0.1, 0.2) 19[0.2, 0.3) 20[0.3, 0.4) 16[0.4, 0.5) 25[0.5, 0.6) 20[0.6, 0.7) 20[0.7, 0.8) 17[0.8, 0.9) 20[0.9, 1.0) 22

200

Page 25: Generación de Números  Seudo-Aleatorios

25

0, x < 0F(x) = x, 0 x 1 1, x<1

1

F(x)

1

1, 0 x 1f(x) =

0, en otro caso

1

f(x)

1

Función de densidad de probabilidad

Función de probabilidad acumulada:

P(X<= x)

x

x

Números aleatorios entre 0 y 1

Page 26: Generación de Números  Seudo-Aleatorios

26

* 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.

Números aleatorios entre 0 y 1

Page 27: Generación de Números  Seudo-Aleatorios

Prueba estadística Ji-cuadrada

27

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).

IntervaloFrecuencia Observada

Frecuencia Esperada

I 1 O 1 E 1

I 2 O 2 E 2

… … …I k O k E k

Total Total

Page 28: Generación de Números  Seudo-Aleatorios

Prueba estadística Ji-cuadrada

28

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:

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.

Page 29: Generación de Números  Seudo-Aleatorios

Distribución Ji-cuadrada

29Ejercicio:Determine el 95º percentil de la distribución ji-cuadrada con 6 grados de libertad.

Page 30: Generación de Números  Seudo-Aleatorios

30

Región de Rechazo:

Los grados de libertad son iguales a: número de filas - 1

Prueba estadística Ji-cuadrada

21,

20 kcc

En esta prueba se debe cuidar que las frecuencias esperados sean mayores o iguales a 5.

Page 31: Generación de Números  Seudo-Aleatorios

Prueba estadística Ji-cuadradaEjercicio 3

31

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.

Page 32: Generación de Números  Seudo-Aleatorios

Prueba estadística Ji-cuadradaEjercicio 3

32

8.210

1

220

i i

ii

EEOc

IntervaloFrecuencia Observada

Frecuencia Esperada

(observado - esperado)2

esperado[0, 0.1) 21 20 0.05

[0.1, 0.2) 19 20 0.05[0.2, 0.3) 20 20 0[0.3, 0.4) 16 20 0.8[0.4, 0.5) 25 20 1.25[0.5, 0.6) 20 20 0[0.6, 0.7) 20 20 0[0.7, 0.8) 17 20 0.45[0.8, 0.9) 20 20 0[0.9, 1.0) 22 20 0.2

Total 200 200 2.8

Estadístico de prueba

Page 33: Generación de Números  Seudo-Aleatorios

33

Región de Rechazo:

21,

20 kcc

Prueba estadística Ji-cuadradaEjercicio 3

919.16

29,05.0

21,

cc k

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

Page 34: Generación de Números  Seudo-Aleatorios

34

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.

Page 35: Generación de Números  Seudo-Aleatorios

35

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 ji-cuadrada para probar si los valores provienen de una distribución uniforme.

Usar 8 intervalos y un nivel de significancia = = 0.05.

Intervalo Frecuencia

[0, 0.125) 16[0.125, 0.25) 12[0.25, 0.375) 11[0.375, 0.5) 11[0.5, 0.625) 8[0.625, 0.75) 6[0.75, 0.875) 7[0.875, 1.0) 9

80

Page 36: Generación de Números  Seudo-Aleatorios

36

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.

Intervalo Frecuencia

[0, 0.125) 22[0.125, 0.25) 7[0.25, 0.375) 18[0.375, 0.5) 13[0.5, 0.625) 21

[0.625, 0.75) 4[0.75, 0.875) 9[0.875, 1.0) 6

100

Page 37: Generación de Números  Seudo-Aleatorios

37

Generación de variables aleatorias discretas

Variable Probabilidad Acumulada 18 cm. 0.3 0.3

19 cm. 0.4 0.7

20 cm. 0.3 1

Suponga que un determinado fenómeno aleatorio tiene la siguiente distribución de probabilidad:

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.

Page 38: Generación de Números  Seudo-Aleatorios

38

Usar el generador:xn+1 = (57 ・ xn) mod 215 – 1 Con semilla = 1.

a) Generar 100 valores de la distribución:

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.

Variable Probabilidad 18 cm. 0.3

19 cm. 0.4

20 cm. 0.3

Ejercicio 7

Page 39: Generación de Números  Seudo-Aleatorios

39

=NORMINV(RAND(),500,50)

aleatorio entre 0 y 1(puedes usar tu propio generador)

media desv. std.

Números aleatorios con distribución normal

En Excel.

Page 40: Generación de Números  Seudo-Aleatorios

40

Ejercicio 8Usar 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.

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.