Sei sulla pagina 1di 13

N umeros aleatorios.

Contenidos 1. Descripci on estad stica de datos. 2. Generaci on de n umeros aleatorios N umeros aleatorios con distribuci on uniforme. N umeros aleatorios con otras distribuciones. M etodo basado en la inversa de la distribuci on de probabilidad acumulada. M etodo Box-Muller (distribuci on normal). M etodo del rechazo. N umeros aleatorios con correlaciones.

Descripci on estad stica de los datos.

Distribuci on de Poisson P (n) = 1 n n!


n

0.20

Objetivo: Caracterizar un conjunto de datos mediante


una distribuci on y /o un conjunto de par ametros, llamados momentos Distribuci on de probabilidad. Consideremos la variable discreta x, cuyo rango es {x1, x2, . . . xN } P (xn) Probabilidad de que al medir x una variable discreta obtengamos el valor xn. Ejemplos: Distribuci on binomial: Siendo p la probabilidad de que ocurra un suceso en una medida determinada, la probabilidad de m ocurrencias del suceso en N medidas independientes es PN (m) = N m (1 p)N mpm

0.15

0.10

0.05

0.00 0.0

5.0

10.0

15.0

20.0

Figure 1: Distribuci on de Poisson n = 2.5. 1 P (n) = n! n n e n

Distribuci on de densidad de probabilidad Consideremos la variable continua x. P (x)dx Probabilidad de que la variable se encuentre entre x y x + dx. x CDF (x) = P (x )dx Probabilidad de que la variable tenga un valor menor que x. P(x)

Ejemplo: Distribuci on normal. (x x ) 2 P (x) = exp 2 2 2 2 1


1.0 0.8 0.6 0.4 0.2

11 00 00 11 00 11 00 P(x) dx 11 00 11 x x+dx 00 11

0.0 2.0

1.0

0.0

1.0

2.0

Ejemplo: Distribuci on log-normal. 1 1 1 2 P (y ) = exp 2 (log y log y ) . 2 2 2 y


1.5

1.0

0.5

0.0 0.0

1.0

2.0

3.0

Momentos.

Momento central de orden n x n x


n

Consideremos el conjunto de puntos {x1, x2, . . . , xN } Media o valor medio x 1 x N En MATLAB: mean(x) En Excel: PROMEDIO()
Notas: Deja de ser u til cuando el primer momento de las colas de la distribuci on es grande.
2 N

1 = N

(xi x )n
i=1

En MATLAB: moment(x,orden)

xi
i=1

Varianza 2 1 = N 1
2 N i=1

(xi x )2

1 = N

N i=1

(xi x )2 =

x2 x 2 .

Mediana xmed es tal que hay igual n umero de valores xi < xmed como de valores xi > xmed . En MATLAB: median(x) En Excel: MEDIANA()
Notas: M as robusto que la media. Deja de ser u til cuando el area bajo las colas de la distribuci on es grande.
6

En MATLAB: var(x), var(x,1) En Excel: VAR()


Notas: El factor que aparece en el denominador es (N 1) si el valor medio es estimado a partir de los propios datos.

Desviaci on est andar o desviaci on t pica = En MATLAB: std(x), std(x,1) En Excel: DESVEST()

V ar .

Curtosis Espaciado entre cuartiles: Espaciado que comprende el segundo y tercer cuartil de los datos. Es una medida m as robusta que la desviaci on est andar de la dispersi on de los datos. En MATLAB: iqr(x) En Excel: CUARTIL(datos,opciones)
D

1 Curt = N

N i=1

xi x

En MATLAB: kurtosis(x) En Excel: CURTOSIS()

En el caso en que dispongamos de la distribuci on subyacente Norma Media


D r =1 xr P (xr )

Momento de orden n
D

Coeciente de asimetr a (sesgo) 1 Skew = N


N i=1

P (xr ) = 1 E[x] =
r =1 3 D

E[x ] =
n r =1

xnP (xr ) xnP (x)dx


D

xi x

P (x)dx = 1

E[x] =

x P (x)dx

E[xn] =

En MATLAB: skewness(x) En Excel: COEFICIENTE.ASIMETRIA()

Distribuci on Media Varianza Coef. asim. Curtosis Poisson x x 1/ x 1/ x Normal x 0 0

Descripci on estad stica de errores.

Nivel de conanza (P ) y valores cr ticos (zc) para una distribuci on normal con desviaci on est andard . P (zc) Probabilidad ( |x x | < zc )

Hip otesis: Los errores aleatorios proceden de una acumulaci on de peque nas alteraciones que se producen al azar. Teorema del l mite central Considera la variable denida como suma de variables N aleatorias {xi}i=1 tomadas de las distribuciones de probabilidad Pi(xi) centradas en torno al origen 1 y= N
N

P (%)

zc

