Vous êtes sur la page 1sur 14

COMO GENERAR

NMEROS
ALEATORIOS
(Pequeo Resumen)

N
umeros aleatorios.

Contenidos
1. Descripcion estadstica de datos.
2. Generacion de n
umeros aleatorios
N
umeros aleatorios con distribucion uniforme.
N
umeros aleatorios con otras distribuciones.
Metodo basado en la inversa de la distribuci
on
de probabilidad acumulada.
Metodo Box-Muller (distribuci
on normal).
Metodo del rechazo.
N
umeros aleatorios con correlaciones.

Distribuci
on de Poisson

Descripci
on estadstica de los datos.

0.20

Objetivo: Caracterizar un conjunto de datos mediante


una distribuci
on y /o un conjunto de parametros, llamados
momentos

P (n) =

1
nn en
n!

0.15

0.10

0.05

Distribuci
on de probabilidad.

0.00
0.0

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.

5.0

10.0

15.0

20.0

Figure 1: Distribucion de Poisson n = 2.5.


1
nn en
P (n) = n!

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

Distribuci
on de densidad de probabilidad

Ejemplo: Distribucion normal.




1
(x x)
P (x) =
exp
2 2
2 2

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)

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: Distribucion log-normal.



1
1
2
P (y) =
exp 2 (log y log y) .
2
2
2 y
1

1.5

1.0

0.5

0.0
0.0

1.0

2.0

3.0

Momento central de orden n 


xn

Momentos.

N
1 
(xi x)n

x =
N i=1
n

Consideremos el conjunto de puntos {x1, x2, . . . , xN }

En MATLAB: moment(x,orden)

Media o valor medio x


N
1 
xi
x
N i=1

Varianza 2
1 
=
(xi x)2
N 1 i=1
2

En MATLAB: mean(x)
En Excel: PROMEDIO()
Notas: Deja de ser u
til cuando el primer momento de las colas
de la distribucion es grande.

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

1 
=
(xi x)2 = x2 x2 .
N i=1
2

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 tpica =

Notas: Mas robusto que la media. Deja de ser u


til cuando el
area bajo las colas de la distribuci
on es grande.
6

V ar.

En MATLAB: std(x), std(x,1)


En Excel: DESVEST()
7

Curtosis
4
N 
1  xi x
Curt =
3
N i=1

Espaciado entre cuartiles:


Espaciado que comprende el segundo y tercer cuartil
de los datos.

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

Es una medida mas robusta que la desviaci


on estandar
de la dispersion de los datos.
En el caso en que dispongamos de la distribuci
on subyacente

En MATLAB: iqr(x)
En Excel: CUARTIL(datos,opciones)

Media

Norma
D


Coeciente de asimetra (sesgo)


Skew =

1
N

N 

i=1

xi x

P (xr ) = 1 E[x] =

r=1

3

P (x)dx = 1
D

E[x] =

r=1 xr P (xr )


D

Momento de orden n
E[x ] =
n

D


xnP (xr )

r=1


x P (x)dx

E[xn] =

xnP (x)dx
D

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

0
0

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

Nivel de conanza (P ) y valores crticos (zc) para una


distribuci
on normal con desviacion estandard .

Descripci
on estadstica de errores.

P (zc) Probabilidad ( |x x| < zc)


Hip
otesis:
Los errores aleatorios proceden de una
acumulacion de peque
nas alteraciones que se producen al
azar.

P (%)

zc

99.9 3.29

Teorema del lmite central

99 2.58
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
N
1 
xi
y=
N i=1

En el lmite 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

95 2.00
90 1.64
68 1.00
Desviacion tpica de la media.
Dado
N
1 
xi
x =
N i=1
se cumple
(x)
(x) =
N

Los errores aleatorios tienen una distribuci


on normal.

10

11

Generadores por congruencia lineal.

Generador de n
umeros aleatorios.

Generador por congruencia lineal


Un ordenador es una maquina determinista con un n
umero
nito de estados. El problema es c
omo generar una sucesion
innita de n
umeros aleatorios, con una distribuci
on de
probabilidad subyacente prejada, de manera algortmica.

Uj
Ij+1

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

A lo mas 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 estadsticas entre
ellos).

con las deniciones

Nos centraremos en el problema de encontrar n


umeros
aleatorios con una distribucion uniforme en el intervalo
[0, 1]. La distribuci
on de probabilidad es

Si los valores de a, y m son elegidos de una forma


