Simulación estad´ıstica

Anuncio
Simulación estadı́stica
26 de enero de 2009
2
Capı́tulo 1
Introducción
1.1.
Conceptos básicos
La simulación es la técnica que consiste en realizar experimentos de muestreo sobre
el modelo de un sistema.
Un modelo no es más que un conjunto de variables junto con ecuaciones matemáticas que las relacionan y restricciones sobre dichas variables.
La modelización es una etapa presente en la mayor parte de los trabajos de investigación (especialmente en las ciencias experimentales). En muchas ocasiones, la realidad
es bastante compleja como para ser estudiada directamente y es preferible la formulación de un modelo que contenga las variables más relevantes que aparececen en el
fenómeno en estudio y las relaciones más importantes entre ellas.
Frecuentemente, la resolución de los problemas que se pretenden abordar puede realizarse por procedimientos analı́ticos sobre el modelo construido (normalmente mediante el uso de herramientas matemáticas como las de resolución de ecuaciones ordinarias
o de ecuaciones diferenciales, el cálculo de probabilidades, etc.). En otras circunstancias
dicha resolución analı́tica no es posible (o es tremendamente complicada o costosa) y
es preferible una aproximación de la solución mediante simulación.
1.2.
Experimentación real y simulación
La experimentación directa sobre la realidad puede tener muchos inconvenientes:
un coste muy alto
gran lentitud
en ocasiones las pruebas son destructivas
a veces no es ética (experimentación sobre seres humanos)
puede resultar imposible (un acontecimiento futuro)
3
4
CAPÍTULO 1. INTRODUCCIÓN
Razones como esas (y algunas otras) pueden indicar la ventaja de trabajar con un
modelo del sistema real.
La estadı́stica es la ciencia que se preocupa de cómo estimar los parámetros y contrastar la validez de un modelo a partir de los datos observados del sistema real que se
pretende modelizar.
Una vez se ha construido un modelo, la primera tentativa debe ser siempre tratar
de resolver analı́ticamente el problema que nos ocupa. En caso de ser esto posible, la
solución es exacta (a menudo la resolución también es rápida).
En caso contrario puede recurrirse a la simulación que involucrará mucha labor
de procesado. Gracias a la gran potencia de cálculo de los computadores actuales los
programas de simulación pueden ofrecer una solución aproximada rápida en la mayor
parte de los problemas susceptibles de ser modelados.
Ejemplo 1.2.1 Supóngase que se quiere calcular la probabilidad de aparición de exactamente dos caras en tres lanzamientos de una moneda.
La experimentación sobre la situación real consistirı́a en repetir numerosas veces
los tres lanzamientos y observar con qué frecuencia se obtienen exactamente dos caras.
El sistema real es el mecanismo por el cual se realizan los lanzamientos.
Un modelo razonable para este sistema es el de una variable aleatoria X ∈ B (3, 0. 5)
(supuesto que la moneda tiene la misma probabilidad de cara que de cruz). Bajo este
modelo, se tratarı́a de calcular P (X = 2). En este caso la resolución analı́tica es factible
y muy sencilla
2 1
1
3
3
1
= = 0. 375
P (X = 2) =
2
2
8
2
La simulación consistirı́a en obtener números aleatorios (en ordenador) para replicar artificialmente los tres lanzamientos en gran cantidad de ocasiones, observando la
frecuencia relativa con la que aparecen exactamente dos caras.
Ejemplo 1.2.2 Supóngase el siguiente juego: un jugador lanza una moneda (abonando
un euro por cada lanzamiento) hasta que el número de caras supere en tres al número de
cruces obtenidas. En ese momento el jugador recibe 10 unidades monetarias. ¿Resulta
rentable jugar?
De nuevo aquı́ la experimentación real es muy lenta.
La modelización puede realizarse de nuevo gracias a la teorı́a de la probabilidad. En
esta ocasión, sin embargo, la resolución analı́tica serı́a complicada (salvo que se tengan
conocimientos de cadenas de Markov).
Parece, por tanto, conveniente una aproximación mediante simulación. Se tratarı́a
de ir replicando artificialmente el lanzamiento de la moneda simulando un gran número
de posibles partidas y examinando la pérdida o ganancia media.
1.3. VENTAJAS E INCONVENIENTES DE LA SIMULACIÓN
1.3.
5
Ventajas e inconvenientes de la simulación
Ventajas:
1. En casos en los que la resolución analı́tica no puede llevarse a cabo.
2. Cuando existen medios de resolver analı́ticamente el problema pero dicha resolución es complicada y costosa.
3. Si se desea experimentar antes de que exista el sistema.
4. Cuando es imposible experimentar sobre el sistema real por ser dicha experimentación destructiva.
5. En ocasiones en las que la experimentación sobre el sistema es posible pero no
ética.
6. Es de utilidad en sistemas que evolucionan muy lentamente en el tiempo.
Inconvenientes:
1. La construcción de un buen modelo puede ser una tarea muy laboriosa.
2. Frecuentemente el modelo omite variables o relaciones importantes entre ellas.
3. Resulta difı́cil conocer la precisión de la simulación, especialmente en lo relativo
a la precisión del modelo formulado.
6
CAPÍTULO 1. INTRODUCCIÓN
Capı́tulo 2
Generación de números
pseudoaleatorios uniformes en (0. 1)
2.1.
Introducción
Casi todos los métodos de simulación se basan en la posibilidad de generar números
aleatorios con distribución U (0. 1). Hasta el gran desarrollo de los ordenadores los
números aleatorios se obtenı́an por procedimientos experimentales (loterı́as, ruletas) y
se almacenaban en tablas. En la actualidad estos números son generados por ordenador
y se denominan pseudoaleatorios ya que, en realidad, todos los números de la sucesión
que se genera son predecibles a partir del primero, llamado semilla. En cualquier caso,
todo generador de números pseudoaleatorios mı́nimamente aceptable debe comportarse
como si se tratase de una muestra genuina de datos independientes de una U (0. 1).
2.1.1.
Propiedades deseables de un generador de números pseudoaleatorios
Para poder utilizar sin reservas un generador de números pseudoaleatorio éste debe
satisfacer los contrastes estadı́sticos más habituales en este contexto: los de aleatoriedad
(los contrastes de rachas o los de saltos), los de independencia (como los basados en
autocorrelaciones, el test de Ljung-Box, el contraste de pares seriados, etc) y los de
bondad de ajuste a una U (0. 1) (entre ellos es test chi-cuadrado y el de KolmogorovSmirnov). También existen otros contrastes especı́ficos que tratan de indagar a la vez
sobre varios de los aspectos anteriores. Entre ellos destacamos el contraste del poker y
el del coleccionista.
7
8
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
Además de estas propiedades de tipo estadı́stico existen otros requisitos computacionales. Unos y otros pueden resumirse en la siguiente lista.
Requisitos deseables para un generador
1. Producir muestras según una distribución U (0. 1).
2. Pasar los contrastes de aleatoriedad e independencia más habituales.
3. Que la sucesión generada sea reproducible a partir de la semilla.
4. Tener una longitud de ciclo tan grande como se desee.
5. Generar valores a alta velocidad.
6. Ocupar poca memoria.
2.2.
Método de los cuadrados medios
Es debido a von Neumann y tiene fundamentalmente sólo interés histórico.
1. Se toma un número entero inicial, x0 , llamado semilla, de 2n cifras.
2. Se eleva al cuadrado obteniendo un número de 4n cifras (completando, quizá, con
ceros a la izquierda).
3. Se considera x1 el número entero formado por las 2n cifras centrales.
4. Se eleva al cuadrado x1 y se repite el proceso anterior tantas veces como sea
preciso.
5. Finalmente se consideran los números ui =
xi
,
102n
ya en el intervalo (0. 1).
Ejemplo 2.2.1 Tómese n = 2 y x0 = 4122. Resulta:
x0 = 4122 x20 = 16|9908|84 x1 = 9908 x21 = 98|1684|64
x2 = 1684 x22 = 02|8358|56 x3 = 8358 x23 = 69|8561|64
x4 = 8561 x24 = 73|2907|21 x5 = 2907 x25 = 08|4506|49
De esta forma, los números pseudoaleatorios en (0. 1) son
u0 = 0. 4122 u1 = 0. 9908 u2 = 0. 1684 u3 = 0. 8385
u4 = 0. 8561 u5 = 0. 2907
Siguiendo, de nuevo, con n = 2, pero tomando como semilla x0 = 3708, se obtiene
x0
x2
x4
x6
x8
= 3708
= 1300
= 6100
= 4100
= 6100
x20
x22
x24
x26
= 13|7492|64
= 01|6900|00
= 37|2100|00
= 16|8100|00
x1
x3
x5
x7
= 7292
= 6900
= 2100
= 8100
x21
x23
x25
x27
= 56|1300|64
= 47|6100|00
= 04|4100|00
= 65|6100|00
Ası́ pues, como x8 = x4 , los valores u4, u5 , u6 , u7 se repetirán cı́clicamente de forma
indefinida. Este tipo de fenómenos de ciclo corto son su mayor inconveniente.
2.3. MÉTODO DE LEHMER
2.3.
9
Método de Lehmer
El método consiste en los siguientes pasos:
1. Se toma como semilla un número entero, x0 , de n cifras.
2. Se elige otro entero, c, de k cifras. Suele tomarse k < n.
3. Se calcula x0 · c, número de, a lo sumo, n + k cifras.
4. Se separan las k cifras de la izquierda de x0 · c y al número formado por las n
cifras restantes se le resta el que forman esas k cifras de la izquierda, dando lugar
a x1 .
5. Se repite este proceso tantas veces como sea necesario.
6. Se devuelven los valores ui =
xi
.
102n
Ejemplo 2.3.1 Tomando n = 4, k = 2, x0 = 4122 y c = 76, se obtiene
x0
x1
x2
x3
x4
x5
= 4122
= 3241
= 6292
= 8145
= 8959
= 0816
x0 · c = 31|3272
x1 · c = 24|6316
x2 · c = 47|8192
x3 · c = 61|9020
x4 · c = 68|0884
x5 · c = 06|2016
3272 − 31 = 3241
6316 − 24 = 6292
8192 − 47 = 8145
9020 − 61 = 8959
0884 − 68 = 0816
2016 − 06 = 2010
De esta forma
u0 = 0. 4122 u1 = 0. 3241 u2 = 0. 6292 u3 = 0. 8145
u4 = 0. 8959 u5 = 0. 0816
Todavı́a en el caso de que n = 4 y k = 2, pero con x0 = 2000 y c = 50, se tiene
x0 · c = 10|0000 y ası́ x1 = 0000 − 10 = −10 < 0. Este es precisamente uno de
los peores inconvenientes de este método: la aparición de iterantes negativos. También
aparecen, con frecuencia, ciclos cortos (en particular, el cero es un valor absorbente de
este generador).
10
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
2.4.
Métodos congruenciales
Se basan en la idea de considerar una combinación lineal de los últimos k enteros
generados y calcular su resto al dividir por un entero fijo m. El método congruencial
lineal simple que procede como sigue:
1. Elegir un número entero positivo m (normalmente en relación con el tipo de
enteros que se va a usar) y otros dos números enteros, a y c, tales que 0 < a < m
y 0 ≤ c < m.
2. Fijar la semilla x0 , un valor entero inicial que cumpla 0 ≤ x0 < m.
3. Obtener de forma recurrente
xn = (axn−1 + c) mod m
para n = 1, 2, . . .
4. Devolver los valores un =
xn
,
m
n = 0. 1, . . .
Cuando tomamos c = 0 el generador se dice congruencial multiplicativo. Si c > 0,
se dice congruencial mixto.
Ejemplo 2.4.1 Considérese un generador congruencial con m = 8, a = 5, c = 4:
xn = (5xn−1 + 4) mod 8
Tomando como semilla los valores 5 ó 2 se obtiene:
x0 = 5 x1 = 5 x2 = 5 · · ·
x0 = 2 x1 = 6 x2 = 2 x3 = 6 · · ·
que presentan ciclos de longitud 1 y 2 respectivamente.
Cambiando el valor de c a 2 se tiene xn = (5xn−1 + 2) mod 8 y ası́,
x0 = 5 x1 = 3 x2 = 1 x3 = 7 x4 = 5 · · ·
x0 = 2 x1 = 4 x2 = 6 x3 = 0 x4 = 2 · · ·
donde ambos ciclos son de longitud cuatro.
Finalmente dejando el mismo valor de m pero eligiendo a = 5 y c = 5, se tiene
xn = (5xn−1 + 5) mod 8, que conduce a
x0
x5
x0
x5
=5
=2
=2
=3
x1
x6
x1
x6
=6
=7
=7
=4
x2
x7
x2
x7
=3
=0
=0
=1
x3
x8
x3
x8
=4
=5
=5
=2
con ciclo de longitud 8, que es el máximo valor posible.
x4 = 1
···
x4 = 6
···
2.4. MÉTODOS CONGRUENCIALES
2.4.1.
11
Generadores congruenciales de ciclo máximo
Además de las propiedades estadı́sticas deseables para cualquier generador, una
cuestión importante para los generadores congruenciales (como se ha visto en los ejemplos previos) es la de garantizar que el ciclo del generador sea máximo (o, cuando
menos, muy elevado). En la práctica tratará de tomarse el ciclo igual o muy próximo
al número de enteros de tipo largo del lenguaje en cuestión.
En general, se define la longitud del ciclo (o perı́odo) de un generador de números
pseudoaleatorios uniformes, como el menor número entero positivo, p, que cumple que
existe un n0 natural tal que xi+p = xi para todo i = n0 . n0 + 1, . . .
En el caso de un generador congruencial mixto el máximo valor para el perı́odo es m.
También puede demostrarse que si un generador congruencial tiene ciclo máximo
para cierta elección de la semilla, entonces lo tiene para cualquier otra.
Un resultado que sirve para caracterizar qué propiedades deben cumplir los parámetros de un generador congruencial para que tenga perı́odo máximo es el teorema de
Knuth (1969).
Teorema 2.4.1 (Knuth) Las siguientes condiciones son necesarias y suficientes para
que un generador congruencial con parámetros m, a y c, tenga perı́odo máximo (i.e.
p = m).
1. c y m son primos entre sı́ (i.e. m.c.d. (c, m) = 1).
2. a − 1 es múltiplo de todos los factores primos de m (i.e. a ≡ 1mod g, para todo
g factor primo de m).
3. Si m es múltiplo de 4, entonces a − 1 también lo ha de ser (i.e. m ≡ 0 mod 4 ⇒
a ≡ 1 mod 4).
A la luz del teorema de Knuth, es fácil darse cuenta porqué sólo el tercero de los
generadores del ejemplo anterior tenı́a perı́odo óptimo.
12
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
2.4.2.
Generadores congruenciales de algunos lenguajes y bibliotecas de rutinas
En ordenadores binarios es muy común elegir m = 2β o m = 2β − 1, donde β
depende del tamaño de palabra (tı́picamente m será el mayor entero representable en
el ordenador o una unidad mayor que él).
En los generadores con m = 2β resulta especialmente fácil expresar las condiciones
del teorema de Knuth de forma mucho más sencilla:
Ası́, al ser m una potencia de 2, su único factor primo es el 2 y, por tanto la primera
condición equivale a que c sea impar. Para β ≥ 2 se tiene que m es múltiplo de 4 y,
por tanto la tercera condición impone que a − 1 también lo sea. Por último, de nuevo
por ser el 2 el único factor primo de m, la segunda condición pedirı́a que a − 1 fuese
par, lo cual ya es consecuencia de que sea múltiplo de 4.
En resumen, si m = 2β , con β ≥ 2, el generador congruencial tiene perı́odo máximo
si y sólo sı́ c es impar y a = 4k + 1, siendo k un número natural.
Algunos generadores habituales en lenguajes con enteros (con signo) de 36 bits
corresponden con las elecciones
m = 235
m = 235
a = 27 + 1 c = 1
a = 515
c=1
Todos ellos tienen tienen perı́odo máximo (e igual a 235 ' 3,44 × 1010 ).
Otros generadores congruenciales para enteros (con o sin signo) de 32 bits y algunos
lenguaje o bibliotecas que los usan o los han usado en el pasado son
m = 231
m = 231 − 1
m = 231 − 1
m = 232
a = 314159269
a = 16807
a = 630360016
a = 663608941
c = 453805245
c=0
APL, IMSL y SIMPL/I
c=0
Algunos FORTRAN
c=0
Ahrens y Dieter (1974)
Aunque sólo el primero tiene perı́odo máximo, los demás lo tienen muy elevado.
El lenguaje C (bajo UNIX) posee un generador congruencial de números pseudoaleatorios de 48 bits: el drand48. Sus parámetros son m = 248 , a = 25214903917 y
c = 11. La semilla se establece mediante la sentencia srand48() introduciendo como
argumento un entero de 32 bits que corresponde a los 32 bits más significativos de x0
(entero de 48 bits). Los 16 bits de menor orden se toman siempre coincidentes con el
número (decimal) 13070. Los parámetros a y c se pueden modificar por el usuario desde
otras rutinas del C. Los valores por defecto para estas cantidades ofrecen un generador
de perı́odo máximo ya que m = 2β , con β = 48, c es impar y a = 6 303 725 979 · 4 + 1.
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR
2.4.3.
13
Otros generadores congruenciales
Generador congruencial lineal múltiple
xn = (a1 xn−1 + a2 xn−2 + · · · + ak xn−k + c) mod m
Generadores congruenciales no lineales
xn = g(xn−1 ) mod m
Knuth(1981): xn = g(xn−1 ) mod m, con g(x) = ax2 + bx + c.
Generadores congruenciales matriciales
xn = (Axn−1 + C) mod m
con xn un vector d−dimensional y A y C matrices d × d. Los elementos de los vectores
y de las matrices son enteros entre 1 y m − 1.
2.5.
Medidas estadı́sticas de la calidad de un generador de números pseudoaleatorios
La mayorı́a de los contrastes estadı́sticos para estudiar la calidad de un generador
de números aleatorios se basan en medir posibles discrepancias (en algún sentido)
de las muestras generadas por el método en cuestión con respecto a las hipótesis de
aleatoriedad, independencia y ajuste a una distribución U (0. 1).
En casi todos los casos se acaba recurriendo a un contraste de tipo chi-cuadrado
en el que se comparan las frecuencias esperadas, ei , de ciertas modalidades, con las
observadas, oi , mediante el estadı́stico
D=
k
X
(oi − ei )2
i=1
ei
,
que seguirá, aproximadamente, una distribución χ2k−1 , bajo la hipótesis nula que se
contrasta. A continuación detallamos algunos de los contrastes más habituales.
2.5.1.
Contraste chi-cuadrado de Pearson
El test chi-cuadrado está basado en un estadı́stico que, para una variable discreta o
de tipo cualitativo, compara la frecuencia de aparición de cada una de las modalidades
observadas (ni ) con las frecuencias esperadas, en base a la distribución de probabilidad
especificada (ei ).
Concretamente, para una variable discreta con k modalidades, el contraste se basa
en el estadı́stico sugerido por Pearson en el año 1900:
Q=
k
X
(ni − ei )2
i=1
ei
14
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
cuya distribución aproximada es la de una χ2k−1 , siempre que la distribución especificada
sea la correcta.
Comentarios:
1. Es muy corriente aplicar el test chi-cuadrado aún en casos en los que la distribución de la variable no está totalmente especificada sino que depende de algún
parámetro que, por tanto, habrá de ser estimado (por ejemplo el caso en que se suponga que la variable en concreto sigue una distribución de Poisson y resta por especificar
su parámetro λ). En estos casos la distribución aproximada del test ha de ser corregida
para incorporar esta información pasando a ser una χ2k−r−1 , siendo r el número de
parámetros estimados por máxima verosimilitud.
2. El contraste chi-cuadrado se utiliza habitualmente incluso cuando la variable
objeto de estudio es continua. En este caso, dicha variable ha de ser agrupada en
intervalos de clase.
3. Una limitación, bastante recomendable en la práctica, es la de no llevar a cabo
el contraste chi-cuadrado cuando la frecuencia esperada de alguna clase sea menor que
5. Aquellos casos en que esta condición falla pueden tratarse agrupando varios valores
distintos hasta que se cumpla esta restricción.
Ejemplo 2.5.1 Considérese los siguientes datos sobre “espacio de disco (en MBytes)
ocupado por usuario en una estación de trabajo”: 35, 45, 47, 50. 31, 30. 25, 33, 35,
40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.
Estúdiese la bondad de ajuste de dichos datos a una distribución U [a, b], realizando
el contraste chi-cuadrado.
En primer lugar se estiman por máxima verosimilitud los parámetros de la distribución uniforme, obteniéndose respectivamente el mı́nimo y el máximo muestral: â = 25
y b̂ = 55. Dividiendo el intervalo [25, 55] en cuatro clases de igual longitud se obtiene
la siguiente tabla:
clases
ni
[25, 320 5) 3
[320 5, 40) 5
[40. 470 5) 8
[470 5, 55] 4
Total
20
ei (ni − ei )2 /ei
5
00 8
5
0
5
10 8
5
00 2
20
20 8
En este caso el valor del estadı́stico es Q = 20 8, que corresponde a un nivel crı́tico
de p = 00 09426, para una distribución chi-cuadrado con 4 − 2 − 1 = 1 grado de libertad,
con lo cual aunque puede aceptarse la hipótesis de que la distribución poblacional es
uniforme con α = 00 01 o α = 00 05, no se aceptarı́a con α = 00 1.
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR
2.5.2.
15
Contraste de Kolmogorov-Smirnov
A diferencia del procedimiento anterior, el test de Kolmogorov-Smirnov está especialmente diseñado para el contraste de ajuste a distribuciones continuas.
El contraste de Kolmogorov-Smirnov está basado en la distribución del estadı́stico
Dn :
Dn = sup |Fn (x) − F (x)|
x∈R
que representa la máxima discrepancia, en vertical, entre la función de distribución
empı́rica
Número de observaciones Xi ≤ x
Fn (x) =
n
y la teórica (F ).
Dn = máx Dn,i = máx{|Fn (x(i) ) − F (x(i) )|, |Fn− (x(i) ) − F (x(i) )|}
i=1,2,...,n
Ejemplo 2.5.2 Contrastar que la muestra de datos de ocupación de disco provenga de
una distribución N (40. 3).
x(i)
25
30
31
33
35
40
42
45
46
47
49
50
55
F (x(i) ) Fn (x(i) ) Fn− (x(i) )
0
00 05
0
0
0
0
0 00043
0 10
0 05
0
0
0 00135
0 15
00 10
00 00982
00 20
00 15
00 04779
00 30
00 20
0
0
05
0 40
00 30
00 74751
00 50
00 40
00 95221
00 60
00 50
0
0
0 97725
0 70
00 60
00 99019
00 80
00 70
0
0
0 99865
0 85
00 80
00 99957
00 95
00 85
1
1
00 95
Dn,i
00 05
00 09957
00 14865
00 19018
00 25221
00 2
00 34751
00 45221
00 37725
00 29019
00 19865
00 14957
00 05
Se obtiene Dn = 00 45221, cuyo nivel crı́tico es p < 00 01, que indica un claro rechazo
de la hipótesis establecida.
2.5.3.
Contrastes de independencia
Una de las hipótesis estadı́sticas más importantes asumidas en toda la inferencia
paramétrica clásica es que la muestra no es más que una realización de un conjunto de
variables independientes.
Métodos gráficos
Como paso previo a la utilización de métodos cuantitativos siempre será ilustrativo
representar gráficamente los datos frente al tiempo, es decir, secuencialmente según su
orden de recogida (Xi frente al ı́ndice i).
16
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
Las situaciones de dependencia se corresponden con gráficas demasiado estables o
demasiado cambiantes, es decir, o bien muy planas, o bien en continuos dientes de sierra
o zigzagueantes. Por el contrario, los casos de ausencia de dependencia se identificarán
mediante gráficas moderadamente cambiantes.
Otro tipo de gráficas que también permite detectar situaciones de dependencia son
las gráficas en las que se representa cada valor de la muestra frente al valor anteriormente observado (Xi+1 frente a Xi ).
Otra forma de estudiar si hay dependencia en la muestra es mediante el cálculo de
los coeficientes de autocorrelación. Del mismo modo que el coeficiente de correlación
lineal mide, de alguna forma, la presencia o ausencia de dependencia entre las variables
en cuestión, pueden definirse toda una serie de coeficientes de autocorrelación
que, en ese mismo sentido, miden la dependencia entre los datos observados con cierto
número de instantes de diferencia.
Dada una muestra X1 , X2 , . . . , Xn , se define el coeficiente de autocorrelación muestral de orden uno como el valor
Pn
(Xi − X)(Xi−1 − X)
r(1) = i=2 Pn
2
i=1 (Xi − X)
que expresa, de alguna manera, la correlación entre cada dato y el observado un instante antes.
En general, el coeficiente de autocorrelación de orden k (o a k retardos), se define
por
Pn
r(k) =
i=k+1 (Xi − X)(Xi−k
Pn
2
i=1 (Xi − X)
− X)
Una forma gráfica de visualizar los coeficientes de autocorrelación es el llamado
correlograma. En él se representan, para los primeros retardos, unas barras con altura
igual al coeficiente de autocorrelación correspondiente al retardo en cuestión. Ası́ pues,
las barras del correlograma oscilan entre −1 y 1. Es obvio que la dependencia positiva
se caracterizará por la presencia de muchos coeficientes de correlación sustancialmente
mayores que cero, mientras que la negativa vendrá dada por autocorrelaciones de signo
alternado, siendo la del primer retardo negativa. El caso de independencia se corresponde con autocorrelaciones cercanas a cero.
Bajo la hipótesis de independencia, cada coeficiente de autocorrelación muestral,
r(k), tiene distribución lı́mite normal de media cero y varianza 1/n. Este hecho permite,
por sı́ mismo, el contrastar la hipótesis sobre si el coeficiente de autocorrelación teórico
es cero.
√De hecho, es habitual incluir en el correlograma bandas de confianza a una distancia
2/ n del eje horizontal, de manera que se considerarán siginificativamente distintos de
cero aquellas autocorrelaciones que sobresalgan de los lı́mites.
Otra posibilidad es incluir bandas de amplitud variable, teniendo en cuenta que, en
el supuesto de que sean no nulas las primeras k − 1 autocorrelaciones (ρ1 , . . . , ρk−1 ), la
P
2
1 + k−1
j=1 ρj
varianza de r(k) es
.
n
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR
17
Contrastes basados en rachas
Pensemos en una muestra de una variable con dos posibles resultados (por ejemplo
ESSSEESEESES, con E: “error en un dispositivo” y S: “dispositivo sin error”).
Definición 2.5.1 Una racha es una sucesión de valores consecutivos repetidos que
esté flanqueada por valores adyacentes distintos.
En el ejemplo anterior las rachas serı́an E, SSS, EE, S, EE, S, E, S.
Independientemente de lo probable que sea observar los valores concretos de la variable, es obvio que el número total de rachas (o las longitudes de las mismas) constituye
una medida de lo aleatoriamente que están repartidos los posibles valores en cuestión
a lo largo de la muestra observada. Demasiadas rachas implican excesiva alternancia
de valores (dependencia negativa), mientras que pocas rachas indican largas sucesiones
de valores contiguos repetidos (dependencia positiva).
El contraste del número total de rachas
Considérese una muestra de tamaño n correspondiente a una variable con dos posibles resultados, de manera que existen n1 observaciones de un tipo y n2 iguales al
otro valor de la variable en cuestión (n1 + n2 = n). Si llamamos R al número total
de rachas observadas en la muestra, pueden obtenerse la media y la varianza de esta
variable aleatoria (condicionadas a que hay n1 y n2 de elementos de cada tipo):
E(R) = 1 +
V ar(R) =
2n1 n2
n
2n1 n2 (2n1 n2 − n)
n2 (n − 1)
Cuando el tamaño muestral n tiende a infinito, de forma que además n1 /n tienda a
una
la distribución
de la variable R se puede aproximar por la distribución
constante,
p
N E(R), V ar(R) .
Aunque originalmente el test de las rachas está diseñado para una distribución con
sólo dos posibles valores, suele aplicarse a aquellos casos en los que la distribución en
cuestión es continua codificando las observaciones con los valores + o −, según el dato
en cuestión quede por arriba o por abajo de la mediana muestral.
18
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
El contraste de rachas ascendentes y descendentes
Cuando la variable en cuestión presenta una distribución de tipo continuo, a pesar
de que el test de las rachas por encima o por debajo de la mediana se puede usar,
existe una contraste, basado en el número de cierto tipo de rachas, que trata de hacer
un uso más intensivo de la continuidad de la variable. Se trata del contraste basado en
el número total de rachas ascendentes o descendentes:
Para cada par de datos consecutivos se anota un signo + si están en orden ascendente y − si están en orden descendente. Con el conjunto de datos (n en total) se
consigue formar una tira de n − 1 signos + o −, sobre los cuales se cuenta el número
total de rachas R.
La distribución del estadı́stico R está tabulada para tamaños muestrales pequeños (normalmente para n < 25), mientras que, cuando el número de datos, n, excede
tabulados, puede usarse una aproximación por la distribución
de los valores
p
N (2n − 1)/3, (16n − 29)/90 .
El contraste de Ljung-Box
Existen distintos procedimientos para contrastar la independencia mediante la realización de un contraste sobre si los primeros m coeficientes de autocorrelación son
cero. Uno de los más utilizados a tal efecto es el de Ljung-Box, que utiliza para ello el
estadı́stico
m
X
r(k)2
Q = n(n + 2)
n−k
k=1
que se distribuye, aproximadamente, según una χ2m−1 .
Ejemplo 2.5.3 Considerénse los datos de “espacio de disco duro ocupado por usuario”: 35, 45, 47, 50. 31, 30. 25, 33, 35, 40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.
Contrastar la independencia usando los test de las rachas y el de Ljung-Box.
Test del número de rachas
Dada la muestra original, se clasifican ahora los datos de la misma en función de
que se hallen por encima o por debajo de la mediana, Me = (42 + 45)/2 = 430 5 :
− + + + − − − − − − + + + − − + + + −+
El número de rachas es R = 8 y n1 = n2 = 10. En las tablas puede encontrarse el
p-valor: p = 00 256. Por tanto, se acepta la independencia.
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR
19
Test de las rachas ascendentes y descendentes
La secuncia de signos + y - correspondiente a los datos de la muestra es:
+ + + − − − + + + + + + − − + − + − +
El número de rachas es R = 9. Bajo independencia, la probabilidad de que el número
de rachas ascendentes y descendentes sea menor o igual que 9 es 00 0255. De aquı́ se
deduce que el nivel crı́tico del contraste es p = 00 051. Este valor plantea serias dudas
sobre la hipótesis de independencia: tendrı́amos una aceptación muy justa de dicha
hipótesis con nivel α = 00 05 pero ya no con α = 00 06.
Test de Ljung-Box
Tomemos m = 4. Los cuatro primeros coeficientes de autocorrelación son r(1) =
0
0 52550. r(2) = 00 33034, r(3) = −00 09887 y r(4) = −00 06706.
A partir de estos valores, el estadı́stico de Ljung-Box resulta Q = 90 44, cuyo pvalor está comprendido entre 00 01 y 00 025, como se puede ver en las tablas de una
chi-cuadrado con tres grados de libertad.
En resumen, parece que existen razones para rechazar la independencia.
2.5.4.
El contraste del coleccionista
Este procedimiento requiere fijar un entero positivo, M , y discretizar los valores
generados, X1 , X2 , . . . , Xn , de la forma dM · Xi e+1, donde dxe denota la parte entera de
x. Ası́ se consigue una sucesión de enteros aleatorios cuyos valores están comprendidos
entre 1 y M . Ahora se procede (como un coleccionista) a contabilizar cuál es el número,
Q, (aleatorio) de valores a generar hasta que se completa la colección de todos los
enteros entre 1 y M .
Obviamente, bajo las hipótesis de aleatoriedad y distribución U (0. 1), cada posible
entero entre 1 y M tiene la misma probabilidad de aparecer en cada generación y,
por tanto, resulta posible calcular la distribución de probabilidad de Q. De esta forma
podemos utilizar los valores calculados de las probabilidades
P (Q = M ) , P (Q = M + 1) , . . .
para calcular las frecuencias esperadas de cada clase y confrontarlas con las observadas
vı́a el estadı́stico chi-cuadrado.
20
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
2.5.5.
Contrastes de salto
Dados dos números α y β tales que 0 ≤ α < β ≤ 1, los contrastes de saltos tratan
de examinar, para cada valor generado, Xi , si se cumple α ≤ Xi ≤ β, anotando, en ese
caso, un 1 (0 en caso contrario). En estas condiciones, la probabilidad de que aparezca
un 1 es p = β − α y la de que aparezcan j ceros desde la aparición de un uno hasta la
del siguiente uno es pj = p (1 − p)j , j = 0. 1, 2, . . . (que corresponde a una distribución
geométrica). De nuevo puede aplicarse el test chi-cuadrado a las clases resultantes.
Las elecciones más habituales de α y β dan lugar a los siguientes contrastes:
El test de rachas bajo la mediana
Consiste en tomar α = 0 y β = 1/2.
El test de rachas sobre la mediana
Corresponde al caso α = 1/2 y β = 1.
El test del tercio medio
Que no es más que la elección α = 1/3 y β = 2/3.
2.5.6.
El contraste de permutaciones
Dada la sucesión de números pseudoaleatorios generada se consideran bloques de T
valores consecutivos. Cada uno de los bloques puede presentar una cualquiera de las T !
posibles ordenaciones de esos T valores. Además, de ser el generador adecuado, cada
posible ordenación ocurrirá con igual probabilidad: T1! . El test consiste en observar
una gran número de bloques y comparar las frecuencias observadas de cada posible
ordenación con las esperadas mediante el test chi-cuadrado. Las elecciones más comunes
son T = 3, 4, ó 5.
2.5.7.
El contraste del poker
En un primer momento se procede como en el contraste del coleccionista con M =
10. A partir de aquı́ hay varias formas de actuar:
Poker 1
Se toman conjuntos sucesivos de cinco enteros y, para cada uno, se determina cuál
de las siguientes posibilidades se da:
1. Un mismo entero se repite cinco veces (abreviadamente, AAAAA).
2. Un mismo entero se repite cuatro veces y otro distinto aparece una vez (AAAAB).
3. Un entero se repite tres veces y otro distinto se repite dos (AAABB).
4. Un entero se repite tres veces y otros dos distintos aparecen una vez cada uno
(AAABC).
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR
21
5. Un entero se repite dos veces, otro distinto se repite también dos veces y un tercer
entero diferente aparece una sóla vez (AABBC).
6. Un entero se repite dos veces y otros tres distintos aparecen una vez cada uno
(AABCD).
7. Los cinco enteros que aparecen son todos distintos (ABCDE).
Bajo la hipótesis de aleatoriedad y ajuste a una U (0. 1), pueden calcularse las
probabilidades de estas modalidades:
P (AAAAA) = 0. 0001, P (AAAAB) = 0. 0045, P (AAABB) = 0. 0090.
P (AAABC) = 0. 0720. P (AABBC) = 0. 1080. P (AABCD) = 0. 5040.
P (ABCDE) = 0. 3024.
Es frecuente que las clases AAAAA y AAAAB se agrupen a la hora de aplicar el
test chi-cuadrado, ya que, en caso contrario, la restricción habitual ei ≥ 5 llevarı́a a
que 0. 0001 · n5 ≥ 5, es decir, n ≥ 250 000.
Poker 2
Algo también bastante habitual es usar conjuntos de cinco enteros (como en el caso
anterior) pero definiendo las categorı́as según el número de enteros distintos de entre
los cinco observados. Ası́
P (1 entero diferente) = 0. 0001, P (2 enteros diferentes) = 0. 0135,
P (3 enteros diferentes) = 0. 1800. P (4 enteros diferentes) = 0. 5040.
P (5 enteros diferentes) = 0. 3024,
procediendo frecuentemente a agrupar las dos primeras modalidades.
Poker 3
A menudo se consideran conjuntos de cuatro enteros. En tal caso,
P (AAAA) = 0. 001, P (AAAB) = 0. 036, P (AABB) = 0. 027,
P (AABC) = 0. 432, P (ABCD) = 0. 504,
siendo también bastante habitual el agrupar las dos primeras categorı́as.
22
2.5.8.
CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
El contraste de pares seriados
La idea consiste en fijar un entero M ≥ 2 y considerar los enteros dM · Xi e + 1,
tomar ahora estos valores apareados y utilizar el contrate chi-cuadrado considerando
como categorı́as los posibles pares (i, j) tales que i, j ∈ {1, 2, . . . , M }. Ası́ se medirá la
discrepancia entre la frecuencias observadas en estas categorı́as y las esperadas, iguales
todas a n2 M12 . La elecciones más frecuentes son M = 3, 10 ó 20.
2.5.9.
Chi-cuadrado sobre chi-cuadrado
Todos los contrastes anteriores se han planteado desde la perspectiva de la realización de una única prueba. Es decir, se toma un número, n (normalmente grande), de
valores obtenidos por el generador y se realiza el contraste evaluando el estadı́stico y
comparándolo con el punto crı́tico de una chi-cuadrado para decidir si se acepta o rechaza la hipótesis (independencia, ajuste, aleatoriedad). En realidad tiene mucho más
sentido la realización de un gran número de pruebas, evaluando en cada una el valor
del estadı́stico y, o bien observar que la proporción de rechazos del test se aproxima al
valor nominal fijado (normalmente α = 0. 01 ó α = 0. 05), o más precisamente aplicando, de nuevo, el contraste chi cuadrado para comprobar el ajuste de la distribución del
estadı́stico a la chi-cuadrado especificada bajo la hipótesis nula.
Capı́tulo 3
Métodos universales para la
simulación de variables continuas
En lo que sigue se expondrán dos de los métodos generales para simular distribuciones continuas: el método de inversión y el de aceptación/rechazo. Ambos son aplicables
a gran número de contextos siempre que la distribución que se desea simular tenga ciertas caracterı́sticas. En ambos casos la herramienta indispensable es algún método de
generación de números pseudoaleatorios uniformes en (0,1).
3.1.
El método de inversión
Es el método universal por antonomasia para simular distribuciones continuas. También a veces se denota método de Montecarlo. Está basado en el siguiente resultado
teórico.
Teorema 3.1.1 (de inversión) Sea X una variable aleatoria con función de distribución F , continua e invertible. Entonces, la variable aleatoria U = F (X), transformada
˙
de la original mediante su propia función de distribución, tiene distribución U (0, 1).
Recı́procamente, si U ∈ U (0, 1) entonces la variable F −1 (U ) tiene función de distribución F (la misma distribución que la de X).
Demostración: Denotando por G la función de distribución de U y dado un valor
u ∈ (0, 1), se tiene
G (u) = P (U ≤ u) = P (F (X) ≤ u) = P X ≤ F −1 (u) = F F −1 (u) = u
Por otra parte es obvio que G (u) = 0 si u ≤ 0 y G (u) = 1 si u ≥ 1, con lo cual G
es la función de distribución de una U (0, 1).
Para la segunda parte, denotando por H la función de distribución de X = F −1 (U ),
con U (0, 1),
H (x) = P (X ≤ x) = P F −1 (U ) ≤ x = P (U ≤ F (x)) = F (x)
23
24 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
El resultado anterior da pie al siguiente algoritmo genérico para simular cualquier
variable continua con función de distribución F invertible:
Algoritmo (método de inversión)
1. Generar U ∼ U (0, 1).
2. Devolver X = F −1 (U ).
Ejemplo 3.1.1 Dar un algoritmo, basado en el método de inversión, para simular la
distribución exponencial de parámetro λ > 0.
La función de densidad de una exp (λ) es
λe−λx si x ≥ 0
f (x) =
0
si x < 0
y su función de distribución:
F (x) =
1 − e−λx
0
si x ≥ 0
si x < 0
que es continua e invertible en el intervalo [0. ∞). Obsérvese que
x = F −1 (u) ⇔ F (x) = u ⇔ 1 − e−λx = u
ln (1 − u)
.
⇔ 1 − u = e−λx ⇔ x = −
λ
Como consecuencia, el algoritmo serı́a
1. Generar U ∼ U (0, 1).
)
.
2. Devolver X = − ln(1−U
λ
que, en versión simplificada, resulta:
0. Hacer L = −1/λ.
1. Generar U ∼ U (0, 1).
2. Devolver X = L · ln U
3. Repetir los pasos 1-2 tantas veces como se precise.
3.1. EL MÉTODO DE INVERSIÓN
3.1.1.
25
Ventajas e inconvenientes del método de inversión
La ventaja más importante del método de inversión es que, en general, es aplicable
a cualquier distribución continua. No obstante presenta algunos inconvenientes.
Inconvenientes del método de inversión
1. En ocasiones la función de distribución no tiene una expresión explı́cita (por
ejemplo para la distribución normal).
2. A veces, aún teniendo una expresión explı́cita para F (x), es imposible despejar
x en la ecuación F (x) = u (es decir, encontrar una expresión explı́cita para
F −1 (u)).
3. Aún siendo posible encontrar x = F −1 (u), puede ocurrir que esta expresión sea
complicada y conlleve una gran lentitud de cálculo.
El primero de los inconvenientes expuesto puede, a veces, subsanarse mediante el
uso de aproximaciones de la distribución en cuestión o mediante tabulaciones de la
misma. El segundo suele abordarse mediante la utilización de métodos numéricos para
la resolución aproximada de la ecuación F (x) = u. El mayor problema práctico que
esto conlleva es la necesidad de resolver numéricamente una ecuación cada vez que se
desee generar un nuevo número aleatorio que siga esa distribución (sin que los cálculos
hechos para el anterior valor simulado sean de ayuda).
3.1.2.
Algunas distribuciones que pueden simularse por el método de inversión
En lo que sigue u representa un número pseudoaleatorio en el intervalo (0,1).
Distribución exponencial (Exp(λ), λ > 0)
Función de densidad: f (x) = λe−λx , x ≥ 0.
Función de distribución: F (x) = 1 − e−λx , x ≥ 0.
ln (1 − u)
,
Inversa de la distribución: F −1 (u) = −
λ
ln u
Forma simplificada de la inversa: S(u) = −
,.
λ
Distribución de Cauchy
1
, x ∈ R.
π (1 + x2 )
1 arctan x
Función de distribución: F (x) = +
, x ∈ R.
2
π
Inversa de la distribución: F −1 (u) = tan π u − 12 .
Forma simplificada de la inversa: S(u) = tan πu.
Función de densidad: f (x) =
26 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
Distribución triangular en (0. a)
2
x
1−
, 0 < x < a.
a
a
x2
2
x−
, 0 < x < a.
Función de distribución: F (x) =
a
2a √
Inversa de la distribución: F −1 (u) = a 1 − 1 −√u .
Forma simplificada de la inversa: S(u) = a (1 − u) .
Función de densidad: f (x) =
Distribución de Pareto (a > 0 , b > 0)
aba
, x ≥ b.
xa+1
a
b
, x ≥ b.
Función de distribución: F (x) = 1 −
x
b
.
Inversa de la distribución: F −1 (u) =
(1 − u)1/a
b
Forma simplificada de la inversa: S(u) = 1/a .
u
Función de densidad: f (x) =
Distribución de Weibull (λ > 0 , α > 0)
α
Función de densidad: f (x) = αλα xα−1 e−(λx) , x ≥ 0
α
Función de distribución: F (x) = 1 − e−(λx) , x ≥ 0.
(− ln (1 − u))1/α
−1
Inversa de la distribución: F (u) =
.
λ
1/α
(− ln u)
Forma simplificada de la inversa: S(u) =
.
λ
La distribución de Laplace o doble exponencial (Lap(µ, λ) µ, λ > 0)
Función de densidad: f (x) = λ2 e−λ|x−µ| , para todo x ∈ R.
Función de distribución:
1 λ(x−µ)
e
si x < µ
2
F (x) =
1 −λ(x−µ)
1 − 2e
si x ≥ µ
Inversa de la distribución:

ln 2u


µ+
si u < 1/2
−1
λ
F (u) =

 µ − ln 2(1 − u) si u ≥ 1/2
λ
pudiéndose generar por el método de inversión, usando como auxiliar T ∼ Exp(λ) :
Algoritmo basado en el método de inversión
1. Generar U, V ∼ U (0. 1).
ln U
2. Hacer T =
.
λ
3. Si V < 1/2, devolver X = µ + T. En caso contrario,
hacer X = µ − T .
3.1. EL MÉTODO DE INVERSIÓN
3.1.3.
27
Inversión aproximada
Como se comentó anteriormente, en casos en los que no es posible determinar una
expresión explı́cita para F (x) o en los que no se puede hallar la de su inversa, puede optarse por encontrar expresiones sencillas que aproximen razonablemente bien la
función F −1 (u).
Ejemplo 3.1.2 A continuación se detalla la aproximación encontrada por Odeh y
Evans para la distribución normal estándar.
Estos autores consideran la función auxiliar
√
√
A −2 ln v
√
,
−2 ln v
g (v) =
B
−2 ln v
siendo A (x) =
4
X
i
ai x y B (x) =
i=0
4
X
bi xi , con
i=0
a0 = −0. 322232431088
a2 = −0. 342242088547
a4 = −0. 0000453642210148
b1 = 0. 588581570495
b3 = 0. 103537752850
a1 = −1
a3 = −0. 0204231210245
b0 = 0. 0993484626060
b2 = 0. 531103462366
b4 = 0. 0038560700634
La aproximación consiste en utilizar g (1 − u) en lugar de F −1 (u) para los valores de
/ [10−20 , 1 − 10−20 ] (que sólo ocurre
u ∈ [10−20 , 12 ] y −g (u) si u ∈ [ 12 , 1 − 10−20 ]. Para u ∈
con una probabilidad de 2 · 10−20 ) la aproximación no es recomendable.
Algoritmo de Odeh y Evans
1.
2.
3.
4.
Generar U ∼ U (0, 1) .
Si U < 10−20 o U > 1 − 10−20 entonces volver a 1.
Si U < 0. 5 entonces hacer X = g (1 − U ) sino hacer X = −g (U ) .
Devolver X.
28 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
3.2.
El método de aceptación/rechazo
Es un método universal alternativo al de inversión que está adaptado al caso en
que, aunque se desconozca una fórmula explı́cita para F (x) o sea difı́cil de resolver
F (x) = u, sı́ se disponga de una expresión (preferiblemente sencilla) para la función
de densidad f (x). El método está basado en el siguiente resultado teórico.
Teorema 3.2.1 (de aceptacion/rechazo) Sea X una variable aleatoria con función de densidad f y sea U otra variable aleatoria, independiente de la anterior, con
distribución U (0, 1). Entonces, para cada c > 0, la variable aleatoria bidimensional
(X, c · U · f (X)) tiene distribución uniforme en el recinto
A = {(x, y) ∈ R2 /0 ≤ y ≤ cf (x)}
Recı́procamente, si dada una función de densidad f , un vector aleatorio (X, Y )
tiene distribución uniforme sobre el conjunto A, entonces, su primera componente, X,
es una variable aleatoria unidimensional con función de densidad f .
El teorema anterior establece la equivalencia entre la simulación de densidades unidimensionales y la simulación de variables bidimensionales con distribución uniforme
sobre el hipografo de c · f (x) (el conjunto de puntos del plano que quedan por debajo
de la gráfica de c · f pero por encima del eje OX). La idea del algoritmo consistirá en
utilizar el recı́proco en el teorema para simular valores de ese tipo de distribuciones
bidimensionales y luego tomar la primera componente. Para simular valores de esa
distribución bidimensional se usa también el teorema en sentido directo aplicándolo a
otra densidad auxiliar g, fácil de simular.
Supóngase que se desea simular una distribución con densidad f y que no es factible
hacerlo por el método de inversión. Considérese otra distribución, con densidad g, fácil
de simular, de forma que exista cierta constante c > 0 tal que
f (x) ≤ c · g (x) , para todo x ∈ R
Teniendo en cuenta esta condición, Af ⊂ Acg , donde
Af = {(x, y) /0 ≤ y ≤ f (x)} ,
Acg = {(x, y) /0 ≤ y ≤ c · g (x)} .
son los hipografos de f y de c · g.
Dado que la densidad g es fácil de simular, puede aplicarse la primera parte del
teorema de aceptación/rechazo para encontrar una variable aleatoria bidimensional,
(T, Y ), con distribución uniforme sobre Acg . Aceptando tan sólo los valores de (T, Y )
que pertenezcan a Af se tendrá una variable bidimensional con distribución uniforme
sobre Af . Técnicamente hablando estamos afirmando que la distribución condicionada
(T, Y ) |(T,Y )∈Af es uniforme sobre Af . Finalmente la segunda parte del teorema permite
obtener una variable con densidad f sin más que tomar la primera componente del par
obtenido.
3.2. EL MÉTODO DE ACEPTACIÓN/RECHAZO
29
De forma más detallada, el método constarı́a de los siguientes pasos:
1. Generar un valor T con densidad g.
2. Utilizar el teorema de aceptación/rechazo para generar un par (T, Y ) con distribución uniforme en Acg .
3. Comprobar si (T, Y ) ∈ Af . En caso afirmativo, hacer X = T , en caso contrario,
volver al paso 1.
El par de valores (T, Y ) se obtiene simplemente simulando U ∼ U (0, 1) y definiendo
Y = c · U · g (T ). Además, la condición (T, Y ) ∈ Af que hay que comprobar en el último
paso equivale a Y ≤ f (T ). Teniendo todo esto en cuenta el algoritmo procederı́a como
sigue:
Algoritmo de aceptación/rechazo
1. Repetir
1.1. Generar U ∼ U (0, 1) y T con densidad g.
2. Hasta que c · U · g (T ) ≤ f (T ) .
3. Devolver X = T.
Ejemplo 3.2.1 (densidades acotadas en un intervalo cerrado) Sea f una función de densidad con soporte en un intervalo cerrado [a, b] (i.e., {x/f (x) 6= 0} = [a, b])
de tal forma que ∃M > 0 tal que f (x) ≤ M ∀x (es decir, f es acotada superiormente).
En este caso puede tomarse como densidad auxiliar g la de una U [a, b].
En efecto, tomando c = M (b − a) y teniendo en cuenta que
1
si x ∈ [a, b]
b−a
g (x) =
0
si x ∈
/ [a, b]
c
se tiene que f (x) ≤ M = b−a
= c · g (x), ∀x ∈ [a, b]. Ası́ pues, el algoritmo quedarı́a
como sigue:
1. Repetir
1.1. Generar U, V ∼ U (0, 1).
1.2. Hacer T = a + (b − a) V .
2. Hasta que M · U ≤ f (T ).
3. Devolver X = T .
30 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
3.2.1.
Eficiencia del algoritmo de aceptación/rechazo
Dado que el algoritmo de aceptación/rechazo repite los pasos 1-2 un número aleatorio de veces, será importante medir, de alguna forma, la eficiencia del mismo.
En primer lugar, existen restricciones obvias para la constante c que ha de elegirse
en el algoritmo. Ası́, debido al hecho de que f (x) ≤ c · g (x), se tiene
Z
Z
1 = f (x) dx ≤ c g (x) dx = c,
luego c ≥ 1. Puede demostrarse además que si c = 1 entonces f y g serı́an densidades
correspondientes a la misma distribución (iguales salvo en un conjunto de probabilidad
cero) y, por tanto, si g es fácil de simular igualmente fácil lo serı́a f . Ası́ pues, se tiene
c > 1.
La comprobación que aparece en el paso 2 del algoritmo es c · U · g (T ) ≤ f (T ). La
probabilidad de aceptación de esta condición es
R
f (x) dx
1
area (Af )
=R
= .
p=
area (Acg )
c
c · g (x) dx
De ésta se obtiene la probabilidad de rechazo: q = c−1
. El flujo del algoritmo es
c
aleatorio y el número de repeticiones de los pasos 1-2 hasta poder generar un valor de f
(paso 3) es una variable aleatoria, N , con distribución geométrica (entendida ésta como
el número de pruebas necesarias hasta obtener el primer éxito). En tales circunstancias
el número medio de repeticiones de los pasos 1-2 es
E (N ) =
1
=c
p
luego c puede interpretarse como el número medio de comparaciones necesarias (o de
repeticiones de los pasos 1-2, o de pares de variables (T, U ) que se necesitan generar)
hasta obtener un valor simulado de la variable X. Es obvio, por tanto, que cuanto más
cercano a 1 sea el valor de c más eficiente será el algoritmo.
3.2.2.
Elección de c
Una vez fijada la densidad g es obvio que el mejor valor de c (que denotaremos por
copt ) se obtiene al encontrar el más pequeño número real c que verifica f (x) ≤ c · g (x),
es decir
c≥
f (x)
, para todo x del soporte de g (que ha de contener al de f ).
g (x)
De esta forma, ha de cumplirse que f (x) 6= 0 ⇒ g (x) 6= 0 y además
f (x)
.
x/g(x)>0 g (x)
c ≥ máx
Ası́ pues, el menor valor posible que cumple esta condición es
f (x)
.
x/g(x)>0 g (x)
copt = máx
3.2. EL MÉTODO DE ACEPTACIÓN/RECHAZO
31
Ejemplo 3.2.2 (Simulacion de la normal mediante la doble exponencial) Se
trata de simular la distribución normal estándar, cuya función de densidad viene dada
por
x2
1
f (x) = √ e− 2 , para todo x ∈ R,
2π
mediante aceptación/rechazo, utilizando como densidad auxiliar la doble exponencial de
parámetro 1 (o distribución de Laplace, Lap(0,1) o Lap(1)), cuya función de densidad
viene dada por
1
g (x) = e−|x| , para todo x ∈ R.
2
El valor óptimo para c es
2
f (x)
copt = máx
= máx
x∈R g (x)
x∈R
x
√1 e− 2
2π
1 −|x|
e
2
r
=
2
máx eϕ(x) =
π x∈R
r
2 máxx∈R ϕ(x)
e
,
π
2
donde ϕ (x) = − x2 + |x|. Dado que esta función es simétrica, continua en toda la recta
real y diferenciable tantas veces como se desee salvo en x = 0, bastará encontrar su
máximo absoluto en el intervalo [0. ∞]:
x > 0 ⇒ ϕ0 (x) = −x + 1, ϕ00 (x) = −1;
{x > 0. ϕ0 (x) = 0} ⇔ x = 1
ϕ00 (1) < 0.
De esta forma, ϕ alcanza un máximo relativo en x = 1 y otro de idéntico valor en
x = −1. Resulta fácil demostrar que ambos son máximos absolutos (por los intervalos
de crecimiento y decrecimiento de la función). Consiguientemente,
r
r
r
2 ϕ(1)
2 1/2
2e
e
=
e =
' 1. 3155.
copt =
π
π
π
Como consecuencia el algoritmo procederı́a del siguiente modo:
1. Repetir
1.1. Generar U, V, W ∼ U (0, 1).
1.2. Si W < 0. 5 hacer
2 T = ln V , sino hacer T = − ln V .
2. Hasta que U · exp T2 − |T | + 21 ≤ 1.
3. Devolver X = T .
La condición que hay que comprobar para decidir si hay aceptación o rechazo surge
de que
r
r
2
2
π
T
T
1
g (T )
2e
exp
− |T | = U · exp
− |T | +
.
c·U ·
=
U
2
2
2
2
f (T )
π
Dado que el número medio de repeticiones de los pasos 1-2 hasta que se obtiene un
valor simulado
p π para X es c ' 1. 3155 y la probabilidad de aceptación en el paso 2 es
p = 1/c = 2e
= 0. 76017, puede decirse que el algoritmo es bastante eficiente.
32 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
3.2.3.
Elección de la densidad auxiliar g
Como se ha comentado anteriormente, un aspecto importante que influye en la
eficiencia del método de aceptación/rechazo es el valor de la constante c. Conocida
la densidad auxiliar g sabemos cómo elegir c de forma que el algoritmo sea lo más
eficiente posible, sin embargo es obvio que algunas densidades auxiliares serı́an mejores
candidatas que otras para conseguir un método eficiente.
En general, cuanto más parecida sea la forma de g a la de f , más pequeño es el
mı́nimo c necesario para conseguir que la gráfica de c · g quede por encima de la de
f . De todas formas, el problema de encontrar la densidad auxiliar g que ofrezca un
c (óptimo) lo menor posible, no tiene solución. Mejor dicho, tiene la solución trivial
g = f , que es absolutamente inútil para la implementación del algoritmo, pues si f era
difı́cil de simular, no podemos tomar como g la propia f (ya que serı́a igual de difı́cil
de simular).
Una solución intermedia al problema de elegir una función de densidad auxiliar,
g, adecuada consiste en tomar cierta familia paramétrica de densidades que presenten
un abanico de formas entre las que haya alguna que se parece bastante a la de f :
{gθ /θ ∈ Θ}, encontrar el valor de c óptimo para cada densidad de esa familia:
cθ = máx
x
f (x)
gθ (x)
y, finalmente, elegir el mejor valor del parámetro, θ0 , en el sentido de ofrecer el menor
posible cθ :
f (x)
.
cθ0 = mı́n máx
x gθ (x)
θ∈Θ
3.2. EL MÉTODO DE ACEPTACIÓN/RECHAZO
33
Ejemplo 3.2.3 Supóngase que se desea utilizar como densidad auxiliar en el método de
aceptación/rechazo, para simular la normal estándar, la doble exponencial de parámetro
λ > 0 (Lap(0,λ) o Lap(λ)) ,
gλ (x) =
λ −λ|x|
e
, para todo x ∈ R.
2
Si pretendemos encontrar el mejor valor de λ, en términos de eficiencia del algoritmo, debemos calcular
2
f (x)
=
gλ (x)
cλ0 = mı́n máx
λ>0 x∈R
x
√1 e− 2
2π
mı́n máx λ −λ|x|
λ>0 x∈R
e
2
.
De forma totalmente análoga a la vista para el caso λ = 1, se tiene
2
cλ =
x
√1 e− 2
2π
máx λ −λ|x|
x∈R
e
2
1
=
λ
r
r
2
1
máx eϕλ (x) =
π x∈R
λ
2 máxx∈R ϕλ (x)
e
,
π
2
donde ϕλ (x) = − x2 + λ |x|. De forma totalmente similar a aquel caso puede probarse
que ϕλ alcanza su máximo absoluto en los puntos x = ±λ, siendo dicho valor máximo
2
ϕλ (±λ) = λ2 . Como consecuencia,
1
cλ =
λ
r
λ2
2 ϕλ (±λ) e 2
e
=
π
λ
r
2
.
π
Ahora debemos encontrar λ0 tal que cλ0 = mı́nλ>0 cλ :
dcλ
=
dλ
r
λ2
2 λe 2 λ − e
π
λ2
λ2
2
r
=
2e
π
λ2
2
(λ2 − 1)
,
λ2
r
λ2
λ2
λ2
d2 cλ
2 [λe 2 (λ2 − 1) + e 2 2λ]λ2 − e 2 (λ2 − 1) 2λ
=
dλ2
π
λ4
r λ2
r λ2
2 e 2 (λ5 + λ3 − 2λ3 + 2λ)
2 e 2 (λ5 − λ3 + 2λ)
=
,
=
π
λ4
π
λ4
dcλ
= 0 ⇔ λ = 1, ya que λ > 0
dλ
r
d2 cλ 2e
=2
> 0, luego λ = 1 es un punto de mı́nimo.
2
dλ λ=1
π
De esto se deduce que la mejor doble exponencial, como densidad auxiliar en el
algoritmo, es la correspondiente a λ = 1, la usada en el ejemplo anterior.
34 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
3.2.4.
El método de aceptación/rechazo “squeeze”
Esta variante del método de aceptación/rechazo es de gran utilidad en aquellas situaciones donde, para llevar a cabo la comprobación de la condición c·U ·g (T ) ≤ f (T ) ,
tiene un elavado coste computacional evaluar f (T ).
La idea del método consiste en encontrar dos funciones h1 y h2 , fáciles de evaluar,
que “aprieten”a f (i.e. h1 (x) ≤ f (x) ≤ h2 (x), ∀x), de manera que reduzcamos considerablemente el número de evaluaciones de ésta. Ası́ se conseguirı́a un algoritmo más
eficiente, pues reemplazarı́amos las evaluaciones de f por evaluaciones de h1 o de h2
(mucho menos costosas computacionalmente).
Algoritmo de aceptación/rechazo “squeeze”
1. Generar U ∼ U (0, 1) y T con densidad g.
2. 2.1 Si c · U · g (T ) ≤ h1 (T ) , hacer X = T. (Aceptación rápida)
2.2 Si c · U · g (T ) > h2 (T ) , volver a 1. (Rechazo rápido)
3. Si no se verifica ninguna de las condiciones del paso 2, comprobar
la condición c · U · g (T ) ≤ f (T ) .
Si c · U · g (T ) ≤ f (T ) , hacer X = T. Si no, volver a 1.
Ejemplo 3.2.4 (Simulación “squeeze”de la distribución normal) Utilizando el
teorema de Taylor, puede comprobarse que la funciónn de densidad de la normal estándar
x2
1
f (x) = √ e− 2 , para todo x ∈ R,
2π
2
2
1 − x2 +
1− x
√
puede “apretarse”por h1 (x) = √ 2 y h2 (x) =
2π
2π
x4
8
.
Capı́tulo 4
Métodos universales para la
simulación de variables discretas
En lo que sigue se expondrán algunos métodos generales para simular distribuciones discretas. En concreto, se estudiará el método de la transformación cuantil en su
versión clásica y con etiquetados óptimos, el método de las tablas guı́a y los métodos
de truncamiento.
El problema consiste en simular una variable aleatoria discreta, X, que toma los
valores x1 , x2 , . . ., xn (. . .), con probabilidades pj = P (X = xj ), j = 1, 2, . . . , n (. . .).
Un planteamiento estándar, equivalente al anterior, consiste en resolver la cuestión de
simular la variable aleatoria I que toma los valores 1, 2, . . . , n (. . .) con las mismas
probabilidades pj , j = 1, 2, . . . , n (. . .).
4.1.
El método de la transformación cuantil
Este método es una adaptación del método de inversión (válido para el caso continuo) a distribuciones discretas. En primer lugar veamos porqué el método de inversión
no es aplicable directamente en este caso.
Dada una variable aletoria discreta, su función de distribución viene dada por
X
F (x) =
pj , ∀x ∈ R.
xj ≤x
Supondremos (por comodidad) que los valores que toma la variable ya están ordenados y nos ceñiremos al caso finito. De esta forma tendrı́amos: x1 < x2 < · · · < xn .
En este caso es obvio que el resultado dado por el teorema de inversión no es cierto
ya que la variable aleatoria F (X) toma sólo los valores p1 , p1 +p2 , . . ., p1 +p2 +· · ·+pn .
Siendo, por tanto, discreta y no pudiendo tener distribución U (0, 1).
35
36
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
De la misma forma, dada una variable U ∼ U (0, 1), tampoco puede ser cierto que
F (U ) tenga la misma distribución que X. De hecho F −1 no está definida de forma
única pues las funciones de distribución discretas no tienen inversa (para casi todo u ∈
[0, 1] no hay ningún x tal que F (x) = u y para un número finito (o infinito numerable)
de u ∈ [0, 1] se tiene que existe todo un intervalo de valores para x cumpliendo F (x) =
u). A pesar de ello puede definirse la llamada función cuantil (o inversa generalidada)
de una distribución cualquiera F a partir de
−1
Q (u) = ı́nf {x ∈ R/F (x) ≥ u} , ∀u ∈ (0, 1) .
Es obvio que esta función siempre está definida y que cuando F sea invertible,
Q = F −1 .
El siguiente teorema da un resultado que generaliza al teorema de inversión a situaciones en las que F no es invertible.
Teorema 4.1.1 (de inversion generalizada) Sea X una variable aleatoria con función de distribución F y con función cuantil Q. Si U es una variable aleatoria con
distribución U (0, 1), la variable Q (U ) tiene la misma distribución que X.
Demostración: Sea G la función de distribución de Q (U ). Dado x ∈ R, se tiene
G (x) = P (Q (U ) ≤ x) = P (ı́nf {y ∈ R/F (y) ≥ U } ≤ x)
Z F (x)
= P (F (x) ≥ U ) =
du = F (x) .
0
A partir del teorema de inversión generalizada puede obtenerse un algoritmo general
para simular cualquier distribución de probabilidad discreta. Es el llamado algoritmo
de transformación cuantil o de inversión generalizada.
Algoritmo de transformación cuantil
1. Generar U ∼ U (0, 1).
2. Devolver X = Q (U ).
La mayor dificultad en la implementación del algoritmo radica en el cálculo de
( , j
)
X
Q (U ) = ı́nf {x ∈ R/F (x) ≥ U } = ı́nf xj
pi ≥ U
i=1
= xk , tal que
k
X
i=1
pi ≥ U >
k−1
X
i=1
pi .
4.1. EL MÉTODO DE LA TRANSFORMACIÓN CUANTIL
37
Todo el problema radica, por tanto, en encontrar el valor, k, de la variable, I, que
guarda las etiquetas, para el cual la función de distribución supera o iguala por primera vez al valor de U . Este valor puede hallarse mediante una búsqueda secuencial,
utilizando el siguiente algoritmo:
Algoritmo de transformación cuantil con búsqueda secuencial
1. Generar U ∼ U (0, 1).
2. Hacer I = 1 y S = p1 .
3. Mientras U > S hacer
3.1. I = I + 1 y S = S + pI .
4. Devolver X = xI .
Si se desea generar un gran número de valores de la variable X (que es P
lo más
habitual) puede resultar más eficiente calcular previamente las cantidades Sj = ji=1 pj
de forma recursiva: S1 = p1 , Sj = Sj−1 + pj para j = 2, 3, . . . , n y hacer la comparación
U > SI en el paso 3 del algoritmo anterior. De esta forma se evita lo que podrı́an ser
cálculos repetitivos de las mismas sumas de probabilidades al simular distintos valores
de X.
Ejemplo 4.1.1 (Simulacion de la distribucion de Poisson) Tómese una variable, X, con distribución de Poisson de parámetro λ, que toma los valores x1 = 0,
x2 = 1, . . . con probabilidades
pj = P (X = xj ) = P (X = j − 1) =
e−λ λj−1
, j = 1, 2, . . .
(j − 1)!
El algoritmo de inversión con búsqueda secuencial viene dado por
1. Generar U ∼ U (0, 1).
2. Hacer I = 1 y S = e−λ .
3. Mientras U > S hacer
−λ λI−1
3.1. I = I + 1 y S = S + e (I−1)!
.
4. Devolver X = I − 1.
Debido a que esta forma de etiquetar los valores de la variable conlleva el desfase
de una unidad en los ı́ndices, es recomendable ajustar el algoritmo para evitar este
efecto.También, para simplificar los cálculos que aparecen en el paso 3.1, es conveniente
calcular las probabilidades de forma recursiva
P (X = j) =
e−λ λj
λ e−λ λj−1
λ
=
= P (X = j − 1) ,
j!
j (j − 1)!
j
Ası́, el algoritmo optimizado es
1. Generar U ∼ U (0, 1).
2. Hacer I = 0, p = e−λ y S = p.
3. Mientras U > S hacer
3.1. I = I + 1, p = λI p y S = S + p.
4. Devolver X = I.
38
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
4.1.1.
Eficiencia del algoritmo
Dada la forma del algoritmo general para simular una distribución discreta mediante
el método de la transformación cuantil utilizando búsqueda secuencial, es fácil probar
que el número de comprobaciones de la forma U > S es precisamente igual a I, el valor
de la variable que contiene las etiquetas. Como el valor de I es aleatorio y variará con
cada ejecución del algoritmo, una medida de la eficiencia del mismo será el número
medio de comparaciones del paso 3, es decir,
Pn
si X toma un número finito (n) de valores
j=1 jpj
P∞
E (I) =
si X toma un infinitos valores
j=1 jpj
Resulta pues evidente que, como no existe una única forma de etiquetar los valores
que toma la variable en cuestión, habrá quizá algún etiquetado que ofrezca un menor
número medio de comparaciones en el paso 3 del algoritmo que el etiquetado original
(que obedece a la idea de ordenar de forma creciente los valores que toma la variable).
Ejemplo 4.1.2 Considérese la variable aleatoria discreta X con distribución dada por
P (X = 3) = 0. 1, P (X = 5) = 0. 3, P (X = 7) = 0. 6
Tomando x1 = 3, x2 = 5, x3 = 7, se tiene un etiquetado I con distribución
P (I = 1) = 0. 1, P (I = 2) = 0. 3, P (I = 3) = 0. 6
y, por tanto, con media E (I) = 1 · 0. 1 + 2 · 0. 3 + 3 · 0. 6 = 2. 5.
Si, por el contrario, consideramos el etiquetado x01 = 7, x02 = 5, x03 = 3, se tiene que
P (I 0 = 1) = 0. 6, P (I 0 = 2) = 0. 3, P (I 0 = 3) = 0. 1
y ası́ E (I 0 ) = 1 · 0. 6 + 2 · 0. 3 + 3 · 0. 1 = 1. 5.
Se observa que E (I 0 ) es sensiblemente inferior a E (I) y, por tanto, el segundo
etiquetado proporciona un algoritmo más eficiente que el dado por el etiquetado l.
Como parece deducirse del ejemplo anterior, un etiquetado será tanto mejor cuanto
menores sean las etiquetas que se asignen a los valores que tienen mayor probabilidad.
Dicho de otra forma, el etiquetado que se obtiene al ordenar los valores en orden decreciente de probabilidad.
Cuando la variable a simular tiene un número finito de valores: x1 , x2 , . . ., xn , al
implementar el método de la transformación
cuantil con búsqueda secuencial
Pn−1
Pn directa,
una vez comprobado que U > j=1 pj , no es necesario comprobar U > j=1 pj = 1
(que siempre es falso), sinó que generamos xn sin necesidad de efectuar esa comparación.
Por ese motivo el número medio de comparaciones serı́a realmente:
n−1
X
j=1
jpj + (n − 1) pn .
4.1. EL MÉTODO DE LA TRANSFORMACIÓN CUANTIL
39
Ejemplo 4.1.3 Consideremos la variable aleatoria discreta con distibución
P (X = 1) = 0. 11, P (X = 3) = 0. 3, P (X = 5) = 0. 25,
P (X = 7) = 0. 21, P (X = 9) = 0. 13.
Tomando el etiquetado x1 = 1, x2 = 3, x3 = 5, x4 = 7 y x5 = 9, el número medio
de comparaciones del algoritmo es
E (I) = 0. 11 · 1 + 0. 3 · 2 + 0. 25 · 3 + (0. 21 + 0. 13) · 4 = 2. 82
Mientras que, utilizando el etiquetado óptimo x1 = 3, x2 = 5, x3 = 7, x4 = 9 y
x5 = 1, el número medio de comparaciones se reduce a
E (I) = 0. 3 · 1 + 0. 25 · 2 + 0. 21 · 3 + (0. 13 + 0. 11) · 4 = 2. 39
4.1.2.
Cálculo directo de la función cuantil
En ocasiones el método de la transformación cuantil puede acelerarse computacionalmente porque, mediante cálculos directos, es posible encontrar el valor de la función
cuantil en cualquier U , en un tiempo de computación mı́nimo (evitando el bucle de
búsqueda en el que se van acumulando las probabilidades).
Ejemplo 4.1.4 (la distribución uniforme discreta en {1, 2, . . . , n}) En este caso
la masa de probabilidad viene dada por
pj =
1
, para j = 1, 2, . . . n.
n
De esta forma se tiene
k
X
i=1
pi ≥ U >
k−1
X
i=1
pi ⇔
k
k−1
≥U >
⇔ k ≥ nU > k − 1.
n
n
Esta última condición equivale a k = dnU e + 1, siendo dxe la parte entera de x.
El algoritmo resulta:
1. Generar U ∼ U (0, 1).
2. Devolver X = dnU e + 1.
40
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
Ejemplo 4.1.5 (la distribución geométrica) La distribución geométrica representa el número de fracasos antes del primer éxito y tiene la siguiente masa de probabilidad
P (X = j) = p (1 − p)j , j = 0. 1, . . .
Para un valor j entero no negativo su función de distribución viene dada por
F (j) =
j
X
p (1 − p)i =
i=0
p (1 − p)j+1 − p
= 1 − (1 − p)j+1 .
1−p−1
Como consecuencia se tiene
F (k) ≥ U > F (k − 1) ⇔ 1 − (1 − p)k+1 ≥ U > 1 − (1 − p)k
⇔ (1 − p)k > 1 − U ≥ (1 − p)k+1
⇔ k ln (1 − p) > ln (1 − U ) ≥ (k + 1) ln (1 − p)
ln (1 − U )
⇔k<
≤k+1
ln (1 − p)
condición que equivale a
ln (1 − U )
.
k=
ln (1 − p)
El algoritmo procederı́a de la siguiente forma:
0. Hacer a = ln (1 − p).
1. Generar U ∼ U(0, 1).
2. Devolver X = lnaU .
4.2. ALGORITMOS BASADOS EN ÁRBOLES BINARIOS
4.2.
41
Algoritmos basados en árboles binarios
El uso de árboles binarios permite, en muchos casos, obtener algoritmos más eficientes que los basados en la búsqueda secuencial.
Conceptos usados en este contexto:
Árbol: Grafo orientado, formado por un sistema de nodos conectados entre sı́ mediante
una serie de arcos.
Nodo raı́z: Nodo del cual parten arcos pero al cual no llegan arcos.
Nodo terminal: Nodo al cual llegan arcos pero del cual no parten arcos.
Profundidad de un nodo: Número de nodos que le preceden.
Árbol binario: Árbol en el que todo nodo, a excepción de los nodos terminales, tiene
dos nodos hijos.
Descripción de un árbol binario
NODO RAÍZ
ARCO
aa
aa
a
@
@
NODO TERMINAL
c
c
c
l
l
l
l
42
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
Para la generación de una variable aleatoria discreta, X, con función de masa de
probabilidad
P (X = xi ) = pi , i = 1, 2, . . . , n
se tratará de encontrar un árbol binario con n nodos terminales (uno para cada valor
que se necesite generar), con profundidades di , i = 1, 2, . . . , n, de manera que
n
X
pi di
i=1
sea mı́nima.
Es decir, se tratará de asignar mayor profundidad a los nodos correspondientes a
valores de X con menor probabilidad.
4.2.1.
Árboles de Huffman
Un árbol de Huffman es un árbol binario en el que los nodos se generan siguiendo
los siguientes pasos:
1. Agrupar los nodos con menor probabilidad en un solo nodo con probabilidad
igual a la suma de ambos.
2. En el árbol resultante (con un nodo menos) proceder como en el paso anterior,
repitiendo este proceso hasta finalizar con un árbol con solo dos nodos.
4.3. EL MÉTODO DE LA TABLA GUÍA
4.3.
43
El método de la tabla guı́a
El mayor problema computacionalP
del método de la
cuantil consiste
Ptransformación
k
k−1
en encontrar el ı́ndice k que cumple i=1 pi ≥ U > i=1 pi . Como ya se ha visto en
los dos últimos ejemplos existen distribuciones para las cuales este valor k se puede
calcular directamente. El método de la tabla guı́a consiste en hacer uso de la rapidez de
cálculo de la función cuantil para alguna de esas distribuciones (fácilmente simulable
mediante el método de inversión generalizada) para abreviar al
el número
Pmáximo
Pk−1 de
k
comparaciones necesarias a la hora de comprobar la condición i=1 pi ≥ U > i=1 pi .
Considérese una variable aleatoria discreta con masa de probabilidad dada por pj ,
j = 1, 2, . . . , n y defı́nanse las sumas acumulativas de estas probabilidades
Pj (que no son
otra cosa que los valores que toma la función de distribución), qj = i=1 pi , que, para
evitar cálculos innecesarios, deben calcularse de forma recursiva: q0 = 0, qj = qj−1 + pj ,
j = 1, 2, . . . , n.
Dada la variable aleatoria I, asociada al etiquetado original (o a otro) la idea del
método consiste en construir n subintervalos equiespaciados contenidos en [0, 1] de la
, i ) para i = 1, 2, . . . , n y luego definir los valores de la tabla guı́a
forma Ji = [ i−1
n n
i
gi = máx j qj <
, para i = 1, 2, . . . , n
n
es decir, para cada intervalo se considera el valor más alto del ı́ndice entero tal que la
suma acumulada de probabilidades hasta él es menor que el extremo superior de dicho
intervalo.
Ejemplo 4.3.1 Tomemos como ejemplo la distribución discreta dada por p1 = 0. 13,
p2 = 0. 25, p3 = 0. 17, p4 = 0. 1, p5 = 0. 24 y p6 = 0. 11. Se tiene que q1 = 0. 13,
q2 = 0. 38, q3 = 0. 55, q4 = 0. 65, q5 = 0. 89 y q6 = 1. Los valores de la tabla guı́a son
g1 = 1, g2 = 1, g3 = 2, g4 = 4, g5 = 4, g6 = 5.
A la hora de aplicar el método de la transformación cuantil, dado el valor de U , es
inmediato detectar en cuál de los intervalos Ji ha caı́do, basta con hacer i = dnU e + 1.
Lo único que resta por hacer, una vez encontrado este ı́ndice, es obtener el valor del
ı́ndice I a simular. Dicho valor será gi + 1 si ya ocurre que U > qgi . En caso contrario
deberemos encontrar el primer ı́ndice j = gi − 1, gi − 2, . . . , 0, para el cual se cumple
U > qj y luego hacer I = j + 1.
44
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
Algoritmo de simulación mediante una tabla guı́a
1. Generar U ∼ U (0, 1).
2. Hacer i = dnU e + 1.
3. Hacer j = gi .
4. Mientras U ≤ qj hacer j = j − 1.
5. Devolver I = j + 1.
Por otra parte, los valores de la tabla guı́a pueden calcularse fácilmente de forma
rápida según el siguiente algoritmo:
Algoritmo de cálculo de la tabla guı́a
1. Desde i = 1 hasta n − 1 hacer gi = 0.
2. Hacer S = 0.
3. Desde i = 1 hasta n − 1 hacer
3.1. S = S + pi
3.2. j = dnSe + 1
3.3. gj = i
4. Desde i = 2 hasta n hacer gi = máx (gi−1 , gi ).
4.3.1.
Eficiencia del algoritmo
Cuando el valor U cae en el intervalo Ji , es obvio que el número medio de comparaciones en el paso 4 del algoritmo es menor o igual que 1 más el número de valores
qj pertenecientes al intervalo Ji . Utilizando este hecho, la esperanza del número de
comparaciones (N ) puede acotarse mediante
n
n
1X
1X
(1 + # {j /qj ∈ Ji }) = 1 +
# {j /qj ∈ Ji }
E (N ) ≤
n i=1
n i=1
= 1+
1
n−1
# {j /qj ∈ [0, 1)} = 1 +
< 2.
n
n
En general, el método es aplicable para tablas guı́a de m elementos (donde m no
tiene porqué ser necesariamente igual a n). En tal caso el intervalo [0, 1) se divide en m
subintervalos, pudiendo acotar el número medio de comparaciones mediante E (N ) ≤
n
. Gracias a este argumento, para variables con un número exhorbitante de posibles
1+ m
valores, pueden utilizarse tablas guı́a de un número más moderado de elementos de
forma que la tabla no ocupe demasiada memoria y que, a la vez, el número medio
de comparaciones esté acotado por un valor moderado. Ası́, por ejemplo, para una
variable discreta con 1.000.000 de posibles valores podrı́amos utilizar una tabla guı́a
de sólo 10.000 elementos (para que no ocupe demasiado en memoria) obteniendo que
el número medio de comparaciones estarı́a acotado por 101.
4.4. MÉTODO DE TRUNCAMIENTO
4.4.
45
Método de truncamiento
La idea general de este método consiste en hacer uso de una distribución continua
auxiliar cuya función de distribución se parezca (en cierto sentido que se precisará más
adelante) a la función de distribución de la variable discreta que se desea simular.
Supóngase, sin pérdida de generalidad, que se desea simular la variable I, que toma
los valores 1, 2, . . ., n, con probabilidades p1 , p2 , . . ., pn . En este caso, la función de
distribución de I viene dada por
X
F (x) =
pi .
i≤x
Supóngase, además, que tenemos otra variable aleatoria continua, con función de distribución G (x) y ciertos valores a0 = −∞ < a1 < a2 < · · · < an−1 < an = ∞, tales que
F (i) − F (i− ) = pi = G (ai ) − G (ai−1 ), i = 1, 2, . . . , n. Esta última condición viene a
garantizar que la probabilidad de que la variable continua caiga en el intervalo [ai−1 , ai )
coincide con la probabilidad con la que la variable discreta original toma el valor i.
Si la distribución continua es fácil de simular, simplemente deberemos generar valores de la misma y luego transformarlos en valores de la variable I.
Algoritmo de simulación por truncamiento
1. Generar T con distribución G.
2. Encontrar el valor i tal que ai−1 ≤ T < ai .
3. Devolver I = i.
El método se hace especialmente rápido cuando el valor de i puede obtenerse de
forma inmediata a partir del valor de T . Uno de los casos en los que esto es ası́ se da
cuando G (0) = 0 y los valores ai = i, i = 0, 1, . . . , n (o, incluso, infinitos valores ai de
esta forma). En este caso el algoritmo resulta:
Algoritmo de simulación por truncamiento a la parte entera
1. Generar T con distribución G.
2. Hacer I = dT e + 1.
46
CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
Ejemplo 4.4.1 (simulacion de la geométrica por truncamiento) La masa de probabilidad de la distribución geométrica es
P (X = j) = P (I = j + 1) = p (1 − p)j , j = 0, 1, . . .
Considérese como variable aleatoria continua auxiliar la exponencial, que tiene función
de distribución dada por
1 − e−λx si x ≥ 0
G (x) =
0
si x < 0
Ahora bien,
G (i) − G (i − 1) = 1 − e−λi − 1 − e−λ(i−1) = e−λ(i−1) − e−λi
i−1
= p (1 − p)i−1
= e−λ(i−1) 1 − e−λ = 1 − e−λ e−λ
siempre que tomemos p = 1 − e−λ . De esta forma se tiene
G (i) − G (i − 1) = P (X = i − 1) = P (I = i) = pi
y el algoritmo resultarı́a:
0.
1.
2.
3.
Hacer λ = − ln (1 − p).
Generar U ∼ U (0, 1).
Hacer T = − lnλU .
Devolver X = dT e.
Este es el mismo algoritmo que se obtenı́a anteriormente cuando razonábamos cómo
calcular directamente el valor de la función cuantil para la distribución geométrica.
Capı́tulo 5
Métodos especı́ficos para la
simulación de distribuciones
notables
En este capı́tulo se estudiarán algoritmos especı́ficos para simular algunas de las
distribuciones de probabilidad más importantes. La mayorı́a de ellos son aplicaciones
de los métodos generales ya expuestos, quizá con alguna particularidad.
5.1.
5.1.1.
Distribuciones continuas
La distribución uniforme
Una vez generada la variable U con distribución U (0, 1), la variable X con distribución U (a, b) se obtiene haciendo X = a + (b − a)U.
Algoritmo para generar la U (a, b)
1. Generar U ∼ U (0, 1).
2. Hacer X = a + (b − a)U.
47
48
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
5.1.2.
La distribución normal
Se trata de simular X con distribución normal estándar, ya que la variable Y ∈
N (µ, σ) , con parámetros arbitrarios (µ ∈ R, σ > 0), puede simularse mediante Y =
µ + σX.
Método de Box-Müller
Se basa en la siguiente propiedad:
√ Dadas E ∈ exp
√ (1) y U ∈ U (0, 1) , variables aleatorias independientes, las variables
2E cos 2πU y 2Esen2πU son variables independientes con distribución N (0, 1) .
Algoritmo de Box-Müller
1. Generar U, V√∼ U (0, 1).
2. Hacer W1 = −2 ln U y W2 = 2πV .
3. Devolver X1 = W1 cos W2 , X2 = W1 senW2 .
Método polar
Se basa en una propiedad que da la distribución condicionada a cierto suceso de un
par de variables transformadas de otras uniformes:
Dadas dos variables independientes V1 y V2 , con distribución U (−1, 1), la distribución condicionada
s
s
!
2
2
−2 ln (V1 + V2 )
−2 ln (V12 + V22 ) , V2
V1
2 2
V12 + V22
V12 + V22
V1 +V2 ≤1
es N2
0
0
1 0
,
.
0 1
Algoritmo polar
1. Generar U1 , U2 ∼ U (0, 1).
2. Hacer V1 = 2U1 − 1, V2 = 2U2 − 1 y W = V12 + V22 .
3. Si W > 1 entonces
volver a 1.
q
−2 ln W
.
4. Hacer Y =
W
5. Devolver X1 = V1 Y , X2 = V2 Y .
5.1. DISTRIBUCIONES CONTINUAS
49
Método del Teorema Central del Lı́mite
Como su propio nombre indica, este método se deriva a partir del Teorema Central
del Lı́mite:
Dadas variables aleatorias T1 , T2 , . . ., Tn , independientes e idénticamente distribuidas, con media µT y varianza σT2 finitas, se tiene que
T − µT √
n 'N (0, 1) ,
σT
si n es suficientemente grande.
Este teorema puede aplicarse para simular una N (0, 1) tomando variables con otra
distribución más fácil de simular.
El caso más habitual es elegir Ti = Ui ∈ U (0, 1) y n = 12 (por simplicidad de
cálculo). De esta forma, la variable
12
X
U − µU √
n=
Ui − 6
σU
i=1
tiene distribución aproximadamente N (0, 1) .
Algoritmo basado en el TCL
1. Generar U1 , U2 , . . . , U12 ∼ U (0, 1).
2. Devolver X = U1 + U2 + · · · + U12 − 6.
5.1.3.
La distribución de Cauchy
Esta distribución puede definirse, de forma general, dependiendo de dos parámetros:
µ el de localización y σ > 0 el de escala. Su función de densidad viene dada por
f (x) =
π
σ2
σ
, para todo x ∈ R.
+ (x − µ)2
Un sencillo cálculo permite hallar su función de distribución:
1
x−µ
1
F (x) = arctan
+ ,
π
σ
2
pudiéndose implementar el método de inversión.
Algoritmo basado en el método de inversión
1. Generar U ∼ U (0, 1).
2. Devolver X = σ tan (πU ) + µ.
50
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
5.1.4.
La distribución exponencial
Se simula utilizando el método de inversión.
Algoritmo basado en el método de inversión
1. Hacer L = − λ1 .
2. Generar U ∼ U (0, 1).
3. Devolver X = L · ln U .
5.1.5.
La distribución de Laplace o doble exponencial
Esta distribución puede definirse, de forma general, dependiendo de dos parámetros:
µ el de localización y λ > 0 el de escala. Su función de densidad viene dada por
f (x) =
λ −λ|x−µ|
e
, para todo x ∈ R.
2
Su función de distribución es:
F (x) =
1
1 λ(x−µ)
e
2
− 21 e−λ(x−µ)
si x < µ
si x ≥ µ
pudiéndose generar por el método de inversión.
Algoritmo basado en el método de inversión
1. Generar U, V ∼ U (0, 1).
ln U
.
2. Hacer T =
λ
3. Si V < 1/2, devolver X = µ + T. En caso contrario,
hacer X = µ − T .
5.1. DISTRIBUCIONES CONTINUAS
5.1.6.
51
Las distribuciones gamma y de Erlang
La distribución gamma, Γ (a, p), depende de dos parámetros: a > 0, parámetro de
escala, y p > 0, parámetro de forma. La distribución de Erlang no es más que la particularización de la gamma al caso en que p ∈ N.
La función de densidad de una Γ (a, p) viene dada por
ap p−1 −ax
x e
si x ≥ 0
Γ(p)
f (x) =
0
si x < 0
Z ∞
xp−1 e−x dx es la llamada función gamma de Euler.
donde Γ (p) =
0
Puede demostrarse una relación recursiva para Γ (p) sin más que hacer una integración por partes:
Tomando u = xp−1 y dv = e−x dx, se tiene,
Z ∞
Z ∞
p−1
p−1 −x
−x ∞
p−2
−x
Γ (p) =
x e dx = x
−e
−
(p
−
1)
x
−e
dx
0
0
0
Z ∞
= (p − 1)
xp−2 e−x dx = (p − 1) Γ (p − 1)
0
Esto permite reducir el cálculo de Γ (p) al caso en que p ∈ (0, 1], ya que
Γ (p) = (p − 1) (p − 2) · · · (p − [p]) Γ (p − [p])
Z
Dado que Γ (1) =
∞
e−x dx = 1, la expresión anterior se simplifica cuando p ∈ N,
0
dando lugar a Γ (p) = (p − 1)!
Cuando p = 1 la densidad de la gamma es
−ax
ae
si x ≥ 0
f (x) =
0
si x < 0
d
es decir, Γ (a, 1) = exp (a).
52
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Una propiedad muy importante de la distribución gamma es la llamada propiedad
de reproductividad, que afirma que si se dispone de dos variables aleatorias independientes, X ∈ Γ (a, p1 ) e Y ∈ Γ (a, p2 ), la suma de ambas también es una gamma:
X + Y ∈ Γ (a, p1 + p2 ).
Este resultado se puede generalizar, por inducción, a la suma de cualquier número
finito de variables gamma independientes con primer parámetro, a, coincidente. En
virtud de ello, si p es entero, dadas X1 , X2 , · · ·, Xp variables independientes
Pp con distrinución exp (a) (o, lo que es lo mismo, Γ (a, 1)) se tiene que su suma, i=1 Xi , tiene
distribución Γ (a, p).
Como consecuencia, la distribución de Erlang se puede simular fácilmente como
suma de exponeciales:
Algoritmo reproductivo de simulación de la Erlang
1. Desde i = 1 hasta p hacer
1.1. Generar Ui ∼ U (0, 1).
1.2. Hacer Xi = −PlnaUi .
2. Devolver X = pi=1 Xi .
Este algoritmo puede agilizarse computacionalmente definiendo previamente el valor L = − a1 y calculando un único logaritmo (en lugar de p) teniendo en cuenta que
Pp ln Ui
Pp
Qp
1
i=1 a = − a ln ( i=1 Ui ). Ası́ se tiene:
i=1 Xi = −
Algoritmo reproductivo de simulación de la Erlang optimizado
1. Hacer L = − a1 .
2. Hacer S = 1.
3. Desde i = 1 hasta p hacer
3.1. Generar U ∼ U (0, 1).
3.2. Hacer S = S · U .
4. Devolver X = L · ln S.
Los algoritmos anteriores sólo son válidos para p entero, siendo además muy lentos
si p es grande. Por contra son muy simples y de fácil implementación. Como alternativa
existen otros algoritmos más complicados que cubren también el caso en que p no sea
entero.
5.1. DISTRIBUCIONES CONTINUAS
53
Los algoritmos que se describen a continuación permiten generar la distribución
Γ(1, p). Si a 6= 1, la distribución Γ(a, p) podrá generarse a partir de la distribución
anterior, utilizando para ello la propiedad que afirma que si X ∈ Γ(1, p) entonces X/a
tiene distribución Γ(a, p).
El algoritmo de Tadikamalla (1978), que sólo es válido si p > 34 (a = 1), es un
algoritmo de aceptación/rechazo que usa como densidad auxiliar una doble exponencial
centrada en p − 1 y con parámetro de escala dado por
λ=
1
2
√
=
.
θ
1 + 4p − 3
Para la implementación del algoritmo debe definirse la función
(θ − 1) x p−1
|x − (p − 1)| + (p − 1) (θ + 1)
exp −x +
T (x) = .
θ (p − 1) θ
Algoritmo de Tadikamalla
1. Generar X, doble exponencial con media p−1 y parámetro de escala
λ = 1θ = 1+√24p−3 .
2. Si X < 0 entonces volver a 1.
3. Generar U ∼ U (0, 1).
4. Si U ≤ T (X) entonces devolver X, sinó volver a 1.
54
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Como el anterior, el algoritmo de Cheng-Feast (1979) es un algoritmo de aceptación/rechazo que es válido si p > 1 (a = 1).
Algoritmo de Cheng-Feast
1. Generar U1 , U2 , independientemente,
con distribución
1
p − 6p U1
U (0, 1) y hacer V =
.
(p − 1)U2
2(U2 − 1)
1
2. Si
+ V + ≤ 2 hacer X = (p − 1)V .
p−1
V
2 log U2
En otro caso, si
− log V + V ≤ 1 hacer X = (p − 1)V .
p−1
3. Volver a 1.
El algoritmo de Best-Ahrens-Dieter (1983) es también un algoritmo de aceptación/rechazo que es válido si p < 1 (a = 1).
Algoritmo de Best-Ahrens-Dieter
√
pe−t
.
0. Hacer t = 0,07 + 0,75 1 − p y b = 1 +
t
1. Generar U1 , U2 , independientemente, con distribución
U (0, 1) y hacer V = bU1 .
1
2. Si V ≤ 1 hacer W = tV p . En otro caso, ir a 3.
2−W
2.1. Si U2 ≤
, ir a 5.
2+W
2.2. Si U2 ≤ e−W , ir
a 5. t(b − V )
3. Hacer W = − log
e Y = Wt .
p
3.1. Si U2 (p + (1 − p)Y ) ≤ 1, ir a 5.
3.2. Si U2 ≤ Y p−1 , ir a 5.
4. Volver a 1.
5. Hacer X = W .
5.1. DISTRIBUCIONES CONTINUAS
5.1.7.
55
La distribución beta
Dadas dos variables aleatorias Y ∈ Γ (1, p) y Z ∈ Γ (1, q), independientes, se dice
que la variable
Y
X=
Y +Z
tiene distribución β (p, q), beta de parámetros p y q.
La función de densidad de una β (p, q) viene dada por
 p−1
q−1
 x (1 − x)
si x ∈ [0, 1]
f (x) =
β (p, q)

0
en otro caso
Z
siendo β (p, q) =
1
xp−1 (1 − x)q−1 dx.
0
Aunque existen multitud de algoritmos para simular la distribución β (p, q) , probablemente, el más sencillo de todos es el que se obtiene, a partir de la distribución
gamma, como consecuencia de la propia definición.
El algoritmo de Fox (1963) es adecuado para simular la distribución beta cuando
p, q ∈ N y son valores pequeños.
Algoritmo de Fox
1. Generar U1 , U2 , . . . , Up+q−1 ∼ U (0, 1).
2. Ordenarlos: U(1) ≤ U(2) ≤ · · · ≤ U(p+q−1) .
3. Devolver X = U(p) .
56
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Un método válido aunque p ó q no sean enteros es el dado por el algoritmo de Jöhnk
(1964).
Algoritmo de Jöhnk
1. Repetir.
1.1. Generar U, V ∼ U (0, 1).
1
1
1.2. Hacer Y = U p , Z = V q , S = Y + Z.
2. Hasta que S ≤ 1.
3. Hacer X = YS .
Este método resulta extremadamente ineficiente para p ó q mayores que 1. Esto
es debido a que la condición S ≤ 1 del paso 2 puede tardar muchı́simo en verificarse.
Por este motivo, el algoritmo de Jöhnk sólo es recomendable para p < 1 y q < 1.
Como remedio a esto puede usarse el algoritmo de Cheng (1978) que es bastante más
complicado de implementar pero también mucho más eficiente.
Algoritmo de Cheng
1.1. Hacer α = p + q.
1.2. Si mı́n (p, q) ≤ 1 entonces hacer β =
q
α−2
.
2pq−α
1
,
mı́n(p,q)
en otro caso hacer β =
1.3. Hacer γ = p + β1 .
2. Generar U1 , U2 ∼U (0,1).
U1
3. Hacer V = β · ln 1−U
y W = p · eV .
1
α
4. Si α · ln q+W
+ γV − ln 4 < ln (U12 U2 ) entonces volver a 1.
5. Devolver X =
W
.
q+W
5.1. DISTRIBUCIONES CONTINUAS
5.1.8.
57
La distribución chi-cuadrado de Pearson
Dadas variables aleatoriasP
Z1 , Z2 , . . . , Zn independientes y con distribución N (0, 1),
diremos que la variable X = ni=1 Zi2 tiene distribución chi-cuadrado con n grados de
libertad (χ2n ).
Su función de densidad viene dada por
n
x
x 2 −1 e− 2
f (x) = n n , para todo x ≥ 0
22 Γ 2
d
Es decir, χ2n = Γ 21 , n2 y los algoritmos vistos para la distribución gamma son aplicables a este caso (para n grande es recomendable usar el algoritmo de Tadikamalla).
1 n d
Además,
debido
a
la
reproductividad
de
la
distribución
gamma,
se
tiene
que
Γ
,
=
2 2
Γ 12 , n2 + Γ 12 , 12 , cuando n no sea par, siendo esta última distribución, Γ 21 , 12 , la
del cuadrado de una normal estándar.
De esta forma, para n pequeño, se tiene el siguiente algoritmo para la simulación
de la chi-cuadrado:
Algoritmo reproductivo
para simular la chi-cuadrado
n
1. Hacer m = 2 .
2. Hacer S = 1.
3. Desde i = 1 hasta m hacer
3.1. Generar U ∼ U (0, 1).
3.2. Hacer S = S · U .
4. Hacer X = −2 ln S.
5. Si n es impar hacer
6.1. Generar Z ∼ N (0, 1).
6.2. Hacer X = X + Z 2 .
7. Devolver X.
58
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
5.1.9.
La distribución F de Fisher-Snedecor
Dadas dos variables aleatorias Y1 ∈ χ2m e Y2 ∈ χ2n independientes, la variable
aleatoria
Y1 /m
X=
Y2 /n
tiene distribución F de Fisher-Snedecor con m y n grados de libertad (Fm,n ).
Su función de densidad es
n
n 2
f (x) =
β
m
m
x 2 −1
m n
,
2 2
n − m+n
2
, para todo x ≥ 0
x+
m
Además de poder simularse a través de algoritmos de simulación de la chi-cuadrado,
puede simularse mediante el uso de una distribución beta.
Algoritmo de simulación de la F a través de la beta
1. Generar Z ∼ β m2 , n2 .
nZ
.
2. Hacer X = m(1−Z)
5.1.10.
La distribución t de Student
Dadas dos variables independientes Y1 ∈ N (0, 1) e Y2 ∈ χ2n , la variable aleatoria
Y1
X=p
Y2 /n
tiene distribución t de Student con n grados de libertad (tn ).
Su función de densidad es
f (x) =
Γ
Γ
n
2
n+1
2
√
nπ
x2
1+
n
− n+1
2
, para todo x ∈ R.
La t de Student puede simularse fácilmente teniendo en cuenta la relación entre
d
esta distribución y la F de Fisher-Snedecor: t2n = F1,n .
Algoritmo de simulación de la t de Student a partir de la F
1. Generar U ∼ U (0, 1) y Z ∼ F1,n .
√
√
2. Si U < 0,5 entonces devolver X = Z, si no devolver X = − Z.
5.1. DISTRIBUCIONES CONTINUAS
5.1.11.
59
La distribución de Weibull
La distribución de Weibull, W (λ, α), es una generalización de la distribución exp (α).
Su función de densidad de probabilidad es
α
f (x) = αλα xα−1 e−(λx) , para todo x ≥ 0
d
En particular, W (λ, 1) = exp (λ).
Puede simularse fácilmente mediante el método de inversión (ligeramente optimizado).
Algoritmo de inversión para simular la distribución de Weibull
1. Generar U ∼ U (0, 1).
1
(− ln U ) α
2. Devolver X =
.
λ
5.1.12.
La distribución logı́stica
Es la que tiene por función de distribución:
F (x) =
1
1 + e−
x−a
b
, ∀x ∈ R,
siendo a ∈ R y b > 0.
Puede simularse fácilmente mediante el método de inversión.
Algoritmo para simular la distribución logı́stica mediante inversión
1. Generar U ∼ U (0, 1).
2. Devolver X = a − b ln U1 − 1 .
60
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
5.1.13.
La distribución de Pareto
Tiene utilidad en ciencias como la Economı́a, donde en ocasiones sirve para modelizar distribuciones de rentas.
Su densidad viene dada por
(
f (x) =
aba
xa+1
0
si x ≥ b
si x < b
Como consecuencia, su función de distribución resulta
0 si x < b
F (x) =
a
si x ≥ b
1 − xb
y, por tanto, es simulable mediante inversión. Una versión optimizada del algoritmo es:
Algoritmo de inversión para simular la distribución de Pareto
1. Generar U ∼ U (0, 1).
b
2. Devolver X = 1 .
Ua
5.2.
5.2.1.
Distribuciones discretas
La distribución uniforme discreta
Dado un conjunto finito de N elementos (que, sin pérdida de generalidad, supondremos el conjunto {1, 2, . . . , N }) la distribución uniforme discreta en dicho conjunto (o equiprobable sobre dicho conjunto) es la definida por P (X = i) = N1 , para
i = 1, 2, . . . , N .
Tanto el método de inversión (calculando explı́citamente la función cuantil) como
el de truncamiento dan lugar al siguiente algoritmo.
Algoritmo para simular la distribución uniforme discreta en
{1, 2, . . . , N }
1. Generar U ∼ U (0, 1).
2. Devolver X = [N · U ] + 1.
5.2. DISTRIBUCIONES DISCRETAS
5.2.2.
61
La distribución binomial
La distribución binomial de parámetros n y p, B (n, p), se define como el número
de éxitos en n pruebas independientes, en las que la probabilidad de éxito es p.
Su masa de probabilidad es
n i
P (X = i) =
p (1 − p)n−i , para i = 0, 1, . . . , n.
i
Puede simularse a partir de su definición:
Algoritmo para la generación de la distribución B(n, p)
1. Hacer S = 0.
2. Repetir n veces
2.1. Generar U ∼ U (0, 1).
2.2. Si U ≤ p entonces hacer S = S + 1.
3. Devolver X = S.
Este método es extremadamente lento cuando n es grande. Por eso, en ese caso,
resulta más ventajoso utilizar el método de la tabla guı́a.
5.2.3.
La distribución de Poisson
Una variable aleatoria discreta, X, tiene distribución de Poisson de parámetro λ > 0
si su masa de probabilidad viene dada por
e−λ λi
, para i = 0, 1, . . .
P (X = i) =
i!
La distribución de Poisson puede simularse mediante el método de la transformación
cuantil con búsqueda secuencial.
62
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
También puede simularse haciendo uso de la relación que guarda con la distribución
exponencial. Ası́, dadas variables aleatorias T1 , T2 , . . ., Tn , . . . independientes y con
distribución exp (λ), la variable aleatoria entera, X, que verifica
X
X
Ti ≤ 1 <
X+1
X
i=1
Ti
i=1
(definiendo X = 0 si T1 > 1) tiene distribución Pois(λ).
Las variables aleatorias Ti pueden simularse, utilizando valores Ui de una uniforme,
mediante Ti = − lnλUi . En virtud de ello, se tiene
X
X
Ti ≤ 1 <
i=1
ln
−
X
Q
X+1
X
i=1
ln
Ui
i=1
λ
X
Y
i=1
Ti ⇔ −
X
X
ln Ui
i=1
X+1
Q
i=1
≤ 1<−
Ui ≥ e−λ >
λ
X+1
Y
λ
≤1<−
X+1
X
i=1
ln Ui
⇔
λ
Ui
⇔ ln
X
Y
i=1
!
Ui
≥ −λ > ln
X+1
Y
!
Ui
⇔
i=1
Ui .
i=1
Ası́, puede utilizarse el siguiente algoritmo:
Algoritmo de simulación de la Poisson a traves de la exponencial
1. Hacer p = 1 y S = −1.
2. Repetir
2.1. Generar U ∼ U (0, 1).
2.2. Hacer p = p · U y S = S + 1.
3. Hasta que p < e−λ .
4. Hacer X = S.
Tanto este algoritmo como el de la transformación cuantil tienen el inconveniente
de ser muy ineficientes cuando λ es grande. En ese caso, aunque la distribución de
Poisson tiene un número infinito de posibles resultados, es perfectamente aplicable el
método de la tabla guı́a desembocando en una búsqueda secuencial cuando el intervalo
elegido sea el último de la tabla. Esto mejora muy considerablemente la eficiencia del
método.
5.2. DISTRIBUCIONES DISCRETAS
5.2.4.
63
La distribución geométrica
Su masa de probabilidad es
P (X = i) = p · (1 − p)i , para i = 0, 1, . . .
Además de poder simularse a partir de su definición (número de fracasos antes del
primer éxito), también puede hacerse por truncamiento. El algoritmo que resulta por
este método es equivalente al basado en la expresión explı́cita de la función cuantil.
Algoritmo de truncamiento para la distribución geométrica
1
.
0. Hacer L = −
ln (1 − p)
1. Generar U ∼ U (0, 1).
2. Hacer T = L · ln U .
3. Devolver X = [T ].
5.2.5.
La distribución binomial negativa
La distribución binomial negativa, BN (r, p) , generaliza a la geométrica, pudiendo
interpretarse como el número de fracasos antes del r-ésimo éxito.
Su función de masa de probabilidad es
i+r−1 r
P (X = i) =
p (1 − p)i , para i = 0, 1, . . .
i
Debido a su reproductividad en el parámetro r, puede simularse como suma de
r variables geométricas, aunque este algoritmo puede ser muy costoso en tiempo de
computación si r es elevado.
Existe también un método especı́fico basado en la propiedad
p
, r ⇒ X ∈ BN (r, p) .
X|Y ∈ Pois (Y ) , Y ∈ Γ
1−p
Algoritmo condicional
la binomial negativa
para simular
p
1. Simular L ∼ Γ
,r .
1−p
2. Simular X ∼Pois(L).
3. Devolver X.
64
CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Capı́tulo 6
Simulación de distribuciones
multidimensionales
La simulación de vectores aleatorios X = (X1 , X2 , . . . , Xd )0 que sigan cierto modelo
de distribución dado no es tarea siempre sencilla. En general, no resulta una extensión
inmediata del caso unidimensional, aunque, si las variables que componen el vector son
independientes, entonces bastará simular cada Xi con la distribución marginal deseada
(Fi ) y luego agrupar los valores simulados para cada componente en un vector.
En la mayor parte de los casos de interés, las componentes del vector aleatorio
son dependientes y el método anterior no es válido. A continuación se verán algunos
métodos generales para la simulación de distribuciones multidimensionales.
6.1.
Método de las distribuciones condicionadas
Supóngase un vector aleatorio d-dimensional, con distribución continua. Denótese
por f (x1 , x2 , . . . , xn ) su función de densidad conjunta y considérese la primera densidad
marginal, f1 (x1 ), y las sucesivas densidades condicionales f2 (x2 |x1 ), f3 (x3 |x1 , x2 ), . . .,
fd (xd |x1 , x2 , . . . , xd−1 ). Gracias a la regla del producto, generalizada a funciones de
densidad, se tiene
f (x1 , x2 , . . . , xn ) = f1 (x1 ) · f2 (x2 |x1 ) · f3 (x3 |x1 , x2 ) · · · fd (xd |x1 , x2 , . . . , xd−1 )
y, como consecuencia, puede darse el siguiente algoritmo general:
1. Generar X1 con densidad f1 .
2. Desde i = 2 hasta d generar Xi con densidad fi (•|X1 , X2 , . . . , Xi−1 ).
3. Devolver X = (X1 , X2 , . . . , Xd )0 .
Es inmediato comprobar que el método anteriormente expuesto es igualmente válido
si las variables Xi son discretas o, incluso, si algunas son discretas y otras continuas. En
tal caso se sustituirı́a la densidad por la masa de probabilidad. Ası́ pues, lo realmente
importante para poder aplicar el método de las distribuciones condicionadas es conocer
y saber simular la distribución marginal de X1 y las distribuciones condicionadas del
tipo Xi |X1 , X2 , . . . , Xi−1 para i = 2, 3, . . . , d.
65
66CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
Ejemplo 6.1.1 (Algoritmo para simular la distribución normal bidimensional por el método de las distribuciones condicionadas) Consideremos una
2
µ1
σ1 σ12
N2
,
,
µ2
σ12 σ22
por las propiedades de la distribución normal, bastará saber simular la distribución
2
0
σ1 σ12
N2
,
σ12 σ22
0
µ1
µ2
y luego sumarle el vector
.
Dado que X1 ∈ N (0, σ1 ), se tiene que
f1 (x1 ) =
σ1
1
√
x2
exp − 12
2σ1
2π
Además
1
1
f (x1 , x2 ) = f (x) = p
exp − x0 Σ−1 x
2
2π det (Σ)
Como
−1
Σ
1
=
det (Σ)
σ22 −σ12
−σ12 σ12
1
= 2 2
2
σ1 σ2 − σ12
σ22 −σ12
−σ12 σ12
se tiene que
1 0 −1
σ 2 x2 − 2σ12 x1 x2 + σ12 x22
xΣ x= 2 1
2
2
2 (σ12 σ22 − σ12
)
y, por tanto,
√
2 2
σ1 2π
x21
σ2 x1 − 2σ12 x1 x2 + σ12 x22
f (x1 , x2 )
p
=
− 2
exp −
f2 (x2 |x1 ) =
2
2
f1 (x1 )
2 (σ12 σ22 − σ12
)
2σ1
2π σ12 σ22 − σ12
2 2 2
2
4 2
2
) x21
1
σ1 σ2 x1 − 2σ1 σ12 x1 x2 + σ1 x2 − (σ12 σ22 − σ12
= √ q 2 2 2 exp −
2
σ1 σ2 −σ12
2σ12 (σ12 σ22 − σ12
)
2π
2
σ1
2 2
−2σ12 σ12 x1 x2 + σ14 x22 + σ12
x1
1
= √ q 2 2 2 exp −
2
σ1 σ2 −σ12
2σ12 (σ12 σ22 − σ12
)
2π
σ12


2 x2
σ12
2σ12 x1 x2
2
1
−
+
x
+
2
1
σ12
σ14

= √ q 2 2 2 exp −
2
2
2
σ1 σ2 −σ12
σ1 σ2 −σ12
2
2π
σ12
σ12
 2 
σ12 x1
x
−
2
σ12
1


= √ q 2 2 2 exp −

2
2
2
σ1 σ2 −σ12
σ1 σ2 −σ12
2 σ2
2π
2
σ
1
1
que es la densidad de una N
σ 2 σ 2 −σ 2
σ12
x , 1 2σ2 12
σ12 1
1
.
6.1. MÉTODO DE LAS DISTRIBUCIONES CONDICIONADAS
67
En resumen, se tiene que si
2
X1
0
σ1 σ12
∈ N2
,
X2
0
σ12 σ22
q 2 2 2 σ1 σ2 −σ12
σ12
2
entonces X1 ∈ N (0, σ1 ) y X2 |X1 ∈ N σ2 X1 ,
. Ası́, el algoritmo de simuσ12
1
lación consistirı́a en los siguientes pasos:
1.
2.
3.
4.
5.
Simular Z1 , Z2 ∼ N (0, 1) independientes.
Hacer Y1 = σ1 Z1 .
q 2 2 2
σ1 σ2 −σ12
.
Hacer Y2 = σσ122 Y1 + Z2
σ12
1
Hacer X1 = Y1 + µ1 , X2 = Y2 + µ2 .
→
−
Devolver X = (X1 , X2 )t .
Ejemplo 6.1.2 (La distribución uniforme en el cı́rculo unitario). Se trata de
la distribución bidimensional continua cuya densidad es constante en dicho cı́rculo
C = {(x1 , x2 )0 ∈ R2 /x21 + x22 ≤ 1}.
Su función de densidad viene dada por
f (x1 , x2 ) =
1
π
0
si
si
(x1 , x2 )0 ∈ C
(x1 , x2 ) 0 ∈
/C
La densidad marginal de la primera variable resulta
p
Z +√1−x21
2 1 − x21
1
dx2 =
si x1 ∈ [−1, 1]
f1 (x1 ) = √
π
− 1−x21 π
es decir,
f1 (x1 ) =
2
π
p
0
1 − x21
si
si
x1 ∈ [−1, 1]
x1 ∈
/ [−1, 1]
Además
q
q
1
f (x1 , x2 )
1
π
f2 (x2 |x1 ) =
= √ 2 = p
, si x2 ∈ − 1 − x21 , 1 − x21
2 1−x1
f1 (x1 )
2 1 − x21
π
valiendo cero en otro caso.
Se tiene entonces que
q
q
2
2
X2 |X1 ∈ U − 1 − X1 , 1 − X1 ,
siempre que X1 ∈ [−1, 1].
Finalmente, el algoritmo resulta:
1. Simular X1 con densidad f1 .h
i
p
p
2. Simular X2 con densidad U − 1 − X12 , 1 − X12 .
3. Devolver X = (X1 , X2 )0 .
Para el paso 1 puede utilizarse, por ejemplo, el método de aceptación/rechazo, pues
se trata de una densidad acotada definida en un intervalo acotado.
68CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
6.2.
El método de aceptación/rechazo
La idea general del método de aceptación/rechazo es aplicable para simular variables
aleatorias definidas en cualquier espacio (no sólo en R). En particular puede usarse para
simular vectores aleatorios de Rd . Sin embargo, en este contexto, resulta mucho más
difı́cil encontrar una densidad auxiliar adecuada y, especialmente, conseguir que el
número medio de comparaciones del método se mantenga dentro de unos lı́mites de
eficiencia razonables cuando la dimensión es elevada.
Ejemplo 6.2.1 (Simulación de puntos uniformemente distribuı́dos sobre la
“esfera” unitaria d-dimensional Cd )
Cd = (x1 , x2 , . . . , xd )0 ∈ Rd /x21 + x22 + · · · + x2d ≤ 1
Denotando por Vd (1), el “volumen” (la medida) de la esfera d-dimensional de radio 1
(en general, la de radio r verifica Vd (r) = rd Vd (1)), se tiene:
1
si (x1 , x2 , . . . , xd )0 ∈ Cd
Vd (1)
f (x1 , x2 , . . . , xd ) =
0
si (x1 , x2 , . . . , xd )0 ∈
/ Cd
Para simularvalores en Rd , con densidad f ,podemos utilizar como densidad auxiliar
d
d
la de una U [−1, 1] × [−1, 1] × · · · × [−1, 1] = U [−1, 1] , dada por
g (x1 , x2 , . . . , xd ) =
1
2d
0
si
xi ∈ [−1, 1], para todo i = 1, 2, . . . , d
en otro caso
La constante c óptima para la utilización del método de aceptación/rechazo es
f (x)
=
c = máx
→
−
x /g(x)>0 g (x)
1
Vd (1)
1
2d
2d
=
Vd (1)
y la condición de aceptación cU g (T) ≤ f (T) se convierte en
2d
1
1
U d 1[−1,1]d (T) ≤
1C (T) −
Vd (1) 2
Vd (1) d
o, lo que es lo mismo, U 1[−1,1]d (T) ≤ 1Cd (T). Esta condición equivale a que T ∈ Cd ,
es decir, que se verifique
T12 + T22 + · · · + Td2 ≤ 1
Por otra parte, la simulación de T ∼ U [−1, 1]d puede hacerse trivialmente mediante Ti ∼ U ([−1, 1]) para cada i = 1, 2, . . . , d, ya que las componentes son independientes. Como el valor de U es superfluo en este caso, el algoritmo queda:
1.
2.
3.
4.
Simular V1 , V2 , . . . , Vd ∼ U (0, 1) independientes.
Para i = 1, 2, . . . , d hacer Ti = 2Vi − 1.
Si T12 + T22 + · · · + Td2 > 1 entonces volver al paso 1.
Devolver X = (T1 , T2 , . . . , Td )0 .
6.3. MÉTODOS DE CODIFICACIÓN O ETIQUETADO
69
Usando las fórmulas del “volumen” de una “esfera” d-dimensional:
 d/2 d
π r


si d es par

(d/2)!
Vd (r) =
d d2 e+1 π d d2 e rd


 2
si d es impar
1 · 3 · 5···d
puede verse que el número medio de repeticiones de los pasos 1-3 del algoritmo, que
d
viene dado por la constante c = Vd2(1) , puede hacerse enormemente grande. Ası́, si d = 2
se tiene c =1.27, si d = 3 se tiene c =1.91, si d = 4 entonces c =3.24 y para d = 10
resulta c =401.5 que es un valor que hace que el algoritmo sea tremendamente lento en
dimensión 10.
6.3.
Métodos de codificación o etiquetado
En el caso de que la función de distribución d-dimensional sea discreta existen
métodos que permiten reducir la simulación de dicha variable al contexto de simular una
variable aleatoria discreta unidimensional. Estos métodos son conocidos como métodos
de etiquetado o codificación y la idea básica consiste en construir una función h que
codifique las posibles d-tuplas del conjunto donde toma valores la variable discreta,
haciendo corresponder a cada uno un número entero no negativo diferente.
Ejemplo 6.3.1 (Algoritmo para simular una variable bidimensional discreta
(X1 , X2 )0 cada una de cuyas componentes toma valores enteros no negativos).
El subconjunto de R2 en el que toma valores el vector aleatorio es
Z+ × Z+ = Z+
2
= {(i, j) /i, j ∈ {0, 1, 2, . . .}}
Se tratará de definir una función biyectiva, h : Z+ × Z+ −→ Z+ , que permita
etiquetar los pares de enteros.
De esta forma, h induce sobre la variable transformada, C = h (X1 , X2 ), una masa
de probabilidad
(C)
pk
(X ,X )
:= P (C = k) = P (h (X1 , X2 ) = k) = P (X1 , X2 ) = h−1 (k) =: ph−11 (k)2
Resulta inmediato, por tanto, obtener la masa de probabilidad de la variable discreta
unidimensional C, a partir de la masa de probabilidad de la variable original (X1 , X2 ).
De todas formas, debemos tener en cuenta que para que esto sea calculable en la práctica
en un tiempo razonable, la función h debe poder invertirse de forma rápida.
Ası́ pues para simular la variable (X1 , X2 ) podemos proceder mediante uno de los
algoritmos posibles para simular C calculando en tantos pasos como sean necesarios
los valores de la forma h−1 (k).
Una posibilidad sencilla consiste en utilizar
h (i, j) =
(i + j) (i + j + 1)
+i
2
70CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
Consideremos k ∈ Z+ , el valor (i, j) = h−1 (k) debe verificar
(i + j) (i + j + 1)
+i=k
2
Denotando ahora n = i + j, para encontrar (i, j) = h−1 (k) basta con hallar n e i,
enteros positivos, con n ≥ i tales que
h (i, j) = k ⇔
n (n + 1)
+i=k
2
Debemos entonces encontrar el único n que cumple
n (n + 1)
n (n + 1)
n (n + 1) + 2 (n + 1)
(n + 1) (n + 2)
≤k≤
+n<
=
2
2
2
2
2
2
Como además n < n (n + 1) y (n + 1) (n + 2) < (n + 2) , se tiene que ese valor n ha
de verificar
n2 < 2k < (n + 2)2 ,
es decir
m
l√ m
2k − 2 < n ≤
2k .
l√ m
l√ m
Dicho de otro modo, se tiene que n ha de ser igual a
2k − 1 ó
2k .
l√
n(n+1)
Basta entonces con calcular la expresión
l√ m l√2 m para esos posibles valoresl√de nm y
comparar el resultado con 2k. Ası́, si
2k
2k + 1 > 2k entonces n =
2k −
l√ m
2k . Finalmente se calcula
1 y, en caso contrario, n =
n (n + 1)
y j =n−i
2
El cálculo de h−1 (k) es muy rápido y el resto del algoritmo se reduce a la simulación
de la variable unidimensional C.
i=k−
−1
Ejemplo 6.3.2 Calculemos
anterior
√ por el procedimiento
√
√ el valor h (16). Calculamos primeramente n =
2 · 16 =
2 · 16 =
32 = d5. 656 854 2e = 5. Luego
calculamos 5 (5 + 1) = 30 ≤ 32 = 2 · 16, con lo cual n = 5. Además i = 16 − 5·6
=1y
2
−1
j = 5 − 1 = 4. Ası́ pues se obtiene h (16) = (1, 4).
Aunque no entraremos con detalle en ello, conviene resaltar que es posible generad
lizar este tipo de funciones de codificación a (Z+ ) . También es factible encontrar la
inversa de tal función generalizada (llamada función de decodificación) que se puede
calcular eficientemente.
Cuando la variable aleatoria X2 toma un número finito de valores (supongamos
comprendidos entre 0 y M ), otra posible función de codificación, más sencilla es
h (i, j) = (M + 1) i + j
cuya inversa viene dada por
−1
h
(k) =
k
, kmod (M + 1) .
M +1
d
Estas funciones de codificación y decodificación son generalizables a (Z+ ) y aplicables
al caso en que el vector aleatorio X tome un número finito de valores.
6.4. MÉTODOS PARA SIMULAR LA DISTRIBUCIÓN NORMAL MULTIVARIANTE71
6.4.
Métodos para simular la distribución normal
multivariante
Dado un vector µ = (µ1 , µ1 , . . . , µd )0 ∈ Rd y una matriz definida positiva


σ11 σ12 · · · σ1d
 σ21 σ22 · · · σ1d 


Σ=  ..
.. . .
.. 
 .
.
.
. 
σd1 σd2 · · · σdd
la distribución normal d-dimensional de parámetros (µ , Σ) (que corresponden con su
vector de medias y su matriz de varianzas-covarianzas), abreviadamente Nd (µ , Σ), es
la que tiene densidad dada por
1
0
−d/2
−1/2
−1
f (x ) = (2π)
det (Σ)
exp − (x − µ ) Σ (x − µ)
2
Cuando Σ es diagonal



Σ=

σ12 0
0 σ22
..
..
.
.
0 0
···
···
..
.
0
0
..
.
· · · σd2



,

se obtiene fácilmente
−d/2
f (x ) = (2π)
d
Y
!−1/2
σi2
i=1


1
σ12
0
···
···
...
0
0
..
.




 1
 0 σ122

0

 (x − µ
× exp 
..
− 2 (x − µ )  ..

.

 .

1
0 0 · · · σ2
d
!
!
d
d
Y
X (xi − µi )2
1
−d/2
= (2π)
σi−1 exp −
2 i=
σi2
i=1
!!
d
d
Y
Y
1
(xi − µi )2
√ exp −
=
=
φµ1 ,σi (xi )
2
2σ
σ
2π
i
i
i=1
i=1



)


siendo φµ1 ,σi la función de densidad de una N (µi , σi ).
De esta forma, cuando Σ es diagonal, las componentes son independientes y resulta
trivial simular la Nd (µ , Σ) mediante el siguiente algoritmo:
1. Simular Z1 , Z2 , . . . , Zd ∼ N (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer Xi = µi + σi Zi .
3. Devolver X = (X1 , X2 , . . . , Xd )0 .
72CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
Una propiedad que resulta muy útil para simular la distribución Nd (µ , Σ) con Σ
arbitraria es la siguiente.
Proposición 6.4.1 Si X ∈ Nd (µ , Σ) y A es una matriz de dimensión p×d, de rango
máximo, con p ≤ d, entonces Y = AX ∈ Np (Aµ , AΣA0 ).
Dada una variable aleatoria X ∈ Nd (µ , Σ), Y = X − µ ∈ Nd (0 , Σ).
Si Σ es una matriz definida positiva, existe una matriz ortogonal H (es decir, tal
que H−1 = H0 ) de forma que la matriz Λ = H0 ΣH es diagonal. De hecho, H es la
matriz de cambio de base para que la matriz asociada a la correspondiente aplicación
lineal sea la matriz diagonal Λ (en lugar de la matriz de partida Σ).
Las columnas de la matriz H son precisamente los autovectores linealmente independientes (y de módulo unitario) de la matriz Σ, es decir, d vectores linealmente
independientes, x1 , x2 , . . . , xd , tales que xi 0 xi = 1 para todo i = 1, 2, . . . , n y con
xi 0 xj = 0 si i 6= j, verificando además que ∃λi ∈ R tal que Σxi = λi xi (condición de
ser un autovector). Además, los autovalores λ1 , λ2 , . . ., λd (que son todos positivos)
son precisamente los elementos de la diagonal de la matriz Λ.
Partiendo de una variable Z ∈ Nd (0, I) (fácilmente simulable a partir de Z1 , Z2 ,
. . ., Zd ∼ N (0, 1) independientes), se tiene que Λ1/2 Z ∈ Nd (0, Λ), siendo

Λ
1/2


=

1/2
λ1
0
..
.
0
λ2
..
.
0
0
1/2
···
···
...
0
0
..
.
1/2



.

· · · λd
Multiplicando por la izquierda por la matriz H, se tiene
HΛ1/2 Z ∈ Nd (0, HΛH0 ) ∈ Nd (0, Σ)
Finalmente, basta sumar el vector µ para obtener
X = µ + HΛ1/2 Z ∈ Nd (µ , Σ)
Una vez obtenidos los autovalores, λ1 , λ2 , . . ., λd , y los autovectores asociados de la
matriz Σ, que determinan las columnas de la matriz H, el algoritmo procederı́a como
sigue:
1. Simular Z1 , Z2 , . . . , Zd ∼ N (0, 1)√ independientes.
2. Para i = 1, 2, . . . , d hacer Yi = λi Zi .
3. Devolver X = µ + HY.
6.4. MÉTODOS PARA SIMULAR LA DISTRIBUCIÓN NORMAL MULTIVARIANTE73
Ejemplo 6.4.1 Dar un algoritmo para simular la distribución
1
2,36 −0,48
N2
,
3
−0,48 2,64
Para encontrar los autovalores y autovectores de Σ resolvemos det (Σ − λI) = 0,
es decir,
2,36 − λ −0,48 2
−0,48 2,64 − λ = 0 ⇔ (2,36 − λ) (2,64 − λ) − (−0,48) = 0
√
5 ± 52 − 6 · 4
2
⇔ λ − 5λ + 6 = 0 ⇔ λ =
2
que ofrece como soluciones λ1 = 3 y λ2 = 2.
Para encontrar autovectores de módulo 1 correspondientes a esos autovalores no
tenemos más que resolver los sistemas (Σ − λi I) µ = 0 para i = 1, 2 imponiendo la
condición de módulo igual a 1, es decir x21 + x22 = 1. Ası́, resulta
-0.64 -0.48
16 12
Σ − λ1 I =
= -0.04
, luego
-0.48 -0.36
12 9
4
(Σ − λ1 I) x = 0 ⇔ x2 = − x1 , pero como x21 + x22 = 1, se tiene
3
25 2
3
4
x1 = 1, luego x1 = y x2 = −
9
5
5
(también es solución si cambiamos ambos de signo);
0.36 -0.48
9 −12
Σ − λ2 I =
= 0.04
, luego
-0.48 0.64
−12 16
3
(Σ − λ2 I) x = 0 ⇔ x2 = x1 , pero como x21 + x22 = 1, se tiene
4
25 2
4
3
x1 = 1, luego x1 = y x2 =
16
5
5
De esta forma, la matriz H resulta, entre otras posibilidades,
3/5 4/5
0.6 0.8
H=
=
.
−4/5 3/5
-0.8 0.6
Ahora
Y=Λ
1/2
√
Z=
3 √0
2
0
Z1
Z2
√
3Z
1
= √
2Z2
y finalmente,
X = µ + HY =
1 + 0.6Y1 + 0.8Y2
3 − 0.8Y1 + 0.6Y2
Ası́, el algoritmo resultarı́a
1. Simular Z1 ,√
Z2 ∼ N (0, 1) √
independientes.
2. Hacer Y1 = 3Z1 e Y2 = 2Z2 .
3. Obtener X1 = 1 + 0.6Y1 + 0.8Y2 y X2 = 3 − 0.8Y1 + 0.6Y2 .
4. Devolver X = (X1 , X2 )0 .
74CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
Capı́tulo 7
Diseño de experimentos de
simulación
En el presente capı́tulo se abordarán algunas de las cuestiones más importantes a
la hora de diseñar un estudio de simulación:
Similitudes y diferencias entre la simulación y la experimentación sobre el sistema
real.
Simulación estática y dinámica. Simulación por eventos y por cuantos.
Técnicas de reducción de la varianza.
Problemas de estabilización y dependencia.
7.1.
Diferencias y similitudes con la experimentación real
Teniendo en cuenta que la simulación es la técnica consistente en la realización
de experimentos de muestreo sobre un modelo construido a partir de un sistema real,
es obvio que la simulación necesitará de gran cantidad de técnicas estadı́sticas para
obtener las muestras (muestreo) y para analizar los resultados obtenidos por la experimentación artificial (estimación, intervalos de confianza, contrastes de hipótesis, etc.).
Por todo ello, puede afirmarse que, en general, en cuanto a la utilización de técnicas
estadı́sticas es muy similar a la propia experimentación sobre el sistema real.
Entre las diferencias caben destacar las siguientes:
1. La utilización de técnicas de estimación puntual, construcción de intervalos de
confianza y contrastes de hipótesis es algo menos frecuente en la simulación que
en la experimentación real. La razón es que algunos de los parámetros (los de
control) ya son conocidos en la simulación y, por tanto, no es necesario hacer
inferencia sobre ellos, aunque sı́ sobre los de salida (que miden, de alguna forma,
el comportamiento del sistema).
75
76
CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
2. La simulación suele hacer un uso mucho más intensivo de técnicas de ordenación
y optimización. Esto es debido a que, en el contexto de la simulación, es factible
comparar un gran número de escenarios (entre los que se desea optimizar, por
ejemplo) en muy poco tiempo, cosa que se da muy raramente en la experimentación real.
3. Una peculiaridad de la simulación es que casi siempre es posible comparar distintas estrategias sobre las mismas muestras simuladas (simplemente utilizando
la misma semilla en la simulación, convenientemente planificada).
7.2.
Simulación estática y dinámica
La simulación se dice estática si en el modelo no juega ningún papel el transcurso
del tiempo mientras que es dinámica si el tiempo es una de las variables importantes
del modelo.
La simulación estática se usa muy frecuentemente por los estadı́sticos para comprobar el comportamiento comparativo de diversos métodos estadı́sticos alternativos
para tamaños muestrales finitos (complementando los estudios teóricos, casi siempre
asintóticos).
En la simulación dinámica, normalmente, se trata de ir analizando los distintos
estados por los que va pasando un sistema que evoluciona en el tiempo. Esto provoca,
en general, un mayor coste computacional y problemas de estabilización y dependencia.
Existen dos grandes tipos de simulación dinámica: la simulación continua, en la que
se supone que el sistema cambia de estado constantemente, y la simulación discreta,
para la cual los cambios se producen en ciertos instantes de tiempo singulares.
7.3.
Simulación por eventos y por cuantos
Con el nombre de simulación por eventos, o ası́ncrona, designamos el tipo de simulación dinámica discreta en la cual se controla la variable tiempo moviéndola hasta
la ocurrencia del siguiente suceso (o evento). Esto implica la necesidad de controlar
minuciosamente cuál es dicho próximo suceso: saber cuáles son los posibles sucesos en
un futuro inmediato y cuál de ellos es el más inmediato.
La simulación por cuantos, responde a una filisofı́a totalmente diferente. Se trata de
examinar el sistema (que evoluciona en el tiempo) dejando pasar pequeños intervalos
de tiempo de longitud δ, fija, (llamados cuantos) en los cuales se supone que, a lo sumo,
un solo suceso puede producirse.
En general, la simulación por eventos es exacta y de más difı́cil implementación,
pero de mucha más rápida ejecución que la simulación por cuantos. Sin embargo esta
última es muchas veces la única posibilidad factible en la simulación dinámica continua.
7.4. TÉCNICAS DE REDUCCIÓN DE LA VARIANZA
7.4.
77
Técnicas de reducción de la varianza
Existen multitud de técnicas encaminadas a reducir la varianza en un estudio de simulación o bien a tratar de estimarla. Algunas de ellas son el uso de números aleatorios
comunes, la utilización de variables antitéticas, la estratificación, el uso de variables
de control, el método Jackknife, los métodos de remuestreo (destacando entre ellos el
método bootstrap), etc.
En general conviene tener en cuenta que si uno de los objetivos de la simulación es
precisamente estimar la variabilidad, no conviene utilizar estas técnicas de reducción
de la varianza. Éstas son aplicables normalmente cuando la simulación pretende ofrecer
respuestas, lo más precisas posibles, sólo sobre cantidades medias.
7.4.1.
Números aleatorios comunes
Supóngase que se desea comparar dos estrategias distintas, X e Y, mediante N repeticiones (o “trials”) de un experimento de simulación, de las cuales se han obtenido
los valores numéricos de las variables de salida X1 , X2 , . . . , XN , para la primera, e Y1 ,
Y2 , . . ., YN , para la segunda.
Si la comparación se realiza estimando la diferencia de las medias de las variables
de salida para ambas estrategias, E (X) − E (Y ) = E (X − Y ) , puede usarse X − Y =
N
1 X
(Xi − Yi ), cuya varianza viene dada por
N i=1
V ar X − Y
N
1 X
1
=
V ar (Xi − Yi ) = V ar (X1 − Y1 )
2
N i=1
N
=
1
(V ar (X1 ) + V ar (Y1 ) − 2Cov (X1 , Y1 ))
N
Usando los mismos números aleatorios (es decir, repitiendo los cálculos con la misma
semilla) en las variables de entrada de la simulación, se tiene que Cov (Xi , Yi ) > 0 y,
por tanto,
1
(V ar (X1 ) + V ar (Y1 ))
V ar X − Y ≤
N
que es la varianza que tendrı́a X − Y en caso de haber usado muestras independientes
para cada estrategia.
78
7.4.2.
CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
Variables antitéticas
Supóngase ahora que se desea evaluar el resultado de una única estrategia (sin
compararla con ninguna otra alternativa). Después de N repeticiones de la simulación,
tendremos N valores numéricos de las variables X1 , X2 , . . ., XN , procediendo a estiN
1 X
mar la media E (X) teórica mediante X =
Xi . Dado que éste es un estimador
N i=1
insesgado, su precisión puede medirse mediante V ar X .
N
1 X
Si las variables son independientes, la V ar X = 2
V ar (Xi ), mientras que,
N i=1
en general, se tiene
!
N
X
1 X
V ar X = 2
V ar (Xi ) + 2
Cov (Xi , Xj )
N
i=1
i<j
Una forma de utilizar esta última expresión para reducir la varianza del estimador
consiste en hacer que cada variable con ı́ndice impar sea negativamente correlada con
la variable de ı́ndice siguiente (siendo independiente de las demás).
La forma más sencilla de conseguir esto cuando se utiliza el método de inversión
para simular las Xi consiste en tomar un valor U ∼ U (0, 1) para simular X2i−1 y el
valor 1 − U para simular X2i , su variable antitética, para i = 1, 2, . . . , N2 (si N es par).
El procedimiento es más complicado con otros métodos de simulación distintos del de
inversión.
7.4.3.
Estratificación
En ocasiones conviene dividir la población en estratos obteniendo, del total de la
muestra, cierto número de observaciones de cada estrato (proporcional a la probabilidad
de cada uno).
Ejemplo 7.4.1 (muestreo estratificado de una exponencial) Supóngase que, dada una muestra de tamaño 10 de una población con distribución exp (1) , se desea estimar la media poblacional.
Si pretendemos evitar que, por puro azar, exista alguna zona, en la que la exponencial toma valores, no representada en la muestra de 10 datos, podemos proceder de la
siguiente forma:
Tomemos tres estratos, por ejemplo, el del 40 % de valores menores, el siguiente
50 % de valores intermedios y el 10 % de valores mayores para esta distribución.
Como el algoritmo de inversión (optimizado) para simular la exp (1) es
1. Generar U ∼ U (0, 1).
2. Hacer X = − ln U .
la forma de garantizar que obtengamos 4, 5 y 1 valores, repectivamente, en cada uno
de los tres estratos consiste en elegir U ∈ [0,6, 1), en el primer caso, U ∈ [0,1, 0,6), en
el segundo y U ∈ [0, 0,1) para el tercer estrato.
7.4. TÉCNICAS DE REDUCCIÓN DE LA VARIANZA
79
Dado que, en principio, no hay nada que nos garantice que, simulando diez valores
U1 , U2 , . . . , U10 ∼ U (0, 1), las proporciones de los estratos son las deseadas (aunque
sı́ lo sean en media) una forma de proceder consiste en rechazar valores de U que
caigan en uno de esos tres intervalos cuando el cupo de ese estrato esté ya lleno. Esto
d
es lo mismo que simular 4 valores de U |U ∈[0,6,1) = U [0,6, 1) para el primer estrato, 5
d
d
valores de U |U ∈[0,1,0,6) = U [0,1, 0,6) para el segundo y uno de U |U ∈[0,0,1) = U [0, 0,1) para
el tercero.
El algoritmo con esta estratificación serı́a como sigue:
1.
2.
3.
4.
5.
Generar Ui ∼ U (0, 1) para i = 1, 2, . . . , 10.
Si i ≤ 4 entonces hacer Ui = 0,4 · Ui + 0,6.
Si 4 < i ≤ 9 entonces hacer Ui = 0,5 · Ui + 0,1.
Si i = 10 entonces hacer Ui = 0,1 · Ui .
Desde i = 1 hasta 10 devolver Xi = − ln Ui .
No es difı́cil probar que V ar (Xi ) = 0,0214644 si i = 1, 2, 3, 4, V ar (Xi ) = 0,229504
si i = 5, 6, 7, 8, 9 y V ar (X10 ) = 1. Como consecuencia,
10
1 X
V ar (Xi ) = 0,022338
V ar X = 2
10 i=1
que es bastante menor que 0.1, la varianza en el caso de muestreo aleatorio simple no
estratificado.
80
7.5.
CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
Problemas de estabilización y dependencia
Ambas cuestiones suelen plantearse en la simulación dinámica. Los problemas de
estabilización están relacionados con el hecho de que, en ocasiones, el sistema evoluciona en el tiempo de tal forma que tiene una distribución estacionaria que se supone
de partida pero que puede ser muy sensible a las condiciones iniciales con las que se
comience la simulación. En tal caso resulta conveniente el transcurso de cierto perı́odo
de tiempo (denominado perı́odo de estabilización) durante el cual los resultados obtenidos para las variables de salida son ignorados y cuyo único objeto es conseguir que
se estabilice la distribución de probabilidad.
Ejemplo 7.5.1 Supongamos el siguiente modelo de simulación:
Xt = 10 + 0,7 · (Xt−1 − 10) + εt
para explicar la temperatura, Xt , tomada a las 12 a.m. en el dı́a t, donde εt es un
error aleatorio con distribución N (0, 1). Parece evidente que, en un modelo como éste,
es crucial el valor de la condición inicial X0 correspondiente al origen de tiempos. En
otras palabras, tomando para X0 un valor muy lejano a aquéllos más probables bajo la
distribución estacionaria (por ejemplo, X0 = 100), es intutitivo que se necesitarı́a de
una etapa inicial considerable para llegar a alcanzar valores estacionarios. Por ejemplo,
suponiendo que los εt fuesen cero (que aunque no es cierto, realmente son bastante
pequeños en relación con el valor 100), se obtendrı́a la siguiente sucesión de valores:
X0 = 100, X1 = 73, X2 = 54,1, X3 = 40,87, X4 = 31,7, X5 = 25,4, . . . El perı́odo de
estabilización serı́a mucho menor si se partiese de un valor inicial más cercano a 10.
Los problemas de dependencia son aquéllos derivados del hecho de que frecuentemente (de nuevo en modelos de simulación dinámica) las distintas variables de salida
de la simulación son dependientes. En el ejemplo anterior es obvio que cada valor Xt
depende de Xt−1 (incluso de Xt−2 y de otras anteriores, aunque cada vez en menor
medida). Esto afecta fundamentalmente a la precisión de los estimadores construidos
con observaciones de las mismas. Una forma de atenuar este efecto serı́a considerar
observaciones de las mismas en instantes temporalmente lejanos (donde se supone que
la dependencia es mucho más débil). En ocasiones, más que atenuar este efecto se trata
de estimar la precisión del estimador resultante. Obviamente, para ello ha de tenerse
en cuenta la dependencia.
Descargar