99.9 3.29 99 2.58 95 2.00 90 1.64 68 1.00 Desviaci on t pica de la media. Dado N 1 xi x = N i=1 se cumple (x) ( x ) = N

xi
i=1

En el l mite N , la distribuci on de y es una distribuci on normal centrada en torno al origen y cuya varianza es N 1 2 2(xi) (y ) = N i=1 Los errores aleatorios tienen una distribuci on normal.

10

11

Generador de n umeros aleatorios.

Generadores por congruencia lineal. Generador por congruencia lineal

Un ordenador es una m aquina determinista con un n umero nito de estados. El problema es c omo generar una sucesi on innita de n umeros aleatorios, con una distribuci on de probabilidad subyacente prejada, de manera algor tmica. A lo m as que podemos aspirar es a generar una secuencia de n umeros pseudo-aleatorios, es decir, tales que se comportan para el programa en el que son utilizados como una secuencia de n umeros aleatorios (i.e. Es decir, no es posible detectar correlaciones estad sticas entre ellos). Nos centraremos en el problema de encontrar n umeros aleatorios con una distribuci on uniforme en el intervalo [0, 1]. La distribuci on de probabilidad es P (u ) = 0 u (0, 1) 1 u (0, 1)

Uj Ij +1

Ij ; m = (aIj ) mod m, j = 0, 1, . . . , =