adecuada, se generara una secuencia de n
umeros
aleatorios enteros con una distribucion uniforme en
[1, m1], con un periodo maximo de m1. En concreto,
las siguientes condiciones garantizan que el generador
tiene un periodo maximo (a es una raiz primitiva del
primo m:


P (u) =

0 u  (0, 1)
1 u (0, 1)

m modulo
a multiplicador
I0 semilla (entero entre 1 y m 1

m es primo.
ultiplo de m.
am1 1 es un m
j1
1; j = 1, 2, . . . , m 2 no son m
ultiplos de m.
a
12

13

El generador por congruencia lineal generalizado

Uj
Ij+1

Ejemplo 2: (Park+Miller)

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

m
a
c
I0

es mas lento que el anterior y no aporta mayor


generalidad.
Las condiciones que deben cumplir los parametros a, c, m
para que el generador tenga un periodo maximo 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 tambien lo es.
Ejemplos
Ejemplo 1: (de ejemplo propuesto para el estandar
ANSI C)
m = 215 = 32768
a = 1103515245
c = 12345

=
=
=

231 1 = 2147483647
75 = 16807
0
0

La implementacion en este ejemplo ha de ser hecha con


cuidado, ya que necesitamos realizar operaciones exactas
con enteros.
Ventajas
El metodo es rapido.
La secuencia generada es independiente de la maquina
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 maximo de m1/k hiper-planos de dimensi
y no de manera uniforme.
Los bits menos signicativos tienen un caracter menos
aleatorio que los bits mas signicativos.

14

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 ,
para N 107 (todava mucho menor que m 2).
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 como obtener a partir de
un generador de n
umeros aleatorios con una distribucion
(u) (generalmente uniforme), un generador de n
umeros
aleatorios con la distribucion p(z).
Por el principio de conservacion de probabilidad
 
 du 
|(u)du| = |p(z)dz| = p(z) = (u)  
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 ecuacion diferencial
p(z) =

du
.
dz

En terminos de la distribuci
on de probabilidad acumulada
z
P (z) =
dyp(y)

la solucion es
u = P (z) = z = P 1(u).
16

17

Ejemplo:

N
umeros aleatorios con distribuci
on normal.

La distribuci
on objetivo es la exponencial
p(z) = ez ,

z [0, ]

Para obtenerun conjunto de n


umeros aleatorios con
una distribuci
on normal, utilizaremos un metodo de
transformaci
on en dos dimensiones.

La distribuci
on de probabilidad acumulada

P (z) =

z
0

dzez = 1 ez

El objetivo es utilizar un generador de n


umeros
aleatorios con distribucion uniforme para generar
n
umeros aleatorios con una distribucion normal:

La transformaci
on apropiada es

z2
1
p(z) = exp( ).
2
2

z(u) = log(1 u).


El algoritmo es

La transformaci
on a utilizar es

Generar un n
umero aleatorio con distribucion 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 .

z1
z2


=
2 log(u1) cos(2u2)

=
2 log(u1) sin(2u2),

umeros aleatorios con distribucion


donde u1, u2 son dos n
U [0, 1].

18

19

Demostracion:

Algoritmo:

En 2 dimensiones, la conservacion de probabilidad se


traduce en
|P (u1, u2)du1du2| = |P (z1, z2)dz1dz2| =


 (u1, u2) 
 P (u1, u2)
P (z1, z2) = 
(dz1, dz2) 

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 crculo de radio
unidad
R2 v12 + v22 < 1.

A partir de las expresiones




u1
u2

1
= exp (z12 + z22)
2
z2
1
arctan
=
2
z1

3. Genera los n
umeros aleatorios z1, z2 mediante la
f
ormula

v1
2 log(R)
R

v2
=
2 log(R) .
R

z1 =
z2

el Jacobiano es


1
1 2
(u1, u2)
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

20

21

Este proceso requiere un promedio de A evaluaciones de 2


n
umeros aleatorios uniformes.

M
etodo de rechazo.

Este metodo permite obtener un conjunto de n


umeros
aleatorios con una distribucion arbitraria p(x).

F(x)
U
-1

f(F (U))

f(x)
p(x)

1. Denimos una funcion de comparacion f (x) similar a


p(x) tal que cumple las siguientes condiciones

f (x) p(x) x [, ]
x
dy f (y) es conocida
F (x)

0
-1

F (U)

Figure 2: Representacion graca del metodo del rechazo.


F () =

Algoritmo alternativo

dy f (y) = A (> 1)

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

A pdf (x)

cdf (x)

p(x) x [, ]; A 1

X = F 1(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

V p(X) x es rechazado
22



dx cdf (x )

2. Generamos un n
umero aleatorio X con la distribuci
on de referencia. Para ello podemos utilizar el
metodo 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)

x es aceptado

V p(X)

x es rechazado

23

Ejemplo

N
umeros aleatorios con correlaciones

para generar n
umeros aleatorios N (0, 1), a partir de una
funcion de referencia uniforme en [R, R]
f (x) = normpdf (0); x [R, R]
f (x) normpdf (x); x [R, R]

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
(x1, x2, . . . , xN ) independientes con distribucion normal
(0, 1).

F (x) = normpdf (0)(x + R);


A = 2 R normpdf (0);
F 1(u) = u/normpdf (0) R;

Realizamos la siguiente descomposicion de la matriz de


covarianzas (ej. descomposicion de Cholesky).

El algoritmo para esta distribuci


on es:

= A A

1. Genera valor aleatorio X U [R, R].

En MATLAB A = chol().

Nota: Este paso resulta de combinar


(a) Genera valor aleatorio U U [0, A].
(b) Calcula X = U/normpdf (0) R.

Finalmente

y1
y2

...
yN

2. Genera valor V U [0, normpdf (0)].


3. Acepta X si V < normpdf (X).

24

= 2 + A

...

x1
x2

...
xN
25

Vous aimerez peut-être aussi