Tema 10: Simulación de Variables Aleatorias

27
E STADÍSTICA 2 OO 7/2 OO 8 T EMA 10: S IMULACIÓN DE VARIABLES ALEATORIAS

Transcript of Tema 10: Simulación de Variables Aleatorias

Page 1: Tema 10: Simulación de Variables Aleatorias

ESTADÍSTICA 2OO7/2OO8

TEMA 10: SIMULACIÓN DE VARIABLES ALEATORIAS

Page 2: Tema 10: Simulación de Variables Aleatorias

DESCRIPCIÓN DEL TEMA:

10.1. Introducción.

10.2. Método de las transformaciones.

10.3. Método de inversión.

10.4. Método de aceptación-rechazo.

10.5. Simulaciones Montecarlo.

OBJETIVOS PRINCIPALES:

• Comprender los métodos de simulación de variables aleatorias básicos ysus aplicaciones.

• Conocer las ideas básicas que subyacen a las técnicas de tipo Montecarlo.

Page 3: Tema 10: Simulación de Variables Aleatorias

10.1. Introducción.

• Los ordenadores pueden simular probabilidades y variables aleatoriasnuméricamente.

• Aplicaciones:– Aproximar cantidades que resultan difíciles de calcular matemática-

mente.

– Simular sistemas físicos o biológicos complejos.

– Implementar algoritmos complejos para procesar imágenes, reconocersonidos, etc.

– Encriptar datos o generar claves.

– Generar opciones aleatorias en juegos de ordenador, etc.

Page 4: Tema 10: Simulación de Variables Aleatorias

Punto de partida

• Prácticamente todos los lenguajes de programación disponen de ungenerador de números aleatorios que permiten generar una secuenciaU1, U2, . . . de números aleatorios aproximadamente independientes ycon una distribución aproximadamente U(0, 1).

• Un ejemplo del algoritmo de generación:

xn = axn−1 mod m

(x0 es un parámetro del algorimo),

m = 231 − 1, a = 7

5= 16 807.

Requerimientos sobre un generador de números aleatorios– Buena distribución;– Período grande;– Posibilidad de repetir (por ejemplo, para hacer un test del programa). Posi-

bilidad de almacenar el estado de generador.

Page 5: Tema 10: Simulación de Variables Aleatorias

– Posibilidad de transferencia de un lenguaje de programación a otro y de unordenador al otro, con exactamente los mismos resultados.

– Eficiencia en el sentido del consumo de tiempo.

• Podemos suponer que disponemos de una sucesión de variables aleato-rias U(0, 1) e independientes: U1, U2, U3, U4, U5, . . . .

• A partir de la sucesión anterior vamos a estudiar cómo generar valoresaleatorios de otras distribuciones de probabilidad.

• Veremos diferentes métodos para lograr este objetivo:

1. Método de las transformaciones2. Método de inversión3. Método de aceptación-rechazo

Page 6: Tema 10: Simulación de Variables Aleatorias

1. Método de las transformaciones

◮ Para simular una v.a. X bastará encontrar una v.a. que se pueda expresarcomo una función de U1, U2, . . . , Un y que tenga la misma distribuciónque X. Es decir, se trata de encontrar una transformación

Y = f(U1, . . . , Un) ∼ X.

Ejemplos:

• Uniforme sobre (a, b)

X = a + (b − a)U1 ∼ U(a, b), U1 ∼ U(0, 1).

U(10, 12)

Page 7: Tema 10: Simulación de Variables Aleatorias

• Uniforme sobre {1, . . . , n}

X = ⌈nU1⌉ ∼ U({1, . . . , n}).

U({1, 2, 3, . . . , 10})• Bernoulli de parámetro p

B(1; p) ∼ X1 =