con las deniciones m m odulo a multiplicador I0 semilla (entero entre 1 y m 1 Si los valores de a, y m son elegidos de una forma adecuada, se generar a una secuencia de n umeros aleatorios enteros con una distribuci on uniforme en [1, m 1], con un periodo m aximo de m 1. En concreto, las siguientes condiciones garantizan que el generador tiene un periodo m aximo (a es una raiz primitiva del primo m: m es primo. ultiplo de m. am1 1 es un m j 1 1; j = 1, 2, . . . , m 2 no son m ultiplos de m. a

12

13

El generador por congruencia lineal generalizado Ij ; m = (aIj + c) mod m, j = 0, 1, . . . =

Ejemplo 2: (Park+Miller) m a c I0 = = = = 231 1 = 2147483647 75 = 16807 0 0

Uj Ij +1

es m as lento que el anterior y no aporta mayor generalidad. Las condiciones que deben cumplir los par ametros a, c, m para que el generador tenga un periodo m aximo son: El u nico divisior com un entre c y m es 1 (se dice que c y m son primos el uno respecto al otro). todos los divisores primos m son divisores primos de a 1. Si m es divisible por 4, a 1 tambi en lo es. Ejemplos Ejemplo 1: (de ejemplo propuesto para el est andar ANSI C) m = 215 = 32768 a = 1103515245 c = 12345
14

La implementaci on en este ejemplo ha de ser hecha con cuidado, ya que necesitamos realizar operaciones exactas con enteros. Ventajas El m etodo es r apido. La secuencia generada es independiente de la m aquina en la que se ejecuta el algoritmo. Inconvenientes Existen correlaciones entre los n umeros generados: Imaginemos que utilizamos esta secuencia para generar puntos en k dimensiones, los puntos se distribuyen en on k 1, un m aximo de m1/k hiper-planos de dimensi y no de manera uniforme. Los bits menos signicativos tienen un car acter menos aleatorio que los bits m as signicativos.

15

En particular, el algoritmo de Park y Miller no satisface el test 2 si dos puntos sucesivos se asimilan a puntos en un plano bidimensional (Ii, Ii+1), i = 1, 2, . . . , N , a mucho menor que m 2). para N 107 (todav Es posible eliminar estas correlaciones secuenciales de bajo orden mediante un simple mecanismo de reordenaci on aleatoria.

N umeros aleatorios con otras distribuciones.


El problema a resolver es c omo obtener a partir de un generador de n umeros aleatorios con una distribuci on (u) (generalmente uniforme), un generador de n umeros aleatorios con la distribuci on p(z ). Por el principio de conservaci on de probabilidad |(u)du| = |p(z )dz | = p(z ) = (u) du dy

Dada la forma de la distribuci on objetivo p(z ), y si partimos de una distribuci on de probabilidad uniforme en u, hemos de resolver la ecuaci on diferencial p (z ) = du . dz

En t erminos de la distribuci on de probabilidad acumulada P (z ) = la soluci on es u = P (z ) = z = P 1(u).


16 17

dyp(y )

Ejemplo: La distribuci on objetivo es la exponencial p(z ) = ez , z [0, ]

N umeros aleatorios con distribuci on normal.

La distribuci on de probabilidad acumulada P (z ) =


z 0

Para obtenerun conjunto de n umeros aleatorios con una distribuci on normal, utilizaremos un m etodo de transformaci on en dos dimensiones. El objetivo es utilizar un generador de n umeros aleatorios con distribuci on uniforme para generar n umeros aleatorios con una distribuci on normal: z2 1 p(z ) = exp( ). 2 2 La transformaci on a utilizar es z1 = z2 = 2 log(u1) cos(2u2) 2 log(u1) sin(2u2),

dzez = 1 ez

La transformaci on apropiada es z (u) = log(1 u). El algoritmo es Generar un n umero aleatorio con distribuci on uniforme u U [0, 1] . Calcular el n umero aleatorio z = log(1 u). Los n umeros aleatorios z tienen una distribuci on z p (z ) = e .

umeros aleatorios con distribuci on donde u1, u2 son dos n U [0, 1].

18

19

Demostraci on: En 2 dimensiones, la conservaci on de probabilidad se traduce en |P (u1, u2)du1du2| = |P (z1, z2)dz1dz2| = P (z1, z2) = A partir de las expresiones 1 2 2 + z2 ) u1 = exp (z1 2 z2 1 arctan u2 = 2 z1 el Jacobiano es 1 1 2 (u 1 , u 2 ) 2 = exp (z1 + z2 ) . (dz1, dz2) 2 2 Siendo P (u1, u2) = 1, el resultado es P (z1, z2) =
2 1 ez1 /2 2 2 1 ez2 /2 2

Algoritmo: 1. Genera los n umeros v1, v2 a partir de una distribuci on uniforme en [0, 1]. 2. Elige u nicamente aquellos pares v1 , v2 correspondientes a una distribuci on uniforme en un c rculo de radio unidad 2 2 + v2 < 1. R2 v1

(u 1 , u 2 ) P (u 1 , u 2 ) (dz1, dz2)

3. Genera los n umeros aleatorios z1, z2 mediante la f ormula z1 = z2 = v1 R v2 2 log(R) . R 2 log(R)

20

21

M etodo de rechazo.
Este m etodo permite obtener un conjunto de n umeros aleatorios con una distribuci on arbitraria p(x). 1. Denimos una funci on de comparaci on f (x) similar a p(x) tal que cumple las siguientes condiciones f (x) p(x) x [, ] F (x) F () =
x

Este proceso requiere un promedio de A evaluaciones de 2 n umeros aleatorios uniformes.


A U
-1

F(x) f(F (U)) p(x)

f(x)

V 0
-1

dy f (y ) es conocida dy f (y ) = A (> 1)

F (U)

Figure 2: Representaci on gr aca del m etodo del rechazo.


Algoritmo alternativo

1. Denimos una distribuci on de densidad de probabilidad de referecia pdf (x) para la cual sabemos generar n umeros aleatorios, similar a p(x), y tal que cumple las siguientes condiciones

2. Generamos un n umero aleatorio U a partir de una distribuci on U [0, A]. A partir de este n umero denimos X=F
1

A pdf (x) cdf (x)

p(x) x [, ]; A 1 x dx cdf (x )

(U )

3. Generamos un segundo n umero aleatorio V a partir de una distribuci on uniforme en [0, f (x)]: V < p (X ) x es aceptado

2. Generamos un n umero aleatorio X con la distribuci on de referencia. Para ello podemos utilizar el m etodo de la inversa: (a) Generar U a partir de una distribuci on U [0, 1]. (b) A partir de U calculamos X = cdf 1 (U ). on uniforme en [0, A pdf (x)]: 3. Generamos un segundo n umero aleatorio V a partir de una distribuci

V < p(X ) V p(X )

x es aceptado x es rechazado

V p(X ) x es rechazado
22

23

Ejemplo para generar n umeros aleatorios N (0, 1), a partir de una funci on de referencia uniforme en [R, R] f (x) = normpdf (0); x [R, R] f (x) normpdf (x); x [R, R] F (x) = normpdf (0)(x + R); A = 2 R normpdf (0); F 1(u) = u/normpdf (0) R; El algoritmo para esta distribuci on es: 1. Genera valor aleatorio X U [R, R].
Nota: Este paso resulta de combinar (a) Genera valor aleatorio U U [0, A]. (b) Calcula X = U/normpdf (0) R.

N umeros aleatorios con correlaciones


Si queremos generar una muestra de n umeros aleatorios on gaussiana de media (y1, y2, . . . , yN ) con una distribuci (1, 2, . . . , N ) y matriz de covarianzas . Generamos una muestra de n umeros aleatorios on normal (x1, x2, . . . , xN ) independientes con distribuci (0, 1). Realizamos la siguiente descomposici on de la matriz de covarianzas (ej. descomposici on de Cholesky). = A A En MATLAB A = chol().

2. Genera valor V U [0, normpdf (0)]. 3. Acepta X si V < normpdf (X ).

Finalmente y1 y2 ... yN
24

1 = 2 + A ... N

x1 x2 ... xN
25

Potrebbero piacerti anche