(1 si U1 ≤ p,

0 si U1 > p.

B(1; 0,5)

• Binomial de parámetros n, p

B(1; p) ∼ Xi =

(1 si Ui ≤ p,

0 si Ui > p.X = X1 + · · · + Xn ∼ B(n; p).

Page 8: Tema 10: Simulación de Variables Aleatorias

• Geométrica de parámetro p

B(1; p) ∼ Xi =

(1 si Ui ≤ p,

0 si Ui > p.X = mın{i : Xi = 1} ∼ G(p).

• Normal tipificada (La transformada de Box-Muller)Sean U1 ∼ U(0, 1) y U2 ∼ U(0, 1) independientes. Tomemos,

Z1 :=

q2 log(1/U1) cos(2πU2), Z2 :=q

2 log(1/U1) sin(2πU2).

Se tiene

Z1 ∼ N(0; 1), Z2 ∼ N(0; 1) y Z1, Z2 independientes.

Desventaja: Necesidad de calcular sin, cos, log

(consume mucho tiempo).

• Normal

Si Z ∼ N(0; 1), entonces X = µ + σZ ∼ N(µ; σ).

Page 9: Tema 10: Simulación de Variables Aleatorias

• Simulación de la Normal bivarianteSean Z1, Z2 ∼ N(0; 1) independientes, definimos

X = µX + σxZ1, Y = µY + σY (ρZ1 +

p1 − ρ2 · Z2),

ρ =σX,Y

σX σY

=cov(X, Y )p

V (X)

pV (Y )

=⇒ (X, Y ) normal bivariante con correlación ρ :

(X, Y ) ∼ N(µµµ;ΣΣΣ) con µµµ =

�µX

µY�

, ΣΣΣ =

�σ2

X σX,Y

σX,Y σ2Y

�Observamos que:

– Si ρ = 0, entonces

X = µX + σXZ1, Y = µY + σY Z2 =⇒ X e Y independientes.

Bajo normalidad: Incorrelación⇐⇒Independencia.

Page 10: Tema 10: Simulación de Variables Aleatorias

– Las medias condicionadasx fijo =⇒

y := E

Y

��X = x

�= µY + ρ

σY

σX

(x − µX) (rectas verdes)

y fijo =⇒

x := E

�X

��Y = y

�= µX + ρ

σX

σY

(y − µY ). (rectas violetas)

– Si ρ = 1, entonces

Y = µy + σy

�X − µx

σx

�=⇒ Dependencia lineal positiva perfecta

– Si ρ = −1, entonces

Y = µy − σy

�X − µx

σx

�=⇒ Dependencia lineal negativa perfecta

Page 11: Tema 10: Simulación de Variables Aleatorias

• Ejemplo (Normal bivariante):

Supongamos que queremos simular valores de:

N(µµµ;ΣΣΣ) con µµµ =

�1

2

�, ΣΣΣ =

�2 1

1 1

�, (ρ = 1/

√2 ≈ 0,7071).

Sean Z1, Z2 ∼ N(0; 1) independientes, definimos:

X = 1 +√

2Z1, Y = 2 +1√2

(Z1 + Z2) .

(X, Y ) ∼ N

�µµµ =

�1

2

�;ΣΣΣ =

�2 1

1 1

��.

Page 12: Tema 10: Simulación de Variables Aleatorias

2. Método de inversión

◮ Dada una v.a. X con f.d. F , definimos la inversa generalizada de F ofunción cuantil de X, F−1, mediante:

F−1

(t) := ınf{x : F (x) ≥ t}, 0 < t < 1.

• Observación:– La función cuantil es no decreciente y continual por la izquierda.

– Si F es biyectiva, entonces F−1 es la función inversa de F .

– Si X es una v.a. discreta que toma los valores x1 < x2 < x3 < . . . ,entonces

F−1

(t) = mın

8<:xj :

jXk=1

P (xk) ≥ t

9=; .

Page 13: Tema 10: Simulación de Variables Aleatorias

◮ Método de inversión: El método de inversión se basa en el siguiente re-sultado:Dada una v.a. X con función de distribución F y U ∼ U(0, 1), entonces

Y = F−1

(U) ∼ X.

• Variables discretasSea X una v.a. discreta que toma los valores x1 < x2 < x3 < . . . ,entonces

X ∼ F−1

(U1) = mın

nxj :

jXk=1

P (xk) ≥ U1

o.

Page 14: Tema 10: Simulación de Variables Aleatorias

Ejemplo 1 Sea X una v.a. discreta con función de probabilidad:

P (2) = 0, 2, P (3) = 0, 2, P (5) = 0, 4, P (7) = 0, 1, P (11) = 0, 1.

Dividimos [0, 1] en subintervalos:

0 0, 2 0, 4 0, 8 0, 9 1.

Les asignamos números:

2 3 5 7 11.

– Si U1 = 0,133, entonces tomamos 2 como un valor aleatorio de X.

– Si U1 = 0,254, entonces tomamos 3 como un valor aleatorio de X.

– Si U1 = 0,495, entonces tomamos 5 como un valor aleatorio de X.

– Si U1 = 0,891, entonces tomamos 7 como un valor aleatorio de X.

– Si U1 = 0,902, entonces tomamos 11 como un valor aleatorio de X.

Page 15: Tema 10: Simulación de Variables Aleatorias

Ejemplo 2: Binomial de parámetros n, p

X = mın

nj :

jXk=0

�n

k

�p

k(1 − p)

n−k ≥ U1

o∼ B(n; p).

Page 16: Tema 10: Simulación de Variables Aleatorias

• Geométrica de parámetro p

G(p) ∼ X = mın

8<:j :

jXk=0

p(1 − p)k ≥ U1

9=;= mın

nj : 1 − (1 − p)

j+1 ≥ U1

o∼ mın

nj : (1 − p)

j+1 ≤ U2

o=

�log U2

log(1 − p)�

.

Page 17: Tema 10: Simulación de Variables Aleatorias

• Exponencial de parámetro 1

Si X ∼ Exp(1), su función de distribución es: F (x) = 1 − e−x, luego

F−1

(t) = log

�1

1 − t

�y log

�1

1 − U1

�∼ Exp(1).

log

�1

U1

�∼ log

�1

1 − U1

�∼ Exp(1).

Page 18: Tema 10: Simulación de Variables Aleatorias

Ejemplo: Consideremos una variable aleatoria X con densidad de probabili-dad:

f(x) :=

�x−2 si x > 1,

0 en otro caso.

(a) Dada una sucesión U := {U1, U2, U3, . . . } de variables aleatorias (mu-tuamente) independientes y uniformes en (0, 1), descríbase el método deinversión para obtener valores aleatorios de la variable X a partir de lasucesión U.

(b) Los dos primeros valores de la sucesión de variables uniformes han sido0.515968 y 0.298085. Calcúlense dos valores aleatorios de X a partir delos números uniformes anteriores.

Page 19: Tema 10: Simulación de Variables Aleatorias

3. Método de aceptación-rechazo(Acceptance-rejection sampling)

(John von Neumann (1951))

• Rejection sampling.Supongamos que queremos simular un valor de la variable X con densi-dad f tal que:– f se concentra en el intervalo [a, b].

– f(x) ≤ k, para alguna constante k.

• Idea: Lanzamos dardos aleatoriamente en el rectángulo [a, b] × [0, k].Si el dardo cae dentro de la gráfica de f , tomamos el valor de la abscisacomo un valor de la v.a. X.

Page 20: Tema 10: Simulación de Variables Aleatorias

• Algoritmo:(1) Generar un valor U1 ∼ U[a, b].

(2) Generar un valor U2 ∼ U[0, k] independiente de U1.

(3) Entonces:

(3.1) Si U2 ≤ f(U1), entonces X = U1.

(3.2) Si U2 > f(U1), entonces volver al paso (1).

• Fundamento: X ∼ U1|{U2 ≤ f(U1)}.

Page 21: Tema 10: Simulación de Variables Aleatorias

Ejemplo: Método de aceptación-rechazo

• Normal tipificada: Z ∼ N(0; 1) con densidad f .

– f(x) ≈ 0, para |x| ≥ 10. Luego, podemos tomar a = −10, b = 10.

– |f(x)| ≤ f(0) = 1/√

2π = k, x ∈ R.

• Algoritmo:(1) Generar un valor U1 ∼ U[−10, 10].

(2) Generar un valor U2 ∼ U[0, 1/√

2π] independiente de U1.

(3) Entonces:

(3.1) Si U2 ≤ f(U1), entonces Z = U1.

(3.2) Si U2 > f(U1), entonces volver al paso (1).

Page 22: Tema 10: Simulación de Variables Aleatorias

• En esta situación, la probabilidad de aceptar un valor de U1 será√2π/20 ≈ 0,125331. Es deseable encontrar métodos que permitan

generar algoritmos más eficientes, es decir, que aumenten la probabilidadde aceptación.

Page 23: Tema 10: Simulación de Variables Aleatorias

Ejemplo: Consideremos una variable aleatoria X con distribución beta deparámetros 2 y 2, es decir, X es una variable continua con densidad de prob-abilidad:

f(x) :=

�6x(1 − x) si 0 < x < 1,

0 en otro caso.

(a) Supongamos que disponemos de una sucesión (U1, V1), (U2, V2), . . . depares de variables (mutuamente) independientes y con la misma distribu-ción uniforme en el intervalo (0, 1). Escríbase el algoritmo de aceptación-rechazo (caso 1) (Montecarlo) para generar valores de la variable X apartir de los valores de la sucesión de uniformes.

(b) Los dos primeros valores de la sucesión de variables uniformes han sido(0,479663; 0,142918) y (0, 0398101; 0,298392). ¿Cuáles son las salidasdel algoritmo para este par?

(c) ¿Cuál es la probabilidad de ejecutar el algoritmo y no generar un valoraleatorio de X en dos ocasiones antes de generar 4 valores aleatorios deX?

Page 24: Tema 10: Simulación de Variables Aleatorias

Simulaciones Montecarlo

• La técnicas de tipo Montecarlo son muy útiles para:

– Aproximar el valor de una integral o una constante complicada de formanumérica, sobre todo para integrar funciones de muchas variables.

– Calcular la distribución (aproximada) de una variable aleatoria para laque el cálculo analítico es muy complejo.

– Resolver problemas estadísticos complejos.

Aplicaciones:– Física estadística;– Física de grandes energías.

Page 25: Tema 10: Simulación de Variables Aleatorias

• Problema: Sea XXX = (X1, . . . , Xn) un vector aleatorio y supongamosque queremos calcular (de forma aproximada) el valor de Eφ(XXX), dondeφ : R

n → Rm es una función conocida.

◮ Solución: Simulación Montecarlo

(1) Generar una sucesión de v.a.s XXX1,XXX2, . . . independientes entre sí ycon la misma distribución que XXX.

(2) Calcular YYY i := φ(XXXi), i ≥ 1.

(3) La ley (fuerte) de grandes números asegura que:

lımn→∞

YYY 1 + · · · + YYY n

n= EYYY 1 = Eφ(XXX) casi seguramente.

Page 26: Tema 10: Simulación de Variables Aleatorias

Ejemplo

Calcular un valor aproximado para el número π mediante el método Monte-carlo.

– Tomemos X, Y ∼ U(−1, 1). Definimos:

Z :=

(1 si X2 + Y 2 ≤ 1,

0 en otro caso.

– Tenemos Z ∼ B(1; π/4) y EZ = π/4.

– Consideremos Z1, Z2, . . . variables aleatorias independientes como Z.La ley de grandes números asegura que:

4

n(Z1 + · · · + Zn)

c.s.−→ π, n → ∞.

Page 27: Tema 10: Simulación de Variables Aleatorias

Propuesta de problemas a entregar

Problema:

Supongamos que un ordenador con doble núcleo trabaja paraejecutar dos rutinas de un determinado programa. La distribuciónconjunta del tiempo de ejecución de las dos rutinas sigue unadistribución de probabilidad normal de media (5, 5) (en minutos),desviaciones típicas de 1 minuto y correlación 0.7. El programano se puede ejecutar hasta que ambas rutinas se han ejecutado.

Calcúlese una estimación (mediante el método Montecarlo) deltiempo esperado que se tarda en poder ejecutar el programa.