26 de enero de 2009 - eio.usc.eseio.usc.es/eipc1/base/basemaster/formularios-php/... · el m´etodo...

80
Simulaci´ on estad´ ıstica 26 de enero de 2009

Upload: vanlien

Post on 28-Jun-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Simulacion estadıstica

26 de enero de 2009

2

Capıtulo 1

Introduccion

1.1. Conceptos basicos

La simulacion es la tecnica que consiste en realizar experimentos de muestreo sobreel modelo de un sistema.

Un modelo no es mas que un conjunto de variables junto con ecuaciones matemati-cas que las relacionan y restricciones sobre dichas variables.

La modelizacion es una etapa presente en la mayor parte de los trabajos de investi-gacion (especialmente en las ciencias experimentales). En muchas ocasiones, la realidades bastante compleja como para ser estudiada directamente y es preferible la formu-lacion de un modelo que contenga las variables mas relevantes que aparececen en elfenomeno en estudio y las relaciones mas importantes entre ellas.

Frecuentemente, la resolucion de los problemas que se pretenden abordar puede rea-lizarse por procedimientos analıticos sobre el modelo construido (normalmente median-te el uso de herramientas matematicas como las de resolucion de ecuaciones ordinariaso de ecuaciones diferenciales, el calculo de probabilidades, etc.). En otras circunstanciasdicha resolucion analıtica no es posible (o es tremendamente complicada o costosa) yes preferible una aproximacion de la solucion mediante simulacion.

1.2. Experimentacion real y simulacion

La experimentacion directa sobre la realidad puede tener muchos inconvenientes:

un coste muy alto

gran lentitud

en ocasiones las pruebas son destructivas

a veces no es etica (experimentacion sobre seres humanos)

puede resultar imposible (un acontecimiento futuro)

3

4 CAPITULO 1. INTRODUCCION

Razones como esas (y algunas otras) pueden indicar la ventaja de trabajar con unmodelo del sistema real.

La estadıstica es la ciencia que se preocupa de como estimar los parametros y con-trastar la validez de un modelo a partir de los datos observados del sistema real que sepretende modelizar.

Una vez se ha construido un modelo, la primera tentativa debe ser siempre tratarde resolver analıticamente el problema que nos ocupa. En caso de ser esto posible, lasolucion es exacta (a menudo la resolucion tambien es rapida).

En caso contrario puede recurrirse a la simulacion que involucrara mucha laborde procesado. Gracias a la gran potencia de calculo de los computadores actuales losprogramas de simulacion pueden ofrecer una solucion aproximada rapida en la mayorparte de los problemas susceptibles de ser modelados.

Ejemplo 1.2.1 Supongase que se quiere calcular la probabilidad de aparicion de exac-tamente dos caras en tres lanzamientos de una moneda.

La experimentacion sobre la situacion real consistirıa en repetir numerosas veceslos tres lanzamientos y observar con que 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 estemodelo, se tratarıa de calcular P (X = 2). En este caso la resolucion analıtica es factibley muy sencilla

P (X = 2) =

(3

2

)(1

2

)2(1

2

)1

=3

8= 0. 375

La simulacion consistirıa en obtener numeros aleatorios (en ordenador) para repli-car artificialmente los tres lanzamientos en gran cantidad de ocasiones, observando lafrecuencia relativa con la que aparecen exactamente dos caras.

Ejemplo 1.2.2 Supongase el siguiente juego: un jugador lanza una moneda (abonandoun euro por cada lanzamiento) hasta que el numero de caras supere en tres al numero decruces obtenidas. En ese momento el jugador recibe 10 unidades monetarias. ¿Resultarentable jugar?

De nuevo aquı la experimentacion real es muy lenta.La modelizacion puede realizarse de nuevo gracias a la teorıa de la probabilidad. En

esta ocasion, sin embargo, la resolucion analıtica serıa complicada (salvo que se tenganconocimientos de cadenas de Markov).

Parece, por tanto, conveniente una aproximacion mediante simulacion. Se tratarıade ir replicando artificialmente el lanzamiento de la moneda simulando un gran numerode posibles partidas y examinando la perdida o ganancia media.

1.3. VENTAJAS E INCONVENIENTES DE LA SIMULACION 5

1.3. Ventajas e inconvenientes de la simulacion

Ventajas:

1. En casos en los que la resolucion analıtica no puede llevarse a cabo.

2. Cuando existen medios de resolver analıticamente el problema pero dicha resolu-cion 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 experimen-tacion destructiva.

5. En ocasiones en las que la experimentacion sobre el sistema es posible pero noetica.

6. Es de utilidad en sistemas que evolucionan muy lentamente en el tiempo.

Inconvenientes:

1. La construccion 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 precision de la simulacion, especialmente en lo relativoa la precision del modelo formulado.

6 CAPITULO 1. INTRODUCCION

Capıtulo 2

Generacion de numerospseudoaleatorios uniformes en (0. 1)

2.1. Introduccion

Casi todos los metodos de simulacion se basan en la posibilidad de generar numerosaleatorios con distribucion U(0. 1). Hasta el gran desarrollo de los ordenadores losnumeros aleatorios se obtenıan por procedimientos experimentales (loterıas, ruletas) yse almacenaban en tablas. En la actualidad estos numeros son generados por ordenadory se denominan pseudoaleatorios ya que, en realidad, todos los numeros de la sucesionque se genera son predecibles a partir del primero, llamado semilla. En cualquier caso,todo generador de numeros pseudoaleatorios mınimamente aceptable debe comportarsecomo si se tratase de una muestra genuina de datos independientes de una U(0. 1).

2.1.1. Propiedades deseables de un generador de numeros pseu-doaleatorios

Para poder utilizar sin reservas un generador de numeros pseudoaleatorio este debesatisfacer los contrastes estadısticos mas habituales en este contexto: los de aleatoriedad(los contrastes de rachas o los de saltos), los de independencia (como los basados enautocorrelaciones, el test de Ljung-Box, el contraste de pares seriados, etc) y los debondad de ajuste a una U(0. 1) (entre ellos es test chi-cuadrado y el de Kolmogorov-Smirnov). Tambien existen otros contrastes especıficos que tratan de indagar a la vezsobre varios de los aspectos anteriores. Entre ellos destacamos el contraste del poker yel del coleccionista.

7

8 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

Ademas de estas propiedades de tipo estadıstico existen otros requisitos computa-cionales. Unos y otros pueden resumirse en la siguiente lista.

Requisitos deseables para un generador

1. Producir muestras segun una distribucion U(0. 1).

2. Pasar los contrastes de aleatoriedad e independencia mas habituales.

3. Que la sucesion 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. Metodo de los cuadrados medios

Es debido a von Neumann y tiene fundamentalmente solo interes historico.

1. Se toma un numero entero inicial, x0, llamado semilla, de 2n cifras.

2. Se eleva al cuadrado obteniendo un numero de 4n cifras (completando, quiza, conceros a la izquierda).

3. Se considera x1 el numero entero formado por las 2n cifras centrales.

4. Se eleva al cuadrado x1 y se repite el proceso anterior tantas veces como seapreciso.

5. Finalmente se consideran los numeros ui = xi

102n , ya en el intervalo (0. 1).

Ejemplo 2.2.1 Tomese n = 2 y x0 = 4122. Resulta:

x0 = 4122 x20 = 16|9908|84 x1 = 9908 x2

1 = 98|1684|64x2 = 1684 x2

2 = 02|8358|56 x3 = 8358 x23 = 69|8561|64

x4 = 8561 x24 = 73|2907|21 x5 = 2907 x2

5 = 08|4506|49

De esta forma, los numeros pseudoaleatorios en (0. 1) son

u0 = 0. 4122 u1 = 0. 9908 u2 = 0. 1684 u3 = 0. 8385u4 = 0. 8561 u5 = 0. 2907

Siguiendo, de nuevo, con n = 2, pero tomando como semilla x0 = 3708, se obtiene

x0 = 3708 x20 = 13|7492|64 x1 = 7292 x2

1 = 56|1300|64x2 = 1300 x2

2 = 01|6900|00 x3 = 6900 x23 = 47|6100|00

x4 = 6100 x24 = 37|2100|00 x5 = 2100 x2

5 = 04|4100|00x6 = 4100 x2

6 = 16|8100|00 x7 = 8100 x27 = 65|6100|00

x8 = 6100

Ası pues, como x8 = x4, los valores u4,u5, u6, u7 se repetiran cıclicamente de formaindefinida. Este tipo de fenomenos de ciclo corto son su mayor inconveniente.

2.3. METODO DE LEHMER 9

2.3. Metodo de Lehmer

El metodo consiste en los siguientes pasos:

1. Se toma como semilla un numero entero, x0, de n cifras.

2. Se elige otro entero, c, de k cifras. Suele tomarse k < n.

3. Se calcula x0 · c, numero de, a lo sumo, n + k cifras.

4. Se separan las k cifras de la izquierda de x0 · c y al numero formado por las ncifras restantes se le resta el que forman esas k cifras de la izquierda, dando lugara 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 = 4122 x0 · c = 31|3272 3272− 31 = 3241x1 = 3241 x1 · c = 24|6316 6316− 24 = 6292x2 = 6292 x2 · c = 47|8192 8192− 47 = 8145x3 = 8145 x3 · c = 61|9020 9020− 61 = 8959x4 = 8959 x4 · c = 68|0884 0884− 68 = 0816x5 = 0816 x5 · c = 06|2016 2016− 06 = 2010

De esta forma

u0 = 0. 4122 u1 = 0. 3241 u2 = 0. 6292 u3 = 0. 8145u4 = 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 tienex0 · c = 10|0000 y ası x1 = 0000 − 10 = −10 < 0. Este es precisamente uno delos peores inconvenientes de este metodo: la aparicion de iterantes negativos. Tambienaparecen, con frecuencia, ciclos cortos (en particular, el cero es un valor absorbente deeste generador).

10 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

2.4. Metodos congruenciales

Se basan en la idea de considerar una combinacion lineal de los ultimos k enterosgenerados y calcular su resto al dividir por un entero fijo m. El metodo congruenciallineal simple que procede como sigue:

1. Elegir un numero entero positivo m (normalmente en relacion con el tipo deenteros que se va a usar) y otros dos numeros enteros, a y c, tales que 0 < a < my 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 Considerese un generador congruencial con m = 8, a = 5, c = 4:

xn = (5xn−1 + 4)mod 8

Tomando como semilla los valores 5 o 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 tienexn = (5xn−1 + 5)mod 8, que conduce a

x0 = 5 x1 = 6 x2 = 3 x3 = 4 x4 = 1x5 = 2 x6 = 7 x7 = 0 x8 = 5 · · ·x0 = 2 x1 = 7 x2 = 0 x3 = 5 x4 = 6x5 = 3 x6 = 4 x7 = 1 x8 = 2 · · ·

con ciclo de longitud 8, que es el maximo valor posible.

2.4. METODOS CONGRUENCIALES 11

2.4.1. Generadores congruenciales de ciclo maximo

Ademas de las propiedades estadısticas deseables para cualquier generador, unacuestion importante para los generadores congruenciales (como se ha visto en los ejem-plos previos) es la de garantizar que el ciclo del generador sea maximo (o, cuandomenos, muy elevado). En la practica tratara de tomarse el ciclo igual o muy proximoal numero de enteros de tipo largo del lenguaje en cuestion.

En general, se define la longitud del ciclo (o perıodo) de un generador de numerospseudoaleatorios uniformes, como el menor numero entero positivo, p, que cumple queexiste un n0 natural tal que xi+p = xi para todo i = n0. n0 + 1, . . .

En el caso de un generador congruencial mixto el maximo valor para el perıodo es m.

Tambien puede demostrarse que si un generador congruencial tiene ciclo maximopara cierta eleccion de la semilla, entonces lo tiene para cualquier otra.

Un resultado que sirve para caracterizar que propiedades deben cumplir los parame-tros de un generador congruencial para que tenga perıodo maximo es el teorema deKnuth (1969).

Teorema 2.4.1 (Knuth) Las siguientes condiciones son necesarias y suficientes paraque un generador congruencial con parametros m, a y c, tenga perıodo maximo (i.e.p = m).

1. c y m son primos entre sı (i.e. m.c.d. (c, m) = 1).

2. a − 1 es multiplo de todos los factores primos de m (i.e. a ≡ 1mod g, para todog factor primo de m).

3. Si m es multiplo de 4, entonces a− 1 tambien lo ha de ser (i.e. m ≡ 0mod 4 ⇒a ≡ 1mod 4).

A la luz del teorema de Knuth, es facil darse cuenta porque solo el tercero de losgeneradores del ejemplo anterior tenıa perıodo optimo.

12 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

2.4.2. Generadores congruenciales de algunos lenguajes y bi-bliotecas de rutinas

En ordenadores binarios es muy comun elegir m = 2β o m = 2β − 1, donde βdepende del tamano de palabra (tıpicamente m sera el mayor entero representable enel ordenador o una unidad mayor que el).

En los generadores con m = 2β resulta especialmente facil expresar las condicionesdel teorema de Knuth de forma mucho mas sencilla:

Ası, al ser m una potencia de 2, su unico factor primo es el 2 y, por tanto la primeracondicion equivale a que c sea impar. Para β ≥ 2 se tiene que m es multiplo de 4 y,por tanto la tercera condicion impone que a− 1 tambien lo sea. Por ultimo, de nuevopor ser el 2 el unico factor primo de m, la segunda condicion pedirıa que a − 1 fuesepar, lo cual ya es consecuencia de que sea multiplo de 4.

En resumen, si m = 2β , con β ≥ 2, el generador congruencial tiene perıodo maximosi y solo sı c es impar y a = 4k + 1, siendo k un numero natural.

Algunos generadores habituales en lenguajes con enteros (con signo) de 36 bitscorresponden con las elecciones

m = 235 a = 27 + 1 c = 1m = 235 a = 515 c = 1

Todos ellos tienen tienen perıodo maximo (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 a = 314159269 c = 453805245m = 231 − 1 a = 16807 c = 0 APL, IMSL y SIMPL/Im = 231 − 1 a = 630360016 c = 0 Algunos FORTRANm = 232 a = 663608941 c = 0 Ahrens y Dieter (1974)

Aunque solo el primero tiene perıodo maximo, los demas lo tienen muy elevado.El lenguaje C (bajo UNIX) posee un generador congruencial de numeros pseudoa-

leatorios de 48 bits: el drand48. Sus parametros son m = 248, a = 25214903917 yc = 11. La semilla se establece mediante la sentencia srand48() introduciendo comoargumento un entero de 32 bits que corresponde a los 32 bits mas significativos de x0

(entero de 48 bits). Los 16 bits de menor orden se toman siempre coincidentes con elnumero (decimal) 13070. Los parametros a y c se pueden modificar por el usuario desdeotras rutinas del C. Los valores por defecto para estas cantidades ofrecen un generadorde perıodo maximo ya que m = 2β , con β = 48, c es impar y a = 6 303 725 979 · 4 + 1.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR 13

2.4.3. Otros generadores congruenciales

Generador congruencial lineal multiple

xn = (a1xn−1 + a2xn−2 + · · ·+ akxn−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 vectoresy de las matrices son enteros entre 1 y m− 1.

2.5. Medidas estadısticas de la calidad de un gene-

rador de numeros pseudoaleatorios

La mayorıa de los contrastes estadısticos para estudiar la calidad de un generadorde numeros aleatorios se basan en medir posibles discrepancias (en algun sentido)de las muestras generadas por el metodo en cuestion con respecto a las hipotesis dealeatoriedad, independencia y ajuste a una distribucion U (0. 1).

En casi todos los casos se acaba recurriendo a un contraste de tipo chi-cuadradoen el que se comparan las frecuencias esperadas, ei, de ciertas modalidades, con lasobservadas, oi, mediante el estadıstico

D =k∑

i=1

(oi − ei)2

ei

,

que seguira, aproximadamente, una distribucion χ2k−1, bajo la hipotesis nula que se

contrasta. A continuacion detallamos algunos de los contrastes mas habituales.

2.5.1. Contraste chi-cuadrado de Pearson

El test chi-cuadrado esta basado en un estadıstico que, para una variable discreta ode tipo cualitativo, compara la frecuencia de aparicion de cada una de las modalidadesobservadas (ni) con las frecuencias esperadas, en base a la distribucion de probabilidadespecificada (ei).

Concretamente, para una variable discreta con k modalidades, el contraste se basaen el estadıstico sugerido por Pearson en el ano 1900:

Q =k∑

i=1

(ni − ei)2

ei

14 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

cuya distribucion aproximada es la de una χ2k−1, siempre que la distribucion especificada

sea la correcta.

Comentarios:1. Es muy corriente aplicar el test chi-cuadrado aun en casos en los que la dis-

tribucion de la variable no esta totalmente especificada sino que depende de algunparametro que, por tanto, habra de ser estimado (por ejemplo el caso en que se supon-ga que la variable en concreto sigue una distribucion de Poisson y resta por especificarsu parametro λ). En estos casos la distribucion aproximada del test ha de ser corregidapara incorporar esta informacion pasando a ser una χ2

k−r−1, siendo r el numero deparametros estimados por maxima verosimilitud.

2. El contraste chi-cuadrado se utiliza habitualmente incluso cuando la variableobjeto de estudio es continua. En este caso, dicha variable ha de ser agrupada enintervalos de clase.

3. Una limitacion, bastante recomendable en la practica, es la de no llevar a caboel contraste chi-cuadrado cuando la frecuencia esperada de alguna clase sea menor que5. Aquellos casos en que esta condicion falla pueden tratarse agrupando varios valoresdistintos hasta que se cumpla esta restriccion.

Ejemplo 2.5.1 Considerese los siguientes datos sobre “espacio de disco (en MBytes)ocupado por usuario en una estacion de trabajo”: 35, 45, 47, 50. 31, 30. 25, 33, 35,40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.

Estudiese la bondad de ajuste de dichos datos a una distribucion U [a, b], realizandoel contraste chi-cuadrado.

En primer lugar se estiman por maxima verosimilitud los parametros de la distribu-cion uniforme, obteniendose respectivamente el mınimo y el maximo muestral: a = 25y b = 55. Dividiendo el intervalo [25, 55] en cuatro clases de igual longitud se obtienela siguiente tabla:

clases ni ei (ni − ei)2/ei

[25, 32′5) 3 5 0′8[32′5, 40) 5 5 0[40. 47′5) 8 5 1′8[47′5, 55] 4 5 0′2

Total 20 20 2′8

En este caso el valor del estadıstico es Q = 2′8, que corresponde a un nivel crıticode p = 0′09426, para una distribucion chi-cuadrado con 4−2−1 = 1 grado de libertad,con lo cual aunque puede aceptarse la hipotesis de que la distribucion poblacional esuniforme con α = 0′01 o α = 0′05, no se aceptarıa con α = 0′1.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR 15

2.5.2. Contraste de Kolmogorov-Smirnov

A diferencia del procedimiento anterior, el test de Kolmogorov-Smirnov esta espe-cialmente disenado para el contraste de ajuste a distribuciones continuas.

El contraste de Kolmogorov-Smirnov esta basado en la distribucion del estadısticoDn:

Dn = supx∈R

|Fn(x)− F (x)|

que representa la maxima discrepancia, en vertical, entre la funcion de distribucionempırica

Fn(x) =Numero de observaciones Xi ≤ x

n

y la teorica (F ).

Dn = maxi=1,2,...,n

Dn,i = max{|Fn(x(i))− F (x(i))|, |F−n (x(i))− F (x(i))|}

Ejemplo 2.5.2 Contrastar que la muestra de datos de ocupacion de disco provenga deuna distribucion N(40. 3).

x(i) F (x(i)) Fn(x(i)) F−n (x(i)) Dn,i

25 0 0′05 0 0′0530 0′00043 0′10 0′05 0′0995731 0′00135 0′15 0′10 0′1486533 0′00982 0′20 0′15 0′1901835 0′04779 0′30 0′20 0′2522140 0′5 0′40 0′30 0′242 0′74751 0′50 0′40 0′3475145 0′95221 0′60 0′50 0′4522146 0′97725 0′70 0′60 0′3772547 0′99019 0′80 0′70 0′2901949 0′99865 0′85 0′80 0′1986550 0′99957 0′95 0′85 0′1495755 1 1 0′95 0′05

Se obtiene Dn = 0′45221, cuyo nivel crıtico es p < 0′01, que indica un claro rechazode la hipotesis establecida.

2.5.3. Contrastes de independencia

Una de las hipotesis estadısticas mas importantes asumidas en toda la inferenciaparametrica clasica es que la muestra no es mas que una realizacion de un conjunto devariables independientes.

Metodos graficos

Como paso previo a la utilizacion de metodos cuantitativos siempre sera ilustrativorepresentar graficamente los datos frente al tiempo, es decir, secuencialmente segun suorden de recogida (Xi frente al ındice i).

16 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

Las situaciones de dependencia se corresponden con graficas demasiado estables odemasiado cambiantes, es decir, o bien muy planas, o bien en continuos dientes de sierrao zigzagueantes. Por el contrario, los casos de ausencia de dependencia se identificaranmediante graficas moderadamente cambiantes.

Otro tipo de graficas que tambien permite detectar situaciones de dependencia sonlas graficas en las que se representa cada valor de la muestra frente al valor anterior-mente observado (Xi+1 frente a Xi).

Otra forma de estudiar si hay dependencia en la muestra es mediante el calculo delos coeficientes de autocorrelacion. Del mismo modo que el coeficiente de correlacionlineal mide, de alguna forma, la presencia o ausencia de dependencia entre las variablesen cuestion, pueden definirse toda una serie de coeficientes de autocorrelacionque, en ese mismo sentido, miden la dependencia entre los datos observados con ciertonumero de instantes de diferencia.

Dada una muestra X1, X2, . . . , Xn, se define el coeficiente de autocorrelacion mues-tral de orden uno como el valor

r(1) =

∑ni=2(Xi −X)(Xi−1 −X)∑n

i=1(Xi −X)2

que expresa, de alguna manera, la correlacion entre cada dato y el observado un ins-tante antes.

En general, el coeficiente de autocorrelacion de orden k (o a k retardos), se definepor

r(k) =

∑ni=k+1(Xi −X)(Xi−k −X)∑n

i=1(Xi −X)2

Una forma grafica de visualizar los coeficientes de autocorrelacion es el llamadocorrelograma. En el se representan, para los primeros retardos, unas barras con alturaigual al coeficiente de autocorrelacion correspondiente al retardo en cuestion. Ası pues,las barras del correlograma oscilan entre −1 y 1. Es obvio que la dependencia positivase caracterizara por la presencia de muchos coeficientes de correlacion sustancialmentemayores que cero, mientras que la negativa vendra dada por autocorrelaciones de signoalternado, siendo la del primer retardo negativa. El caso de independencia se corres-ponde con autocorrelaciones cercanas a cero.

Bajo la hipotesis de independencia, cada coeficiente de autocorrelacion muestral,r(k), tiene distribucion lımite normal de media cero y varianza 1/n. Este hecho permite,por sı mismo, el contrastar la hipotesis sobre si el coeficiente de autocorrelacion teoricoes cero.

De hecho, es habitual incluir en el correlograma bandas de confianza a una distancia2/√

n del eje horizontal, de manera que se consideraran siginificativamente distintos decero aquellas autocorrelaciones que sobresalgan de los lımites.

Otra posibilidad es incluir bandas de amplitud variable, teniendo en cuenta que, enel supuesto de que sean no nulas las primeras k− 1 autocorrelaciones (ρ1, . . . , ρk−1), la

varianza de r(k) es1 +

∑k−1j=1 ρ2

j

n.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR 17

Contrastes basados en rachas

Pensemos en una muestra de una variable con dos posibles resultados (por ejemploESSSEESEESES, con E: “error en un dispositivo” y S: “dispositivo sin error”).

Definicion 2.5.1 Una racha es una sucesion de valores consecutivos repetidos queeste 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 va-riable, es obvio que el numero total de rachas (o las longitudes de las mismas) constituyeuna medida de lo aleatoriamente que estan repartidos los posibles valores en cuestiona lo largo de la muestra observada. Demasiadas rachas implican excesiva alternanciade valores (dependencia negativa), mientras que pocas rachas indican largas sucesionesde valores contiguos repetidos (dependencia positiva).

El contraste del numero total de rachas

Considerese una muestra de tamano n correspondiente a una variable con dos po-sibles resultados, de manera que existen n1 observaciones de un tipo y n2 iguales alotro valor de la variable en cuestion (n1 + n2 = n). Si llamamos R al numero totalde rachas observadas en la muestra, pueden obtenerse la media y la varianza de estavariable aleatoria (condicionadas a que hay n1 y n2 de elementos de cada tipo):

E(R) = 1 +2n1n2

n

V ar(R) =2n1n2(2n1n2 − n)

n2(n− 1)

Cuando el tamano muestral n tiende a infinito, de forma que ademas n1/n tienda auna constante, la distribucion de la variable R se puede aproximar por la distribucion

N(E(R),

√V ar(R)

).

Aunque originalmente el test de las rachas esta disenado para una distribucion consolo dos posibles valores, suele aplicarse a aquellos casos en los que la distribucion encuestion es continua codificando las observaciones con los valores + o −, segun el datoen cuestion quede por arriba o por abajo de la mediana muestral.

18 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

El contraste de rachas ascendentes y descendentes

Cuando la variable en cuestion presenta una distribucion de tipo continuo, a pesarde que el test de las rachas por encima o por debajo de la mediana se puede usar,existe una contraste, basado en el numero de cierto tipo de rachas, que trata de hacerun uso mas intensivo de la continuidad de la variable. Se trata del contraste basado enel numero total de rachas ascendentes o descendentes:

Para cada par de datos consecutivos se anota un signo + si estan en orden ascen-dente y − si estan en orden descendente. Con el conjunto de datos (n en total) seconsigue formar una tira de n − 1 signos + o −, sobre los cuales se cuenta el numerototal de rachas R.

La distribucion del estadıstico R esta tabulada para tamanos muestrales peque-nos (normalmente para n < 25), mientras que, cuando el numero de datos, n, ex-cede de los valores tabulados, puede usarse una aproximacion por la distribucion

N((2n− 1)/3,

√(16n− 29)/90

).

El contraste de Ljung-Box

Existen distintos procedimientos para contrastar la independencia mediante la rea-lizacion de un contraste sobre si los primeros m coeficientes de autocorrelacion soncero. Uno de los mas utilizados a tal efecto es el de Ljung-Box, que utiliza para ello elestadıstico

Q = n(n + 2)m∑

k=1

r(k)2

n− k

que se distribuye, aproximadamente, segun una χ2m−1.

Ejemplo 2.5.3 Considerense los datos de “espacio de disco duro ocupado por usua-rio”: 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 numero de rachasDada la muestra original, se clasifican ahora los datos de la misma en funcion de

que se hallen por encima o por debajo de la mediana, Me = (42 + 45)/2 = 43′5 :

− + + + − − − − − − + + + − − + + + − +

El numero de rachas es R = 8 y n1 = n2 = 10. En las tablas puede encontrarse elp-valor: p = 0′256. Por tanto, se acepta la independencia.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR 19

Test de las rachas ascendentes y descendentesLa secuncia de signos + y - correspondiente a los datos de la muestra es:

+ + + − − − + + + + + + − − + − + − +

El numero de rachas es R = 9. Bajo independencia, la probabilidad de que el numerode rachas ascendentes y descendentes sea menor o igual que 9 es 0′0255. De aquı sededuce que el nivel crıtico del contraste es p = 0′051. Este valor plantea serias dudassobre la hipotesis de independencia: tendrıamos una aceptacion muy justa de dichahipotesis con nivel α = 0′05 pero ya no con α = 0′06.

Test de Ljung-BoxTomemos m = 4. Los cuatro primeros coeficientes de autocorrelacion son r(1) =

0′52550. r(2) = 0′33034, r(3) = −0′09887 y r(4) = −0′06706.A partir de estos valores, el estadıstico de Ljung-Box resulta Q = 9′44, cuyo p-

valor esta comprendido entre 0′01 y 0′025, como se puede ver en las tablas de unachi-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 valoresgenerados, X1, X2, . . . , Xn, de la forma dM ·Xie+1, donde dxe denota la parte entera dex. Ası se consigue una sucesion de enteros aleatorios cuyos valores estan comprendidosentre 1 y M . Ahora se procede (como un coleccionista) a contabilizar cual es el numero,Q, (aleatorio) de valores a generar hasta que se completa la coleccion de todos losenteros entre 1 y M .

Obviamente, bajo las hipotesis de aleatoriedad y distribucion U (0. 1), cada posibleentero entre 1 y M tiene la misma probabilidad de aparecer en cada generacion y,por tanto, resulta posible calcular la distribucion de probabilidad de Q. De esta formapodemos 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 observadasvıa el estadıstico chi-cuadrado.

20 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

2.5.5. Contrastes de salto

Dados dos numeros α y β tales que 0 ≤ α < β ≤ 1, los contrastes de saltos tratande examinar, para cada valor generado, Xi, si se cumple α ≤ Xi ≤ β, anotando, en esecaso, un 1 (0 en caso contrario). En estas condiciones, la probabilidad de que aparezcaun 1 es p = β − α y la de que aparezcan j ceros desde la aparicion de un uno hasta ladel siguiente uno es pj = p (1− p)j, j = 0. 1, 2, . . . (que corresponde a una distribuciongeometrica). De nuevo puede aplicarse el test chi-cuadrado a las clases resultantes.

Las elecciones mas 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 mas que la eleccion α = 1/3 y β = 2/3.

2.5.6. El contraste de permutaciones

Dada la sucesion de numeros pseudoaleatorios generada se consideran bloques de Tvalores consecutivos. Cada uno de los bloques puede presentar una cualquiera de las T !posibles ordenaciones de esos T valores. Ademas, de ser el generador adecuado, cadaposible ordenacion ocurrira con igual probabilidad: 1

T !. El test consiste en observar

una gran numero de bloques y comparar las frecuencias observadas de cada posibleordenacion con las esperadas mediante el test chi-cuadrado. Las elecciones mas comunesson T = 3, 4, o 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 cualde 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 ESTADISTICAS DE LA CALIDAD DE UN GENERADOR 21

5. Un entero se repite dos veces, otro distinto se repite tambien dos veces y un tercerentero diferente aparece una sola 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 hipotesis de aleatoriedad y ajuste a una U (0. 1), pueden calcularse lasprobabilidades 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 eltest chi-cuadrado, ya que, en caso contrario, la restriccion habitual ei ≥ 5 llevarıa aque 0. 0001 · n

5≥ 5, es decir, n ≥ 250 000.

Poker 2

Algo tambien bastante habitual es usar conjuntos de cinco enteros (como en el casoanterior) pero definiendo las categorıas segun el numero de enteros distintos de entrelos 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 tambien bastante habitual el agrupar las dos primeras categorıas.

22 CAPITULO 2. GENERACION DE NUMEROS UNIFORMES EN (0. 1)

2.5.8. El contraste de pares seriados

La idea consiste en fijar un entero M ≥ 2 y considerar los enteros dM ·Xie + 1,tomar ahora estos valores apareados y utilizar el contrate chi-cuadrado considerandocomo categorıas los posibles pares (i, j) tales que i, j ∈ {1, 2, . . . ,M}. Ası se medira ladiscrepancia entre la frecuencias observadas en estas categorıas y las esperadas, igualestodas a n

21

M2 . La elecciones mas frecuentes son M = 3, 10 o 20.

2.5.9. Chi-cuadrado sobre chi-cuadrado

Todos los contrastes anteriores se han planteado desde la perspectiva de la realiza-cion de una unica prueba. Es decir, se toma un numero, n (normalmente grande), devalores obtenidos por el generador y se realiza el contraste evaluando el estadıstico ycomparandolo con el punto crıtico de una chi-cuadrado para decidir si se acepta o re-chaza la hipotesis (independencia, ajuste, aleatoriedad). En realidad tiene mucho massentido la realizacion de un gran numero de pruebas, evaluando en cada una el valordel estadıstico y, o bien observar que la proporcion de rechazos del test se aproxima alvalor nominal fijado (normalmente α = 0. 01 o α = 0. 05), o mas precisamente aplican-do, de nuevo, el contraste chi cuadrado para comprobar el ajuste de la distribucion delestadıstico a la chi-cuadrado especificada bajo la hipotesis nula.

Capıtulo 3

Metodos universales para lasimulacion de variables continuas

En lo que sigue se expondran dos de los metodos generales para simular distribucio-nes continuas: el metodo de inversion y el de aceptacion/rechazo. Ambos son aplicablesa gran numero de contextos siempre que la distribucion que se desea simular tenga cier-tas caracterısticas. En ambos casos la herramienta indispensable es algun metodo degeneracion de numeros pseudoaleatorios uniformes en (0,1).

3.1. El metodo de inversion

Es el metodo universal por antonomasia para simular distribuciones continuas. Tam-bien a veces se denota metodo de Montecarlo. Esta basado en el siguiente resultadoteorico.

Teorema 3.1.1 (de inversion) Sea X una variable aleatoria con funcion de distribu-cion F , continua e invertible. Entonces, la variable aleatoria U = F (X), transformada

de la original mediante su propia funcion de distribucion, tiene distribucion U(0, 1).Recıprocamente, si U ∈ U (0, 1) entonces la variable F−1 (U) tiene funcion de dis-

tribucion F (la misma distribucion que la de X).

Demostracion: Denotando por G la funcion de distribucion de U y dado un valoru ∈ (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 Ges la funcion de distribucion de una U (0, 1).

Para la segunda parte, denotando por H la funcion de distribucion 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 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

El resultado anterior da pie al siguiente algoritmo generico para simular cualquiervariable continua con funcion de distribucion F invertible:

Algoritmo (metodo de inversion)1. Generar U ∼ U (0, 1).2. Devolver X = F−1 (U).

Ejemplo 3.1.1 Dar un algoritmo, basado en el metodo de inversion, para simular ladistribucion exponencial de parametro λ > 0.

La funcion de densidad de una exp (λ) es

f (x) =

{λe−λx si x ≥ 00 si x < 0

y su funcion de distribucion:

F (x) =

{1− e−λx si x ≥ 00 si x < 0

que es continua e invertible en el intervalo [0.∞). Observese que

x = F−1 (u) ⇔ F (x) = u ⇔ 1− e−λx = u

⇔ 1− u = e−λx ⇔ x = − ln (1− u)

λ.

Como consecuencia, el algoritmo serıa1. Generar U ∼ U (0, 1).

2. Devolver X = − ln(1−U)λ

.

que, en version simplificada, resulta:0. Hacer L = −1/λ.1. Generar U ∼ U (0, 1).2. Devolver X = L · ln U3. Repetir los pasos 1-2 tantas veces como se precise.

3.1. EL METODO DE INVERSION 25

3.1.1. Ventajas e inconvenientes del metodo de inversion

La ventaja mas importante del metodo de inversion es que, en general, es aplicablea cualquier distribucion continua. No obstante presenta algunos inconvenientes.

Inconvenientes del metodo de inversion

1. En ocasiones la funcion de distribucion no tiene una expresion explıcita (porejemplo para la distribucion normal).

2. A veces, aun teniendo una expresion explıcita para F (x), es imposible despejarx en la ecuacion F (x) = u (es decir, encontrar una expresion explıcita paraF−1 (u)).

3. Aun siendo posible encontrar x = F−1 (u), puede ocurrir que esta expresion seacomplicada y conlleve una gran lentitud de calculo.

El primero de los inconvenientes expuesto puede, a veces, subsanarse mediante eluso de aproximaciones de la distribucion en cuestion o mediante tabulaciones de lamisma. El segundo suele abordarse mediante la utilizacion de metodos numericos parala resolucion aproximada de la ecuacion F (x) = u. El mayor problema practico queesto conlleva es la necesidad de resolver numericamente una ecuacion cada vez que sedesee generar un nuevo numero aleatorio que siga esa distribucion (sin que los calculoshechos para el anterior valor simulado sean de ayuda).

3.1.2. Algunas distribuciones que pueden simularse por el me-todo de inversion

En lo que sigue u representa un numero pseudoaleatorio en el intervalo (0,1).

Distribucion exponencial (Exp(λ), λ > 0)

Funcion de densidad: f(x) = λe−λx, x ≥ 0.Funcion de distribucion: F (x) = 1− e−λx, x ≥ 0.

Inversa de la distribucion: F−1(u) = − ln (1− u)

λ,

Forma simplificada de la inversa: S(u) = − ln u

λ, .

Distribucion de Cauchy

Funcion de densidad: f(x) =1

π (1 + x2), x ∈ R.

Funcion de distribucion: F (x) =1

2+

arctan x

π, x ∈ R.

Inversa de la distribucion: F−1(u) = tan(π(u− 1

2

)).

Forma simplificada de la inversa: S(u) = tan πu.

26 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

Distribucion triangular en (0. a)

Funcion de densidad: f(x) =2

a

(1− x

a

), 0 < x < a.

Funcion de distribucion: F (x) =2

a

(x− x2

2a

), 0 < x < a.

Inversa de la distribucion: F−1(u) = a(1−

√1− u

).

Forma simplificada de la inversa: S(u) = a (1−√

u) .

Distribucion de Pareto (a > 0 , b > 0)

Funcion de densidad: f(x) =aba

xa+1, x ≥ b.

Funcion de distribucion: F (x) = 1−(

b

x

)a

, x ≥ b.

Inversa de la distribucion: F−1(u) =b

(1− u)1/a.

Forma simplificada de la inversa: S(u) =b

u1/a.

Distribucion de Weibull (λ > 0 , α > 0)

Funcion de densidad: f(x) = αλαxα−1e−(λx)α

, x ≥ 0Funcion de distribucion: F (x) = 1− e−(λx)α

, x ≥ 0.

Inversa de la distribucion: F−1(u) =(− ln (1− u))1/α

λ.

Forma simplificada de la inversa: S(u) =(− ln u)1/α

λ.

La distribucion de Laplace o doble exponencial (Lap(µ, λ) µ, λ > 0)

Funcion de densidad: f (x) = λ2e−λ|x−µ|, para todo x ∈ R.

Funcion de distribucion:

F (x) =

{12eλ(x−µ) si x < µ

1− 12e−λ(x−µ) si x ≥ µ

Inversa de la distribucion:

F−1(u) =

µ +

ln 2u

λsi u < 1/2

µ− ln 2(1− u)

λsi u ≥ 1/2

pudiendose generar por el metodo de inversion, usando como auxiliar T ∼ Exp(λ) :

Algoritmo basado en el metodo de inversion

1. Generar U, V ∼ U (0. 1).

2. Hacer T =ln U

λ.

3. Si V < 1/2, devolver X = µ + T. En caso contrario,

hacer X = µ− T.

3.1. EL METODO DE INVERSION 27

3.1.3. Inversion aproximada

Como se comento anteriormente, en casos en los que no es posible determinar unaexpresion explıcita para F (x) o en los que no se puede hallar la de su inversa, pue-de optarse por encontrar expresiones sencillas que aproximen razonablemente bien lafuncion F−1 (u).

Ejemplo 3.1.2 A continuacion se detalla la aproximacion encontrada por Odeh yEvans para la distribucion normal estandar.

Estos autores consideran la funcion auxiliar

g (v) =√−2 ln v

A(√−2 ln v

)B(√−2 ln v

) ,siendo A (x) =

4∑i=0

aixi y B (x) =

4∑i=0

bixi, con

a0 = −0. 322232431088 a1 = −1a2 = −0. 342242088547 a3 = −0. 0204231210245a4 = −0. 0000453642210148 b0 = 0. 0993484626060b1 = 0. 588581570495 b2 = 0. 531103462366b3 = 0. 103537752850 b4 = 0. 0038560700634

La aproximacion consiste en utilizar g (1− u) en lugar de F−1 (u) para los valores deu ∈ [10−20, 1

2] y −g (u) si u ∈ [1

2, 1−10−20]. Para u /∈ [10−20, 1−10−20] (que solo ocurre

con una probabilidad de 2 · 10−20) la aproximacion no es recomendable.

Algoritmo de Odeh y Evans

1. Generar U ∼ U (0, 1) .2. Si U < 10−20 o U > 1− 10−20 entonces volver a 1.

3. Si U < 0. 5 entonces hacer X = g (1− U) sino hacer X = −g (U) .4. Devolver X.

28 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

3.2. El metodo de aceptacion/rechazo

Es un metodo universal alternativo al de inversion que esta adaptado al caso enque, aunque se desconozca una formula explıcita para F (x) o sea difıcil de resolverF (x) = u, sı se disponga de una expresion (preferiblemente sencilla) para la funcionde densidad f (x). El metodo esta basado en el siguiente resultado teorico.

Teorema 3.2.1 (de aceptacion/rechazo) Sea X una variable aleatoria con fun-cion de densidad f y sea U otra variable aleatoria, independiente de la anterior, condistribucion U (0, 1). Entonces, para cada c > 0, la variable aleatoria bidimensional(X, c · U · f (X)) tiene distribucion uniforme en el recinto

A = {(x, y) ∈ R2/0 ≤ y ≤ cf (x)}

Recıprocamente, si dada una funcion de densidad f , un vector aleatorio (X,Y )tiene distribucion uniforme sobre el conjunto A, entonces, su primera componente, X,es una variable aleatoria unidimensional con funcion de densidad f .

El teorema anterior establece la equivalencia entre la simulacion de densidades uni-dimensionales y la simulacion de variables bidimensionales con distribucion uniformesobre el hipografo de c · f (x) (el conjunto de puntos del plano que quedan por debajode la grafica de c · f pero por encima del eje OX). La idea del algoritmo consistira enutilizar el recıproco en el teorema para simular valores de ese tipo de distribucionesbidimensionales y luego tomar la primera componente. Para simular valores de esadistribucion bidimensional se usa tambien el teorema en sentido directo aplicandolo aotra densidad auxiliar g, facil de simular.

Supongase que se desea simular una distribucion con densidad f y que no es factiblehacerlo por el metodo de inversion. Considerese otra distribucion, con densidad g, facilde simular, de forma que exista cierta constante c > 0 tal que

f (x) ≤ c · g (x) , para todo x ∈ R

Teniendo en cuenta esta condicion, 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 facil de simular, puede aplicarse la primera parte delteorema de aceptacion/rechazo para encontrar una variable aleatoria bidimensional,(T, Y ), con distribucion uniforme sobre Acg. Aceptando tan solo los valores de (T, Y )que pertenezcan a Af se tendra una variable bidimensional con distribucion uniformesobre Af . Tecnicamente hablando estamos afirmando que la distribucion condicionada(T, Y ) |(T,Y )∈Af

es uniforme sobre Af . Finalmente la segunda parte del teorema permiteobtener una variable con densidad f sin mas que tomar la primera componente del parobtenido.

3.2. EL METODO DE ACEPTACION/RECHAZO 29

De forma mas detallada, el metodo constarıa de los siguientes pasos:

1. Generar un valor T con densidad g.

2. Utilizar el teorema de aceptacion/rechazo para generar un par (T, Y ) con distri-bucion 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 definiendoY = c ·U ·g (T ). Ademas, la condicion (T, Y ) ∈ Af que hay que comprobar en el ultimopaso equivale a Y ≤ f (T ). Teniendo todo esto en cuenta el algoritmo procederıa comosigue:

Algoritmo de aceptacion/rechazo1. 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 fun-cion 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

g (x) =

{1

b−asi x ∈ [a, b]

0 si x /∈ [a, b]

se tiene que f (x) ≤ M = cb−a

= c · g (x), ∀x ∈ [a, b]. Ası pues, el algoritmo quedarıacomo 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 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

3.2.1. Eficiencia del algoritmo de aceptacion/rechazo

Dado que el algoritmo de aceptacion/rechazo repite los pasos 1-2 un numero alea-torio de veces, sera importante medir, de alguna forma, la eficiencia del mismo.

En primer lugar, existen restricciones obvias para la constante c que ha de elegirseen el algoritmo. Ası, debido al hecho de que f (x) ≤ c · g (x), se tiene

1 =

∫f (x) dx ≤ c

∫g (x) dx = c,

luego c ≥ 1. Puede demostrarse ademas que si c = 1 entonces f y g serıan densidadescorrespondientes a la misma distribucion (iguales salvo en un conjunto de probabilidadcero) y, por tanto, si g es facil de simular igualmente facil lo serıa f . Ası pues, se tienec > 1.

La comprobacion que aparece en el paso 2 del algoritmo es c ·U · g (T ) ≤ f (T ). Laprobabilidad de aceptacion de esta condicion es

p =area (Af )

area (Acg)=

∫f (x) dx∫

c · g (x) dx=

1

c.

De esta se obtiene la probabilidad de rechazo: q = c−1c

. El flujo del algoritmo esaleatorio y el numero de repeticiones de los pasos 1-2 hasta poder generar un valor de f(paso 3) es una variable aleatoria, N , con distribucion geometrica (entendida esta comoel numero de pruebas necesarias hasta obtener el primer exito). En tales circunstanciasel numero medio de repeticiones de los pasos 1-2 es

E (N) =1

p= c

luego c puede interpretarse como el numero medio de comparaciones necesarias (o derepeticiones 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 mascercano a 1 sea el valor de c mas eficiente sera el algoritmo.

3.2.2. Eleccion de c

Una vez fijada la densidad g es obvio que el mejor valor de c (que denotaremos porcopt) se obtiene al encontrar el mas pequeno numero real c que verifica f (x) ≤ c ·g (x),es decir

c ≥ f (x)

g (x), para todo x del soporte de g (que ha de contener al de f).

De esta forma, ha de cumplirse que f (x) 6= 0 ⇒ g (x) 6= 0 y ademas

c ≥ maxx/g(x)>0

f (x)

g (x).

Ası pues, el menor valor posible que cumple esta condicion es

copt = maxx/g(x)>0

f (x)

g (x).

3.2. EL METODO DE ACEPTACION/RECHAZO 31

Ejemplo 3.2.2 (Simulacion de la normal mediante la doble exponencial) Setrata de simular la distribucion normal estandar, cuya funcion de densidad viene dadapor

f (x) =1√2π

e−x2

2 , para todo x ∈ R,

mediante aceptacion/rechazo, utilizando como densidad auxiliar la doble exponencial deparametro 1 (o distribucion de Laplace, Lap(0,1) o Lap(1)), cuya funcion de densidadviene dada por

g (x) =1

2e−|x|, para todo x ∈ R.

El valor optimo para c es

copt = maxx∈R

f (x)

g (x)= max

x∈R

1√2π

e−x2

2

12e−|x|

=

√2

πmaxx∈R

eϕ(x) =

√2

πemaxx∈R ϕ(x),

donde ϕ (x) = −x2

2+ |x|. Dado que esta funcion es simetrica, continua en toda la recta

real y diferenciable tantas veces como se desee salvo en x = 0, bastara encontrar sumaximo absoluto en el intervalo [0.∞]:

x > 0 ⇒ ϕ′ (x) = −x + 1, ϕ′′ (x) = −1;

{x > 0. ϕ′ (x) = 0} ⇔ x = 1

ϕ′′ (1) < 0.

De esta forma, ϕ alcanza un maximo relativo en x = 1 y otro de identico valor enx = −1. Resulta facil demostrar que ambos son maximos absolutos (por los intervalosde crecimiento y decrecimiento de la funcion). Consiguientemente,

copt =

√2

πeϕ(1) =

√2

πe1/2 =

√2e

π' 1. 3155.

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 T = ln V , sino hacer T = − ln V .

2. Hasta que U · exp(

T 2

2− |T |+ 1

2

)≤ 1.

3. Devolver X = T.

La condicion que hay que comprobar para decidir si hay aceptacion o rechazo surgede que

c · U · g (T )

f (T )=

√2e

πU

√π

2exp

(T 2

2− |T |

)= U · exp

(T 2

2− |T |+ 1

2

).

Dado que el numero medio de repeticiones de los pasos 1-2 hasta que se obtiene unvalor simulado para X es c ' 1. 3155 y la probabilidad de aceptacion en el paso 2 esp = 1/c =

√π2e

= 0. 76017, puede decirse que el algoritmo es bastante eficiente.

32 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

3.2.3. Eleccion de la densidad auxiliar g

Como se ha comentado anteriormente, un aspecto importante que influye en laeficiencia del metodo de aceptacion/rechazo es el valor de la constante c. Conocidala densidad auxiliar g sabemos como elegir c de forma que el algoritmo sea lo maseficiente posible, sin embargo es obvio que algunas densidades auxiliares serıan mejorescandidatas que otras para conseguir un metodo eficiente.

En general, cuanto mas parecida sea la forma de g a la de f , mas pequeno es elmınimo c necesario para conseguir que la grafica de c · g quede por encima de la def . De todas formas, el problema de encontrar la densidad auxiliar g que ofrezca unc (optimo) lo menor posible, no tiene solucion. Mejor dicho, tiene la solucion trivialg = f , que es absolutamente inutil para la implementacion del algoritmo, pues si f eradifıcil de simular, no podemos tomar como g la propia f (ya que serıa igual de difıcilde simular).

Una solucion intermedia al problema de elegir una funcion de densidad auxiliar,g, adecuada consiste en tomar cierta familia parametrica de densidades que presentenun abanico de formas entre las que haya alguna que se parece bastante a la de f :{gθ/θ ∈ Θ}, encontrar el valor de c optimo para cada densidad de esa familia:

cθ = maxx

f (x)

gθ (x)

y, finalmente, elegir el mejor valor del parametro, θ0, en el sentido de ofrecer el menorposible cθ :

cθ0 = mınθ∈Θ

maxx

f (x)

gθ (x).

3.2. EL METODO DE ACEPTACION/RECHAZO 33

Ejemplo 3.2.3 Supongase que se desea utilizar como densidad auxiliar en el metodo deaceptacion/rechazo, para simular la normal estandar, la doble exponencial de parametroλ > 0 (Lap(0,λ) o Lap(λ)) ,

gλ (x) =λ

2e−λ|x|, para todo x ∈ R.

Si pretendemos encontrar el mejor valor de λ, en terminos de eficiencia del algo-ritmo, debemos calcular

cλ0 = mınλ>0

maxx∈R

f (x)

gλ (x)= mın

λ>0maxx∈R

1√2π

e−x2

2

λ2e−λ|x|

.

De forma totalmente analoga a la vista para el caso λ = 1, se tiene

cλ = maxx∈R

1√2π

e−x2

2

λ2e−λ|x|

=1

λ

√2

πmaxx∈R

eϕλ (x) =1

λ

√2

πemaxx∈R ϕλ (x),

donde ϕλ (x) = −x2

2+ λ |x|. De forma totalmente similar a aquel caso puede probarse

que ϕλ alcanza su maximo absoluto en los puntos x = ±λ, siendo dicho valor maximoϕλ (±λ) = λ2

2. Como consecuencia,

cλ =1

λ

√2

πeϕλ (±λ) =

eλ2

2

λ

√2

π.

Ahora debemos encontrar λ0 tal que cλ0 = mınλ>0 cλ:

dcλ

dλ=

√2

π

λeλ2

2 λ− eλ2

2

λ2=

√2

π

eλ2

2 (λ2 − 1)

λ2,

d2cλ

dλ2=

√2

π

[λeλ2

2 (λ2 − 1) + eλ2

2 2λ]λ2 − eλ2

2 (λ2 − 1) 2λ

λ4

=

√2

π

eλ2

2 (λ5 + λ3 − 2λ3 + 2λ)

λ4=

√2

π

eλ2

2 (λ5 − λ3 + 2λ)

λ4,

dcλ

dλ= 0 ⇔ λ = 1, ya que λ > 0

d2cλ

dλ2

∣∣∣∣λ=1

= 2

√2e

π> 0, luego λ = 1 es un punto de mınimo.

De esto se deduce que la mejor doble exponencial, como densidad auxiliar en elalgoritmo, es la correspondiente a λ = 1, la usada en el ejemplo anterior.

34 CAPITULO 3. METODOS UNIVERSALES PARA VARIABLES CONTINUAS

3.2.4. El metodo de aceptacion/rechazo “squeeze”

Esta variante del metodo de aceptacion/rechazo es de gran utilidad en aquellas si-tuaciones donde, para llevar a cabo la comprobacion de la condicion c·U ·g (T ) ≤ f (T ) ,tiene un elavado coste computacional evaluar f(T ).

La idea del metodo consiste en encontrar dos funciones h1 y h2, faciles de evaluar,que “aprieten”a f (i.e. h1(x) ≤ f(x) ≤ h2(x), ∀x), de manera que reduzcamos consi-derablemente el numero de evaluaciones de esta. Ası se conseguirıa un algoritmo maseficiente, pues reemplazarıamos las evaluaciones de f por evaluaciones de h1 o de h2

(mucho menos costosas computacionalmente).

Algoritmo de aceptacion/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. (Aceptacion rapida)

2.2 Si c · U · g (T ) > h2 (T ) , volver a 1. (Rechazo rapido)

3. Si no se verifica ninguna de las condiciones del paso 2, comprobar

la condicion 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 (Simulacion “squeeze”de la distribucion normal) Utilizando elteorema de Taylor, puede comprobarse que la funcionn de densidad de la normal estandar

f (x) =1√2π

e−x2

2 , para todo x ∈ R,

puede “apretarse”por h1(x) =1− x2

2√2π

y h2(x) =1− x2

2+ x4

8√2π

.

Capıtulo 4

Metodos universales para lasimulacion de variables discretas

En lo que sigue se expondran algunos metodos generales para simular distribucio-nes discretas. En concreto, se estudiara el metodo de la transformacion cuantil en suversion clasica y con etiquetados optimos, el metodo de las tablas guıa y los metodosde truncamiento.

El problema consiste en simular una variable aleatoria discreta, X, que toma losvalores x1, x2, . . ., xn (. . .), con probabilidades pj = P (X = xj), j = 1, 2, . . . , n (. . .).Un planteamiento estandar, equivalente al anterior, consiste en resolver la cuestion desimular la variable aleatoria I que toma los valores 1, 2, . . . , n (. . .) con las mismasprobabilidades pj, j = 1, 2, . . . , n (. . .).

4.1. El metodo de la transformacion cuantil

Este metodo es una adaptacion del metodo de inversion (valido para el caso conti-nuo) a distribuciones discretas. En primer lugar veamos porque el metodo de inversionno es aplicable directamente en este caso.

Dada una variable aletoria discreta, su funcion de distribucion viene dada por

F (x) =∑xj≤x

pj, ∀x ∈ R.

Supondremos (por comodidad) que los valores que toma la variable ya estan orde-nados y nos ceniremos al caso finito. De esta forma tendrıamos: x1 < x2 < · · · < xn.

En este caso es obvio que el resultado dado por el teorema de inversion no es ciertoya que la variable aleatoria F (X) toma solo los valores p1, p1+p2, . . ., p1+p2+ · · ·+pn.Siendo, por tanto, discreta y no pudiendo tener distribucion U (0, 1).

35

36 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

De la misma forma, dada una variable U ∼ U (0, 1), tampoco puede ser cierto queF−1 (U) tenga la misma distribucion que X. De hecho F−1 no esta definida de formaunica pues las funciones de distribucion discretas no tienen inversa (para casi todo u ∈[0, 1] no hay ningun x tal que F (x) = u y para un numero 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 funcion cuantil (o inversa generalidada)de una distribucion cualquiera F a partir de

Q (u) = ınf {x ∈ R/F (x) ≥ u} , ∀u ∈ (0, 1) .

Es obvio que esta funcion siempre esta definida y que cuando F sea invertible,Q = F−1.

El siguiente teorema da un resultado que generaliza al teorema de inversion a si-tuaciones en las que F no es invertible.

Teorema 4.1.1 (de inversion generalizada) Sea X una variable aleatoria con fun-cion de distribucion F y con funcion cuantil Q. Si U es una variable aleatoria condistribucion U (0, 1), la variable Q (U) tiene la misma distribucion que X.

Demostracion: Sea G la funcion de distribucion de Q (U). Dado x ∈ R, se tiene

G (x) = P (Q (U) ≤ x) = P (ınf {y ∈ R/F (y) ≥ U} ≤ x)

= P (F (x) ≥ U) =

∫ F (x)

0

du = F (x) .

A partir del teorema de inversion generalizada puede obtenerse un algoritmo generalpara simular cualquier distribucion de probabilidad discreta. Es el llamado algoritmode transformacion cuantil o de inversion generalizada.

Algoritmo de transformacion cuantil1. Generar U ∼ U (0, 1).2. Devolver X = Q (U).

La mayor dificultad en la implementacion del algoritmo radica en el calculo de

Q (U) = ınf {x ∈ R/F (x) ≥ U} = ınf

{xj

/j∑

i=1

pi ≥ U

}

= xk, tal quek∑

i=1

pi ≥ U >

k−1∑i=1

pi.

4.1. EL METODO DE LA TRANSFORMACION CUANTIL 37

Todo el problema radica, por tanto, en encontrar el valor, k, de la variable, I, queguarda las etiquetas, para el cual la funcion de distribucion supera o iguala por pri-mera vez al valor de U . Este valor puede hallarse mediante una busqueda secuencial,utilizando el siguiente algoritmo:

Algoritmo de transformacion cuantil con busqueda secuencial1. 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 numero de valores de la variable X (que es lo mashabitual) puede resultar mas 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 comparacionU > SI en el paso 3 del algoritmo anterior. De esta forma se evita lo que podrıan sercalculos repetitivos de las mismas sumas de probabilidades al simular distintos valoresde X.

Ejemplo 4.1.1 (Simulacion de la distribucion de Poisson) Tomese una varia-ble, X, con distribucion de Poisson de parametro λ, que toma los valores x1 = 0,x2 = 1, . . . con probabilidades

pj = P (X = xj) = P (X = j − 1) =e−λλj−1

(j − 1)!, j = 1, 2, . . .

El algoritmo de inversion con busqueda secuencial viene dado por

1. Generar U ∼ U (0, 1).2. Hacer I = 1 y S = e−λ.

3. Mientras U > S hacer

3.1. I = I + 1 y S = S + e−λλI−1

(I−1)!.

4. Devolver X = I − 1.

Debido a que esta forma de etiquetar los valores de la variable conlleva el desfasede una unidad en los ındices, es recomendable ajustar el algoritmo para evitar esteefecto.Tambien, para simplificar los calculos que aparecen en el paso 3.1, es convenientecalcular las probabilidades de forma recursiva

P (X = j) =e−λλj

j!=

λ

j

e−λλj−1

(j − 1)!=

λ

jP (X = j − 1) ,

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 = λIp y S = S + p.

4. Devolver X = I.

38 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

4.1.1. Eficiencia del algoritmo

Dada la forma del algoritmo general para simular una distribucion discreta medianteel metodo de la transformacion cuantil utilizando busqueda secuencial, es facil probarque el numero de comprobaciones de la forma U > S es precisamente igual a I, el valorde la variable que contiene las etiquetas. Como el valor de I es aleatorio y variara concada ejecucion del algoritmo, una medida de la eficiencia del mismo sera el numeromedio de comparaciones del paso 3, es decir,

E (I) =

{ ∑nj=1 jpj si X toma un numero finito (n) de valores∑∞j=1 jpj si X toma un infinitos valores

Resulta pues evidente que, como no existe una unica forma de etiquetar los valoresque toma la variable en cuestion, habra quiza algun etiquetado que ofrezca un menornumero 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 Considerese la variable aleatoria discreta X con distribucion 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 distribucion

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 x′1 = 7, x′2 = 5, x′3 = 3, se tiene que

P (I ′ = 1) = 0. 6, P (I ′ = 2) = 0. 3, P (I ′ = 3) = 0. 1

y ası E (I ′) = 1 · 0. 6 + 2 · 0. 3 + 3 · 0. 1 = 1. 5.

Se observa que E (I ′) es sensiblemente inferior a E (I) y, por tanto, el segundoetiquetado proporciona un algoritmo mas eficiente que el dado por el etiquetado l.

Como parece deducirse del ejemplo anterior, un etiquetado sera tanto mejor cuantomenores 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 de-creciente de probabilidad.

Cuando la variable a simular tiene un numero finito de valores: x1, x2, . . ., xn, alimplementar el metodo de la transformacion cuantil con busqueda secuencial directa,una vez comprobado que U >

∑n−1j=1 pj, no es necesario comprobar U >

∑nj=1 pj = 1

(que siempre es falso), sino que generamos xn sin necesidad de efectuar esa comparacion.Por ese motivo el numero medio de comparaciones serıa realmente:

n−1∑j=1

jpj + (n− 1) pn.

4.1. EL METODO DE LA TRANSFORMACION CUANTIL 39

Ejemplo 4.1.3 Consideremos la variable aleatoria discreta con distibucion

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 numero mediode 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 optimo x1 = 3, x2 = 5, x3 = 7, x4 = 9 yx5 = 1, el numero 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. Calculo directo de la funcion cuantil

En ocasiones el metodo de la transformacion cuantil puede acelerarse computacio-nalmente porque, mediante calculos directos, es posible encontrar el valor de la funcioncuantil en cualquier U , en un tiempo de computacion mınimo (evitando el bucle debusqueda en el que se van acumulando las probabilidades).

Ejemplo 4.1.4 (la distribucion uniforme discreta en {1, 2, . . . , n}) En este casola masa de probabilidad viene dada por

pj =1

n, para j = 1, 2, . . . n.

De esta forma se tiene

k∑i=1

pi ≥ U >k−1∑i=1

pi ⇔k

n≥ U >

k − 1

n⇔ k ≥ nU > k − 1.

Esta ultima condicion equivale a k = dnUe+ 1, siendo dxe la parte entera de x.El algoritmo resulta:

1. Generar U ∼ U (0, 1).2. Devolver X = dnUe+ 1.

40 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

Ejemplo 4.1.5 (la distribucion geometrica) La distribucion geometrica represen-ta el numero de fracasos antes del primer exito 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 funcion de distribucion viene dada por

F (j) =

j∑i=0

p (1− p)i =p (1− p)j+1 − p

1− p− 1= 1− (1− p)j+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)

⇔ k <ln (1− U)

ln (1− p)≤ k + 1

condicion que equivale a

k =

⌈ln (1− U)

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 =

⌈ln Ua

⌉.

4.2. ALGORITMOS BASADOS EN ARBOLES BINARIOS 41

4.2. Algoritmos basados en arboles binarios

El uso de arboles binarios permite, en muchos casos, obtener algoritmos mas efi-cientes que los basados en la busqueda secuencial.

Conceptos usados en este contexto:

Arbol: Grafo orientado, formado por un sistema de nodos conectados entre sı medianteuna 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: Numero de nodos que le preceden.

Arbol binario: Arbol en el que todo nodo, a excepcion de los nodos terminales, tienedos nodos hijos.

Descripcion de un arbol binario

NODO TERMINAL

ARCONODO RAIZ

ll

ll

��

ccc

���

@@

���

aaaaa����

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

��

42 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

Para la generacion de una variable aleatoria discreta, X, con funcion de masa deprobabilidad

P (X = xi) = pi, i = 1, 2, . . . , n

se tratara de encontrar un arbol binario con n nodos terminales (uno para cada valorque se necesite generar), con profundidades di, i = 1, 2, . . . , n, de manera que

n∑i=1

pidi

sea mınima.

Es decir, se tratara de asignar mayor profundidad a los nodos correspondientes avalores de X con menor probabilidad.

4.2.1. Arboles de Huffman

Un arbol de Huffman es un arbol binario en el que los nodos se generan siguiendolos siguientes pasos:

1. Agrupar los nodos con menor probabilidad en un solo nodo con probabilidadigual a la suma de ambos.

2. En el arbol resultante (con un nodo menos) proceder como en el paso anterior,repitiendo este proceso hasta finalizar con un arbol con solo dos nodos.

4.3. EL METODO DE LA TABLA GUIA 43

4.3. El metodo de la tabla guıa

El mayor problema computacional del metodo de la transformacion cuantil consisteen encontrar el ındice k que cumple

∑ki=1 pi ≥ U >

∑k−1i=1 pi. Como ya se ha visto en

los dos ultimos ejemplos existen distribuciones para las cuales este valor k se puedecalcular directamente. El metodo de la tabla guıa consiste en hacer uso de la rapidez decalculo de la funcion cuantil para alguna de esas distribuciones (facilmente simulablemediante el metodo de inversion generalizada) para abreviar al maximo el numero decomparaciones necesarias a la hora de comprobar la condicion

∑ki=1 pi ≥ U >

∑k−1i=1 pi.

Considerese una variable aleatoria discreta con masa de probabilidad dada por pj,j = 1, 2, . . . , n y defınanse las sumas acumulativas de estas probabilidades (que no sonotra cosa que los valores que toma la funcion de distribucion), qj =

∑ji=1 pi, que, para

evitar calculos 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 delmetodo consiste en construir n subintervalos equiespaciados contenidos en [0, 1] de laforma Ji = [ i−1

n, i

n) para i = 1, 2, . . . , n y luego definir los valores de la tabla guıa

gi = max

{j

/qj <

i

n

}, para i = 1, 2, . . . , n

es decir, para cada intervalo se considera el valor mas alto del ındice entero tal que lasuma acumulada de probabilidades hasta el es menor que el extremo superior de dichointervalo.

Ejemplo 4.3.1 Tomemos como ejemplo la distribucion 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 metodo de la transformacion cuantil, dado el valor de U , esinmediato detectar en cual de los intervalos Ji ha caıdo, basta con hacer i = dnUe+ 1.Lo unico que resta por hacer, una vez encontrado este ındice, es obtener el valor delındice I a simular. Dicho valor sera gi + 1 si ya ocurre que U > qgi

. En caso contrariodeberemos encontrar el primer ındice j = gi − 1, gi − 2, . . . , 0, para el cual se cumpleU > qj y luego hacer I = j + 1.

44 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

Algoritmo de simulacion mediante una tabla guıa1. Generar U ∼ U (0, 1).2. Hacer i = dnUe+ 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 facilmente de formarapida segun el siguiente algoritmo:

Algoritmo de calculo de la tabla guıa1. 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+ 13.3. gj = i4. Desde i = 2 hasta n hacer gi = max (gi−1, gi).

4.3.1. Eficiencia del algoritmo

Cuando el valor U cae en el intervalo Ji, es obvio que el numero medio de compa-raciones en el paso 4 del algoritmo es menor o igual que 1 mas el numero de valoresqj pertenecientes al intervalo Ji. Utilizando este hecho, la esperanza del numero decomparaciones (N) puede acotarse mediante

E (N) ≤ 1

n

n∑i=1

(1 + # {j /qj ∈ Ji}) = 1 +1

n

n∑i=1

# {j /qj ∈ Ji}

= 1 +1

n# {j /qj ∈ [0, 1)} = 1 +

n− 1

n< 2.

En general, el metodo es aplicable para tablas guıa de m elementos (donde m notiene porque ser necesariamente igual a n). En tal caso el intervalo [0, 1) se divide en msubintervalos, pudiendo acotar el numero medio de comparaciones mediante E (N) ≤1+ n

m. Gracias a este argumento, para variables con un numero exhorbitante de posibles

valores, pueden utilizarse tablas guıa de un numero mas moderado de elementos deforma que la tabla no ocupe demasiada memoria y que, a la vez, el numero mediode comparaciones este acotado por un valor moderado. Ası, por ejemplo, para unavariable discreta con 1.000.000 de posibles valores podrıamos utilizar una tabla guıade solo 10.000 elementos (para que no ocupe demasiado en memoria) obteniendo queel numero medio de comparaciones estarıa acotado por 101.

4.4. METODO DE TRUNCAMIENTO 45

4.4. Metodo de truncamiento

La idea general de este metodo consiste en hacer uso de una distribucion continuaauxiliar cuya funcion de distribucion se parezca (en cierto sentido que se precisara masadelante) a la funcion de distribucion de la variable discreta que se desea simular.

Supongase, sin perdida de generalidad, que se desea simular la variable I, que tomalos valores 1, 2, . . ., n, con probabilidades p1, p2, . . ., pn. En este caso, la funcion dedistribucion de I viene dada por

F (x) =∑i≤x

pi.

Supongase, ademas, que tenemos otra variable aleatoria continua, con funcion de dis-tribucion G (x) y ciertos valores a0 = −∞ < a1 < a2 < · · · < an−1 < an = ∞, tales queF (i) − F (i−) = pi = G (ai) − G (ai−1), i = 1, 2, . . . , n. Esta ultima condicion viene agarantizar 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 distribucion continua es facil de simular, simplemente deberemos generar va-lores de la misma y luego transformarlos en valores de la variable I.

Algoritmo de simulacion por truncamiento1. Generar T con distribucion G.

2. Encontrar el valor i tal que ai−1 ≤ T < ai.

3. Devolver I = i.

El metodo se hace especialmente rapido cuando el valor de i puede obtenerse deforma inmediata a partir del valor de T . Uno de los casos en los que esto es ası se dacuando G (0) = 0 y los valores ai = i, i = 0, 1, . . . , n (o, incluso, infinitos valores ai deesta forma). En este caso el algoritmo resulta:

Algoritmo de simulacion por truncamiento a la parte entera1. Generar T con distribucion G.

2. Hacer I = dT e+ 1.

46 CAPITULO 4. METODOS UNIVERSALES PARA VARIABLES DISCRETAS

Ejemplo 4.4.1 (simulacion de la geometrica por truncamiento) La masa de pro-babilidad de la distribucion geometrica es

P (X = j) = P (I = j + 1) = p (1− p)j , j = 0, 1, . . .

Considerese como variable aleatoria continua auxiliar la exponencial, que tiene funcionde distribucion dada por

G (x) =

{1− e−λx si x ≥ 0

0 si x < 0

Ahora bien,

G (i)−G (i− 1) = 1− e−λi −(1− e−λ(i−1)

)= e−λ(i−1) − e−λi

= e−λ(i−1)(1− e−λ

)=(1− e−λ

) (e−λ)i−1

= p (1− p)i−1

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. Hacer λ = − ln (1− p).1. Generar U ∼ U (0, 1).2. Hacer T = − ln U

λ.

3. Devolver X = dT e.

Este es el mismo algoritmo que se obtenıa anteriormente cuando razonabamos comocalcular directamente el valor de la funcion cuantil para la distribucion geometrica.

Capıtulo 5

Metodos especıficos para lasimulacion de distribucionesnotables

En este capıtulo se estudiaran algoritmos especıficos para simular algunas de lasdistribuciones de probabilidad mas importantes. La mayorıa de ellos son aplicacionesde los metodos generales ya expuestos, quiza con alguna particularidad.

5.1. Distribuciones continuas

5.1.1. La distribucion uniforme

Una vez generada la variable U con distribucion U(0, 1), la variable X con distri-bucion 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 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

5.1.2. La distribucion normal

Se trata de simular X con distribucion normal estandar, ya que la variable Y ∈N (µ, σ) , con parametros arbitrarios (µ ∈ R, σ > 0), puede simularse mediante Y =µ + σX.

Metodo de Box-Muller

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 distribucion N (0, 1) .

Algoritmo de Box-Muller

1. Generar U, V ∼ U (0, 1).2. Hacer W1 =

√−2 ln U y W2 = 2πV .

3. Devolver X1 = W1 cos W2, X2 = W1senW2.

Metodo polar

Se basa en una propiedad que da la distribucion condicionada a cierto suceso de unpar de variables transformadas de otras uniformes:

Dadas dos variables independientes V1 y V2, con distribucion U (−1, 1), la distribu-cion condicionada(

V1

√−2 ln (V 2

1 + V 22 )

V 21 + V 2

2

, V2

√−2 ln (V 2

1 + V 22 )

V 21 + V 2

2

)∣∣∣∣∣V 21 +V 2

2 ≤1

es N2

((00

),

(1 00 1

)).

Algoritmo polar

1. Generar U1, U2 ∼ U (0, 1).2. Hacer V1 = 2U1 − 1, V2 = 2U2 − 1 y W = V 2

1 + V 22 .

3. Si W > 1 entonces volver a 1.

4. Hacer Y =√

−2 ln WW

.

5. Devolver X1 = V1Y , X2 = V2Y .

5.1. DISTRIBUCIONES CONTINUAS 49

Metodo del Teorema Central del Lımite

Como su propio nombre indica, este metodo se deriva a partir del Teorema Centraldel Lımite:

Dadas variables aleatorias T1, T2, . . ., Tn, independientes e identicamente distribui-das, con media µT y varianza σ2

T finitas, se tiene que

T − µT

σT

√n'N (0, 1) ,

si n es suficientemente grande.

Este teorema puede aplicarse para simular una N (0, 1) tomando variables con otradistribucion mas facil de simular.

El caso mas habitual es elegir Ti = Ui ∈ U (0, 1) y n = 12 (por simplicidad decalculo). De esta forma, la variable

U − µU

σU

√n =

12∑i=1

Ui − 6

tiene distribucion 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 distribucion de Cauchy

Esta distribucion puede definirse, de forma general, dependiendo de dos parametros:µ el de localizacion y σ > 0 el de escala. Su funcion de densidad viene dada por

f (x) =σ

π(σ2 + (x− µ)2) , para todo x ∈ R.

Un sencillo calculo permite hallar su funcion de distribucion:

F (x) =1

πarctan

(x− µ

σ

)+

1

2,

pudiendose implementar el metodo de inversion.

Algoritmo basado en el metodo de inversion

1. Generar U ∼ U (0, 1).

2. Devolver X = σ tan (πU) + µ.

50 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

5.1.4. La distribucion exponencial

Se simula utilizando el metodo de inversion.

Algoritmo basado en el metodo de inversion

1. Hacer L = − 1λ.

2. Generar U ∼ U (0, 1).3. Devolver X = L · ln U.

5.1.5. La distribucion de Laplace o doble exponencial

Esta distribucion puede definirse, de forma general, dependiendo de dos parametros:µ el de localizacion y λ > 0 el de escala. Su funcion de densidad viene dada por

f (x) =λ

2e−λ|x−µ|, para todo x ∈ R.

Su funcion de distribucion es:

F (x) =

{12eλ(x−µ) si x < µ

1− 12e−λ(x−µ) si x ≥ µ

pudiendose generar por el metodo de inversion.

Algoritmo basado en el metodo de inversion

1. Generar U, V ∼ U (0, 1).

2. Hacer T =ln U

λ.

3. Si V < 1/2, devolver X = µ + T. En caso contrario,

hacer X = µ− T.

5.1. DISTRIBUCIONES CONTINUAS 51

5.1.6. Las distribuciones gamma y de Erlang

La distribucion gamma, Γ (a, p), depende de dos parametros: a > 0, parametro deescala, y p > 0, parametro de forma. La distribucion de Erlang no es mas que la par-ticularizacion de la gamma al caso en que p ∈ N.

La funcion de densidad de una Γ (a, p) viene dada por

f (x) =

{ ap

Γ(p)xp−1e−ax si x ≥ 0

0 si x < 0

donde Γ (p) =

∫ ∞

0

xp−1e−xdx es la llamada funcion gamma de Euler.

Puede demostrarse una relacion recursiva para Γ (p) sin mas que hacer una integra-cion por partes:

Tomando u = xp−1 y dv = e−xdx, se tiene,

Γ (p) =

∫ ∞

0

xp−1e−xdx =[xp−1

(−e−x

)]∞0−∫ ∞

0

(p− 1) xp−2(−e−x

)dx

= (p− 1)

∫ ∞

0

xp−2e−xdx = (p− 1) Γ (p− 1)

Esto permite reducir el calculo de Γ (p) al caso en que p ∈ (0, 1], ya que

Γ (p) = (p− 1) (p− 2) · · · (p− [p]) Γ (p− [p])

Dado que Γ (1) =

∫ ∞

0

e−xdx = 1, la expresion anterior se simplifica cuando p ∈ N,

dando lugar a Γ (p) = (p− 1)!

Cuando p = 1 la densidad de la gamma es

f (x) =

{ae−ax si x ≥ 0

0 si x < 0

es decir, Γ (a, 1)d= exp (a).

52 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

Una propiedad muy importante de la distribucion gamma es la llamada propiedadde reproductividad, que afirma que si se dispone de dos variables aleatorias indepen-dientes, X ∈ Γ (a, p1) e Y ∈ Γ (a, p2), la suma de ambas tambien es una gamma:X + Y ∈ Γ (a, p1 + p2).

Este resultado se puede generalizar, por induccion, a la suma de cualquier numerofinito de variables gamma independientes con primer parametro, a, coincidente. Envirtud de ello, si p es entero, dadas X1, X2, · · ·, Xp variables independientes con dis-trinucion exp (a) (o, lo que es lo mismo, Γ (a, 1)) se tiene que su suma,

∑pi=1 Xi, tiene

distribucion Γ (a, p).

Como consecuencia, la distribucion de Erlang se puede simular facilmente comosuma de exponeciales:

Algoritmo reproductivo de simulacion de la Erlang

1. Desde i = 1 hasta p hacer

1.1. Generar Ui ∼ U (0, 1).1.2. Hacer Xi = − ln Ui

a.

2. Devolver X =∑p

i=1 Xi.

Este algoritmo puede agilizarse computacionalmente definiendo previamente el va-lor L = − 1

ay calculando un unico logaritmo (en lugar de p) teniendo en cuenta que∑p

i=1 Xi = −∑p

i=1ln Ui

a= − 1

aln (∏p

i=1 Ui). Ası se tiene:

Algoritmo reproductivo de simulacion de la Erlang optimizado

1. Hacer L = − 1a.

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 solo son validos para p entero, siendo ademas muy lentossi p es grande. Por contra son muy simples y de facil implementacion. Como alternativaexisten otros algoritmos mas complicados que cubren tambien el caso en que p no seaentero.

5.1. DISTRIBUCIONES CONTINUAS 53

Los algoritmos que se describen a continuacion permiten generar la distribucionΓ(1, p). Si a 6= 1, la distribucion Γ(a, p) podra generarse a partir de la distribucionanterior, utilizando para ello la propiedad que afirma que si X ∈ Γ(1, p) entonces X/atiene distribucion Γ(a, p).

El algoritmo de Tadikamalla (1978), que solo es valido si p > 34

(a = 1), es unalgoritmo de aceptacion/rechazo que usa como densidad auxiliar una doble exponencialcentrada en p− 1 y con parametro de escala dado por

λ =1

θ=

2

1 +√

4p− 3.

Para la implementacion del algoritmo debe definirse la funcion

T (x) =

∣∣∣∣(θ − 1) x

θ (p− 1)

∣∣∣∣p−1

exp

(−x +

|x− (p− 1)|+ (p− 1) (θ + 1)

θ

).

Algoritmo de Tadikamalla

1. Generar X, doble exponencial con media p−1 y parametro de escala

λ = 1θ

= 21+

√4p−3

.

2. Si X < 0 entonces volver a 1.

3. Generar U ∼ U (0, 1).4. Si U ≤ T (X) entonces devolver X, sino volver a 1.

54 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

Como el anterior, el algoritmo de Cheng-Feast (1979) es un algoritmo de acepta-cion/rechazo que es valido si p > 1 (a = 1).

Algoritmo de Cheng-Feast

1. Generar U1, U2, independientemente, con distribucion

U(0, 1) y hacer V =

(p− 1

6p

)U1

(p− 1)U2

.

2. Si2(U2 − 1)

p− 1+ V +

1

V≤ 2 hacer X = (p− 1)V .

En otro caso, si2 log U2

p− 1− log V + V ≤ 1 hacer X = (p− 1)V .

3. Volver a 1.

El algoritmo de Best-Ahrens-Dieter (1983) es tambien un algoritmo de acepta-cion/rechazo que es valido si p < 1 (a = 1).

Algoritmo de Best-Ahrens-Dieter

0. Hacer t = 0,07 + 0,75√

1− p y b = 1 +pe−t

t.

1. Generar U1, U2, independientemente, con distribucion

U(0, 1) y hacer V = bU1.

2. Si V ≤ 1 hacer W = tV1p. En otro caso, ir a 3.

2.1. Si U2 ≤2−W

2 + W, ir a 5.

2.2. Si U2 ≤ e−W , ir a 5.

3. Hacer W = − log

(t(b− V )

p

)e Y = W

t.

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 55

5.1.7. La distribucion beta

Dadas dos variables aleatorias Y ∈ Γ (1, p) y Z ∈ Γ (1, q), independientes, se diceque la variable

X =Y

Y + Z

tiene distribucion β (p, q), beta de parametros p y q.

La funcion de densidad de una β (p, q) viene dada por

f (x) =

xp−1 (1− x)q−1

β (p, q)si x ∈ [0, 1]

0 en otro caso

siendo β (p, q) =

∫ 1

0

xp−1 (1− x)q−1 dx.

Aunque existen multitud de algoritmos para simular la distribucion β (p, q) , pro-bablemente, el mas sencillo de todos es el que se obtiene, a partir de la distribuciongamma, como consecuencia de la propia definicion.

El algoritmo de Fox (1963) es adecuado para simular la distribucion beta cuandop, q ∈ N y son valores pequenos.

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 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

Un metodo valido aunque p o q no sean enteros es el dado por el algoritmo de Johnk(1964).

Algoritmo de Johnk

1. Repetir.

1.1. Generar U, V ∼ U (0, 1).

1.2. Hacer Y = U1p, Z = V

1q , S = Y + Z.

2. Hasta que S ≤ 1.3. Hacer X = Y

S.

Este metodo resulta extremadamente ineficiente para p o q mayores que 1. Estoes debido a que la condicion S ≤ 1 del paso 2 puede tardar muchısimo en verificarse.Por este motivo, el algoritmo de Johnk solo es recomendable para p < 1 y q < 1.Como remedio a esto puede usarse el algoritmo de Cheng (1978) que es bastante mascomplicado de implementar pero tambien mucho mas eficiente.

Algoritmo de Cheng

1.1. Hacer α = p + q.1.2. Si mın (p, q) ≤ 1 entonces hacer β = 1

mın(p,q), en otro caso hacer β =√

α−22pq−α

.

1.3. Hacer γ = p + 1β.

2. Generar U1, U2 ∼ U (0, 1).

3. Hacer V = β · ln(

U1

1−U1

)y W = p · eV .

4. Si α · ln(

αq+W

)+ γV − ln 4 < ln (U2

1 U2) entonces volver a 1.

5. Devolver X = Wq+W

.

5.1. DISTRIBUCIONES CONTINUAS 57

5.1.8. La distribucion chi-cuadrado de Pearson

Dadas variables aleatorias Z1, Z2, . . . , Zn independientes y con distribucion N (0, 1),diremos que la variable X =

∑ni=1 Z2

i tiene distribucion chi-cuadrado con n grados delibertad (χ2

n).

Su funcion de densidad viene dada por

f (x) =x

n2−1e−

x2

2n2 Γ(

n2

) , para todo x ≥ 0

Es decir, χ2n

d= Γ

(12, n

2

)y los algoritmos vistos para la distribucion gamma son apli-

cables a este caso (para n grande es recomendable usar el algoritmo de Tadikamalla).

Ademas, debido a la reproductividad de la distribucion gamma, se tiene que Γ(

12, n

2

) d=

Γ(

12,[

n2

])+ Γ

(12, 1

2

), cuando n no sea par, siendo esta ultima distribucion, Γ

(12, 1

2

), la

del cuadrado de una normal estandar.De esta forma, para n pequeno, se tiene el siguiente algoritmo para la simulacion

de la chi-cuadrado:

Algoritmo reproductivo para simular la chi-cuadrado

1. Hacer m =[

n2

].

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 + Z2.

7. Devolver X.

58 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

5.1.9. La distribucion F de Fisher-Snedecor

Dadas dos variables aleatorias Y1 ∈ χ2m e Y2 ∈ χ2

n independientes, la variablealeatoria

X =Y1/m

Y2/n

tiene distribucion F de Fisher-Snedecor con m y n grados de libertad (Fm,n).

Su funcion de densidad es

f (x) =

(nm

)n2

β(

m2, n

2

)xm2−1(x +

n

m

)−m+n2

, para todo x ≥ 0

Ademas de poder simularse a traves de algoritmos de simulacion de la chi-cuadrado,puede simularse mediante el uso de una distribucion beta.

Algoritmo de simulacion de la F a traves de la beta1. Generar Z ∼ β

(m2, n

2

).

2. Hacer X = nZm(1−Z)

.

5.1.10. La distribucion t de Student

Dadas dos variables independientes Y1 ∈ N (0, 1) e Y2 ∈ χ2n, la variable aleatoria

X =Y1√Y2/n

tiene distribucion t de Student con n grados de libertad (tn).

Su funcion de densidad es

f (x) =Γ(

n+12

)Γ(

n2

)√nπ

(1 +

x2

n

)−n+12

, para todo x ∈ R.

La t de Student puede simularse facilmente teniendo en cuenta la relacion entre

esta distribucion y la F de Fisher-Snedecor: t2nd= F1,n.

Algoritmo de simulacion de la t de Student a partir de la F1. 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 59

5.1.11. La distribucion de Weibull

La distribucion de Weibull, W (λ, α), es una generalizacion de la distribucion exp (α).

Su funcion de densidad de probabilidad es

f (x) = αλαxα−1e−(λx)α

, para todo x ≥ 0

En particular, W (λ, 1)d= exp (λ).

Puede simularse facilmente mediante el metodo de inversion (ligeramente optimi-zado).

Algoritmo de inversion para simular la distribucion de Weibull

1. Generar U ∼ U (0, 1).

2. Devolver X =(− ln U)

λ.

5.1.12. La distribucion logıstica

Es la que tiene por funcion de distribucion:

F (x) =1

1 + e−x−a

b

, ∀x ∈ R,

siendo a ∈ R y b > 0.

Puede simularse facilmente mediante el metodo de inversion.

Algoritmo para simular la distribucion logıstica mediante inversion1. Generar U ∼ U (0, 1).2. Devolver X = a− b ln

(1U− 1).

60 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

5.1.13. La distribucion de Pareto

Tiene utilidad en ciencias como la Economıa, donde en ocasiones sirve para mode-lizar distribuciones de rentas.

Su densidad viene dada por

f (x) =

{aba

xa+1si x ≥ b

0 si x < b

Como consecuencia, su funcion de distribucion resulta

F (x) =

{0 si x < b

1−(

bx

)asi x ≥ b

y, por tanto, es simulable mediante inversion. Una version optimizada del algoritmo es:

Algoritmo de inversion para simular la distribucion de Pareto

1. Generar U ∼ U (0, 1).

2. Devolver X =b

U1a

.

5.2. Distribuciones discretas

5.2.1. La distribucion uniforme discreta

Dado un conjunto finito de N elementos (que, sin perdida de generalidad, supon-dremos el conjunto {1, 2, . . . , N}) la distribucion uniforme discreta en dicho conjun-to (o equiprobable sobre dicho conjunto) es la definida por P (X = i) = 1

N, para

i = 1, 2, . . . , N .

Tanto el metodo de inversion (calculando explıcitamente la funcion cuantil) comoel de truncamiento dan lugar al siguiente algoritmo.Algoritmo para simular la distribucion uniforme discreta en

{1, 2, . . . , N}1. Generar U ∼ U (0, 1).2. Devolver X = [N · U ] + 1.

5.2. DISTRIBUCIONES DISCRETAS 61

5.2.2. La distribucion binomial

La distribucion binomial de parametros n y p, B (n, p), se define como el numerode exitos en n pruebas independientes, en las que la probabilidad de exito es p.

Su masa de probabilidad es

P (X = i) =

(n

i

)pi (1− p)n−i , para i = 0, 1, . . . , n.

Puede simularse a partir de su definicion:

Algoritmo para la generacion de la distribucion 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 metodo es extremadamente lento cuando n es grande. Por eso, en ese caso,resulta mas ventajoso utilizar el metodo de la tabla guıa.

5.2.3. La distribucion de Poisson

Una variable aleatoria discreta, X, tiene distribucion de Poisson de parametro λ > 0si su masa de probabilidad viene dada por

P (X = i) =e−λλi

i!, para i = 0, 1, . . .

La distribucion de Poisson puede simularse mediante el metodo de la transformacioncuantil con busqueda secuencial.

62 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

Tambien puede simularse haciendo uso de la relacion que guarda con la distribucionexponencial. Ası, dadas variables aleatorias T1, T2, . . ., Tn, . . . independientes y condistribucion exp (λ), la variable aleatoria entera, X, que verifica

X∑i=1

Ti ≤ 1 <

X+1∑i=1

Ti

(definiendo X = 0 si T1 > 1) tiene distribucion Pois(λ).Las variables aleatorias Ti pueden simularse, utilizando valores Ui de una uniforme,

mediante Ti = − ln Ui

λ. En virtud de ello, se tiene

X∑i=1

Ti ≤ 1 <

X+1∑i=1

Ti ⇔ −X∑

i=1

ln Ui

λ≤ 1 < −

X+1∑i=1

ln Ui

λ⇔

−ln

(X∏

i=1

Ui

≤ 1 < −ln

(X+1∏i=1

Ui

⇔ ln

(X∏

i=1

Ui

)≥ −λ > ln

(X+1∏i=1

Ui

)⇔

X∏i=1

Ui ≥ e−λ >X+1∏i=1

Ui.

Ası, puede utilizarse el siguiente algoritmo:

Algoritmo de simulacion 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 transformacion cuantil tienen el inconvenientede ser muy ineficientes cuando λ es grande. En ese caso, aunque la distribucion dePoisson tiene un numero infinito de posibles resultados, es perfectamente aplicable elmetodo de la tabla guıa desembocando en una busqueda secuencial cuando el intervaloelegido sea el ultimo de la tabla. Esto mejora muy considerablemente la eficiencia delmetodo.

5.2. DISTRIBUCIONES DISCRETAS 63

5.2.4. La distribucion geometrica

Su masa de probabilidad es

P (X = i) = p · (1− p)i , para i = 0, 1, . . .

Ademas de poder simularse a partir de su definicion (numero de fracasos antes delprimer exito), tambien puede hacerse por truncamiento. El algoritmo que resulta poreste metodo es equivalente al basado en la expresion explıcita de la funcion cuantil.Algoritmo de truncamiento para la distribucion geometrica

0. Hacer L = − 1

ln (1− p).

1. Generar U ∼ U (0, 1).2. Hacer T = L · ln U.

3. Devolver X = [T ].

5.2.5. La distribucion binomial negativa

La distribucion binomial negativa, BN (r, p) , generaliza a la geometrica, pudiendointerpretarse como el numero de fracasos antes del r-esimo exito.

Su funcion de masa de probabilidad es

P (X = i) =

(i + r − 1

i

)pr (1− p)i , para i = 0, 1, . . .

Debido a su reproductividad en el parametro r, puede simularse como suma der variables geometricas, aunque este algoritmo puede ser muy costoso en tiempo decomputacion si r es elevado.

Existe tambien un metodo especıfico basado en la propiedad

X|Y ∈ Pois (Y ) , Y ∈ Γ

(p

1− p, r

)⇒ X ∈ BN (r, p) .

Algoritmo condicional para simular la binomial negativa

1. Simular L ∼ Γ

(p

1− p, r

).

2. Simular X ∼Pois(L).3. Devolver X.

64 CAPITULO 5. SIMULACION DE DISTRIBUCIONES NOTABLES

Capıtulo 6

Simulacion de distribucionesmultidimensionales

La simulacion de vectores aleatorios X = (X1, X2, . . . , Xd)′ que sigan cierto modelo

de distribucion dado no es tarea siempre sencilla. En general, no resulta una extensioninmediata del caso unidimensional, aunque, si las variables que componen el vector sonindependientes, entonces bastara simular cada Xi con la distribucion marginal deseada(Fi) y luego agrupar los valores simulados para cada componente en un vector.

En la mayor parte de los casos de interes, las componentes del vector aleatorioson dependientes y el metodo anterior no es valido. A continuacion se veran algunosmetodos generales para la simulacion de distribuciones multidimensionales.

6.1. Metodo de las distribuciones condicionadas

Supongase un vector aleatorio d-dimensional, con distribucion continua. Denotesepor f (x1, x2, . . . , xn) su funcion de densidad conjunta y considerese la primera densidadmarginal, 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 dedensidad, 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)′.

Es inmediato comprobar que el metodo anteriormente expuesto es igualmente validosi las variables Xi son discretas o, incluso, si algunas son discretas y otras continuas. Ental caso se sustituirıa la densidad por la masa de probabilidad. Ası pues, lo realmenteimportante para poder aplicar el metodo de las distribuciones condicionadas es conocery saber simular la distribucion marginal de X1 y las distribuciones condicionadas deltipo Xi|X1, X2, . . . , Xi−1 para i = 2, 3, . . . , d.

65

66CAPITULO 6. SIMULACION DE DISTRIBUCIONES MULTIDIMENSIONALES

Ejemplo 6.1.1 (Algoritmo para simular la distribucion normal bidimensio-nal por el metodo de las distribuciones condicionadas) Consideremos una

N2

((µ1

µ2

),

(σ2

1 σ12

σ12 σ22

)),

por las propiedades de la distribucion normal, bastara saber simular la distribucion

N2

((00

),

(σ2

1 σ12

σ12 σ22

))

y luego sumarle el vector

(µ1

µ2

).

Dado que X1 ∈ N (0, σ1), se tiene que

f1 (x1) =1

σ1

√2π

exp

(− x2

1

2σ21

)Ademas

f (x1, x2) = f (x) =1

2π√

det (Σ)exp

(−1

2x′Σ−1x

)Como

Σ−1 =1

det (Σ)

(σ2

2 −σ12

−σ12 σ21

)=

1

σ21σ

22 − σ2

12

(σ2

2 −σ12

−σ12 σ21

)se tiene que

1

2x′Σ−1x =

σ22x

21 − 2σ12x1x2 + σ2

1x22

2 (σ21σ

22 − σ2

12)

y, por tanto,

f2 (x2|x1) =f (x1, x2)

f1 (x1)=

σ1

√2π

2π√

σ21σ

22 − σ2

12

exp

(−(

σ22x

21 − 2σ12x1x2 + σ2

1x22

2 (σ21σ

22 − σ2

12)− x2

1

2σ21

))=

1√

2π√

σ21σ2

2−σ212

σ21

exp

(−σ2

1σ22x

21 − 2σ2

1σ12x1x2 + σ41x

22 − (σ2

1σ22 − σ2

12) x21

2σ21 (σ2

1σ22 − σ2

12)

)

=1

√2π√

σ21σ2

2−σ212

σ21

exp

(−−2σ2

1σ12x1x2 + σ41x

22 + σ2

12x21

2σ21 (σ2

1σ22 − σ2

12)

)

=1

√2π√

σ21σ2

2−σ212

σ21

exp

−−2σ12x1x2

σ21

+ x22 +

σ212x2

1

σ41

2σ21σ2

2−σ212

σ21

=

1√

2π√

σ21σ2

2−σ212

σ21

exp

−(x2 − σ12x1

σ21

)2

2σ21σ2

2−σ212

σ21

que es la densidad de una N

(σ12

σ21x1,

σ21σ2

2−σ212

σ21

).

6.1. METODO DE LAS DISTRIBUCIONES CONDICIONADAS 67

En resumen, se tiene que si(X1

X2

)∈ N2

((00

),

(σ2

1 σ12

σ12 σ22

))entonces X1 ∈ N (0, σ2

1) y X2|X1 ∈ N(

σ12

σ21X1,

√σ21σ2

2−σ212

σ21

). Ası, el algoritmo de simu-

lacion consistirıa en los siguientes pasos:

1. Simular Z1, Z2 ∼ N (0, 1) independientes.

2. Hacer Y1 = σ1Z1.

3. Hacer Y2 = σ12

σ21Y1 + Z2

√σ21σ2

2−σ212

σ21

.

4. Hacer X1 = Y1 + µ1, X2 = Y2 + µ2.

5. Devolver−→X = (X1, X2)

t.

Ejemplo 6.1.2 (La distribucion uniforme en el cırculo unitario). Se trata dela distribucion bidimensional continua cuya densidad es constante en dicho cırculo

C = {(x1, x2)′ ∈ R2/x2

1 + x22 ≤ 1}.

Su funcion de densidad viene dada por

f (x1, x2) =

{1π

si (x1, x2)′ ∈ C

0 si (x1, x2) ′ /∈ C

La densidad marginal de la primera variable resulta

f1 (x1) =

∫ +√

1−x21

−√

1−x21

1

πdx2 =

2√

1− x21

πsi x1 ∈ [−1, 1]

es decir,

f1 (x1) =

{2π

√1− x2

1 si x1 ∈ [−1, 1]0 si x1 /∈ [−1, 1]

Ademas

f2 (x2|x1) =f (x1, x2)

f1 (x1)=

2√

1−x21

π

=1

2√

1− x21

, si x2 ∈[−√

1− x21,√

1− x21

]valiendo cero en otro caso.

Se tiene entonces que

X2|X1 ∈ U

[−√

1−X21 ,√

1−X21

],

siempre que X1 ∈ [−1, 1].Finalmente, el algoritmo resulta:

1. Simular X1 con densidad f1.

2. Simular X2 con densidad U[−√

1−X21 ,√

1−X21

].

3. Devolver X = (X1, X2)′.

Para el paso 1 puede utilizarse, por ejemplo, el metodo de aceptacion/rechazo, puesse trata de una densidad acotada definida en un intervalo acotado.

68CAPITULO 6. SIMULACION DE DISTRIBUCIONES MULTIDIMENSIONALES

6.2. El metodo de aceptacion/rechazo

La idea general del metodo de aceptacion/rechazo es aplicable para simular variablesaleatorias definidas en cualquier espacio (no solo en R). En particular puede usarse parasimular vectores aleatorios de Rd. Sin embargo, en este contexto, resulta mucho masdifıcil encontrar una densidad auxiliar adecuada y, especialmente, conseguir que elnumero medio de comparaciones del metodo se mantenga dentro de unos lımites deeficiencia razonables cuando la dimension es elevada.

Ejemplo 6.2.1 (Simulacion de puntos uniformemente distribuıdos sobre la“esfera” unitaria d-dimensional Cd)

Cd ={(x1, x2, . . . , xd)

′ ∈ Rd/x21 + x2

2 + · · ·+ 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) = rdVd (1)), se tiene:

f (x1, x2, . . . , xd) =

{ 1Vd(1)

si (x1, x2, . . . , xd)′ ∈ Cd

0 si (x1, x2, . . . , xd)′ /∈ Cd

Para simular valores en Rd, con densidad f , podemos utilizar como densidad auxiliar

la de una U

([−1, 1]× [−1, 1]× d· · · × [−1, 1]

)= U

([−1, 1]d

), dada por

g (x1, x2, . . . , xd) =

{12d si xi ∈ [−1, 1], para todo i = 1, 2, . . . , d0 en otro caso

La constante c optima para la utilizacion del metodo de aceptacion/rechazo es

c = max−→x /g(x)>0

f (x)

g (x)=

1Vd(1)

12d

=2d

Vd (1)

y la condicion de aceptacion cUg (T) ≤ f (T) se convierte en

2d

Vd (1)U

1

2d1[−1,1]d (T) ≤ 1

Vd (1)1Cd

(T)−

o, lo que es lo mismo, U1[−1,1]d (T) ≤ 1Cd(T). Esta condicion equivale a que T ∈ Cd,

es decir, que se verifiqueT 2

1 + T 22 + · · ·+ T 2

d ≤ 1

Por otra parte, la simulacion de T ∼ U([−1, 1]d

)puede hacerse trivialmente me-

diante Ti ∼ U ([−1, 1]) para cada i = 1, 2, . . . , d, ya que las componentes son indepen-dientes. Como el valor de U es superfluo en este caso, el algoritmo queda:

1. Simular V1, V2, . . . , Vd ∼ U (0, 1) independientes.

2. Para i = 1, 2, . . . , d hacer Ti = 2Vi − 1.3. Si T 2

1 + T 22 + · · ·+ T 2

d > 1 entonces volver al paso 1.

4. Devolver X = (T1, T2, . . . , Td)′.

6.3. METODOS DE CODIFICACION O ETIQUETADO 69

Usando las formulas del “volumen” de una “esfera” d-dimensional:

Vd (r) =

πd/2rd

(d/2)!si d es par

2dd2e+1πd

d2erd

1 · 3 · 5 · · · dsi d es impar

puede verse que el numero medio de repeticiones de los pasos 1-3 del algoritmo, queviene dado por la constante c = 2d

Vd(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 = 10resulta c =401.5 que es un valor que hace que el algoritmo sea tremendamente lento endimension 10.

6.3. Metodos de codificacion o etiquetado

En el caso de que la funcion de distribucion d-dimensional sea discreta existenmetodos que permiten reducir la simulacion de dicha variable al contexto de simular unavariable aleatoria discreta unidimensional. Estos metodos son conocidos como metodosde etiquetado o codificacion y la idea basica consiste en construir una funcion h quecodifique las posibles d-tuplas del conjunto donde toma valores la variable discreta,haciendo corresponder a cada uno un numero entero no negativo diferente.

Ejemplo 6.3.1 (Algoritmo para simular una variable bidimensional discreta(X1, X2)

′ 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 tratara de definir una funcion biyectiva, h : Z+ × Z+ −→ Z+, que permitaetiquetar los pares de enteros.

De esta forma, h induce sobre la variable transformada, C = h (X1, X2), una masade probabilidad

p(C)k := P (C = k) = P (h (X1, X2) = k) = P

((X1, X2) = h−1 (k)

)=: p

(X1,X2)

h−1(k)

Resulta inmediato, por tanto, obtener la masa de probabilidad de la variable discretaunidimensional 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 practicaen un tiempo razonable, la funcion h debe poder invertirse de forma rapida.

Ası pues para simular la variable (X1, X2) podemos proceder mediante uno de losalgoritmos posibles para simular C calculando en tantos pasos como sean necesarioslos valores de la forma h−1 (k).

Una posibilidad sencilla consiste en utilizar

h (i, j) =(i + j) (i + j + 1)

2+ i

70CAPITULO 6. SIMULACION DE DISTRIBUCIONES MULTIDIMENSIONALES

Consideremos k ∈ Z+, el valor (i, j) = h−1 (k) debe verificar

h (i, j) = k ⇔ (i + j) (i + j + 1)

2+ i = k

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

n (n + 1)

2+ i = k

Debemos entonces encontrar el unico n que cumple

n (n + 1)

2≤ k ≤ n (n + 1)

2+ n <

n (n + 1) + 2 (n + 1)

2=

(n + 1) (n + 2)

2

Como ademas n2 < n (n + 1) y (n + 1) (n + 2) < (n + 2)2, se tiene que ese valor n hade verificar

n2 < 2k < (n + 2)2 ,

es decir ⌈√2k⌉− 2 < n ≤

⌈√2k⌉

.

Dicho de otro modo, se tiene que n ha de ser igual a⌈√

2k⌉− 1 o

⌈√2k⌉.

Basta entonces con calcular la expresion n(n+1)2

para esos posibles valores de n y

comparar el resultado con 2k. Ası, si⌈√

2k⌉(⌈√

2k⌉

+ 1)

> 2k entonces n =⌈√

2k⌉−

1 y, en caso contrario, n =⌈√

2k⌉. Finalmente se calcula

i = k − n (n + 1)

2y j = n− i

El calculo de h−1 (k) es muy rapido y el resto del algoritmo se reduce a la simulacionde la variable unidimensional C.

Ejemplo 6.3.2 Calculemos por el procedimiento anterior el valor h−1 (16). Calcula-mos primeramente n =

⌈√2 · 16

⌉=⌈√

2 · 16⌉

=⌈√

32⌉

= d5. 656 854 2e = 5. Luegocalculamos 5 (5 + 1) = 30 ≤ 32 = 2 · 16, con lo cual n = 5. Ademas i = 16− 5·6

2= 1 y

j = 5− 1 = 4. Ası pues se obtiene h−1 (16) = (1, 4).

Aunque no entraremos con detalle en ello, conviene resaltar que es posible genera-lizar este tipo de funciones de codificacion a (Z+)

d. Tambien es factible encontrar la

inversa de tal funcion generalizada (llamada funcion de decodificacion) que se puedecalcular eficientemente.

Cuando la variable aleatoria X2 toma un numero finito de valores (supongamoscomprendidos entre 0 y M), otra posible funcion de codificacion, mas sencilla es

h (i, j) = (M + 1) i + j

cuya inversa viene dada por

h−1 (k) =

([k

M + 1

], kmod (M + 1)

).

Estas funciones de codificacion y decodificacion son generalizables a (Z+)d

y aplicablesal caso en que el vector aleatorio X tome un numero finito de valores.

6.4. METODOS PARA SIMULAR LA DISTRIBUCION NORMAL MULTIVARIANTE71

6.4. Metodos para simular la distribucion normal

multivariante

Dado un vector µ = (µ1, µ1, . . . , µd)′ ∈ Rd y una matriz definida positiva

Σ=

σ11 σ12 · · · σ1d

σ21 σ22 · · · σ1d...

.... . .

...σd1 σd2 · · · σdd

la distribucion normal d-dimensional de parametros (µ ,Σ) (que corresponden con suvector de medias y su matriz de varianzas-covarianzas), abreviadamente Nd (µ ,Σ), esla que tiene densidad dada por

f (x ) = (2π)−d/2 det (Σ)−1/2 exp

(−1

2(x − µ )′ Σ−1 (x − µ)

)Cuando Σ es diagonal

Σ =

σ2

1 0 · · · 00 σ2

2 · · · 0...

.... . .

...0 0 · · · σ2

d

,

se obtiene facilmente

f (x ) = (2π)−d/2

(d∏

i=1

σ2i

)−1/2

× exp

−1

2(x − µ )′

1σ21

0 · · · 0

0 1σ22· · · 0

......

. . ....

0 0 · · · 1σ2

d

(x − µ )

= (2π)−d/2

(d∏

i=1

σ−1i

)exp

(−1

2

d∑i=

(xi − µi)2

σ2i

)

=d∏

i=1

(1

σi

√2π

exp

(−(xi − µi)

2

2σ2i

))=

d∏i=1

φµ1,σi(xi)

siendo φµ1,σila funcion de densidad de una N (µi, σi).

De esta forma, cuando Σ es diagonal, las componentes son independientes y resultatrivial 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 + σiZi.

3. Devolver X = (X1, X2, . . . , Xd)′.

72CAPITULO 6. SIMULACION DE DISTRIBUCIONES MULTIDIMENSIONALES

Una propiedad que resulta muy util para simular la distribucion Nd (µ ,Σ) con Σarbitraria es la siguiente.

Proposicion 6.4.1 Si X ∈ Nd (µ ,Σ) y A es una matriz de dimension p×d, de rangomaximo, con p ≤ d, entonces Y = AX ∈ Np (Aµ ,AΣA′).

Dada una variable aleatoria X ∈ Nd (µ ,Σ), Y = X− µ ∈ Nd (0 ,Σ).

Si Σ es una matriz definida positiva, existe una matriz ortogonal H (es decir, talque H−1 = H′) de forma que la matriz Λ = H′ΣH es diagonal. De hecho, H es lamatriz de cambio de base para que la matriz asociada a la correspondiente aplicacionlineal sea la matriz diagonal Λ (en lugar de la matriz de partida Σ).

Las columnas de la matriz H son precisamente los autovectores linealmente inde-pendientes (y de modulo unitario) de la matriz Σ, es decir, d vectores linealmenteindependientes, x1, x2, . . . ,xd, tales que xi

′xi = 1 para todo i = 1, 2, . . . , n y conxi

′xj = 0 si i 6= j, verificando ademas que ∃λi ∈ R tal que Σxi = λixi (condicion deser un autovector). Ademas, 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) (facilmente simulable a partir de Z1, Z2,. . ., Zd ∼ N (0, 1) independientes), se tiene que Λ1/2Z ∈ Nd (0,Λ), siendo

Λ1/2 =

λ

1/21 0 · · · 0

0 λ1/22 · · · 0

......

. . ....

0 0 · · · λ1/2d

.

Multiplicando por la izquierda por la matriz H, se tiene

HΛ1/2Z ∈ Nd (0,HΛH′) ∈ Nd (0,Σ)

Finalmente, basta sumar el vector µ para obtener

X = µ + HΛ1/2Z ∈ Nd (µ ,Σ)

Una vez obtenidos los autovalores, λ1, λ2, . . ., λd, y los autovectores asociados de lamatriz Σ, que determinan las columnas de la matriz H, el algoritmo procederıa comosigue:

1. Simular Z1, Z2, . . . , Zd ∼ N (0, 1) independientes.

2. Para i = 1, 2, . . . , d hacer Yi =√

λiZi.

3. Devolver X = µ + HY.

6.4. METODOS PARA SIMULAR LA DISTRIBUCION NORMAL MULTIVARIANTE73

Ejemplo 6.4.1 Dar un algoritmo para simular la distribucion

N2

((13

),

(2,36 −0,48−0,48 2,64

))Para encontrar los autovalores y autovectores de Σ resolvemos det (Σ− λI) = 0,

es decir,∣∣∣∣ 2,36− λ −0,48−0,48 2,64− λ

∣∣∣∣ = 0 ⇔ (2,36− λ) (2,64− λ)− (−0,48)2 = 0

⇔ λ2 − 5λ + 6 = 0 ⇔ λ =5±

√52 − 6 · 42

que ofrece como soluciones λ1 = 3 y λ2 = 2.Para encontrar autovectores de modulo 1 correspondientes a esos autovalores no

tenemos mas que resolver los sistemas (Σ− λiI) µ = 0 para i = 1, 2 imponiendo lacondicion de modulo igual a 1, es decir x2

1 + x22 = 1. Ası, resulta

Σ− λ1I =

(-0.64 -0.48-0.48 -0.36

)= -0.04

(16 1212 9

), luego

(Σ− λ1I) x = 0 ⇔ x2 = −4

3x1, pero como x2

1 + x22 = 1, se tiene

25

9x2

1 = 1, luego x1 =3

5y x2 = −4

5(tambien es solucion si cambiamos ambos de signo);

Σ− λ2I =

(0.36 -0.48-0.48 0.64

)= 0.04

(9 −12−12 16

), luego

(Σ− λ2I) x = 0 ⇔ x2 =3

4x1, pero como x2

1 + x22 = 1, se tiene

25

16x2

1 = 1, luego x1 =4

5y x2 =

3

5

De esta forma, la matriz H resulta, entre otras posibilidades,

H =

(3/5 4/5−4/5 3/5

)=

(0.6 0.8-0.8 0.6

).

Ahora

Y = Λ1/2Z =

( √3 0

0√

2

)(Z1

Z2

)=

( √3Z1√2Z2

)y finalmente,

X = µ + HY =

(1 + 0.6Y1 + 0.8Y2

3− 0.8Y1 + 0.6Y2

)Ası, el algoritmo resultarıa1. 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)′.

74CAPITULO 6. SIMULACION DE DISTRIBUCIONES MULTIDIMENSIONALES

Capıtulo 7

Diseno de experimentos desimulacion

En el presente capıtulo se abordaran algunas de las cuestiones mas importantes ala hora de disenar un estudio de simulacion:

Similitudes y diferencias entre la simulacion y la experimentacion sobre el sistemareal.

Simulacion estatica y dinamica. Simulacion por eventos y por cuantos.Tecnicas de reduccion de la varianza.Problemas de estabilizacion y dependencia.

7.1. Diferencias y similitudes con la experimenta-

cion real

Teniendo en cuenta que la simulacion es la tecnica consistente en la realizacionde experimentos de muestreo sobre un modelo construido a partir de un sistema real,es obvio que la simulacion necesitara de gran cantidad de tecnicas estadısticas paraobtener las muestras (muestreo) y para analizar los resultados obtenidos por la experi-mentacion artificial (estimacion, intervalos de confianza, contrastes de hipotesis, etc.).Por todo ello, puede afirmarse que, en general, en cuanto a la utilizacion de tecnicasestadısticas es muy similar a la propia experimentacion sobre el sistema real.

Entre las diferencias caben destacar las siguientes:

1. La utilizacion de tecnicas de estimacion puntual, construccion de intervalos deconfianza y contrastes de hipotesis es algo menos frecuente en la simulacion queen la experimentacion real. La razon es que algunos de los parametros (los decontrol) ya son conocidos en la simulacion y, por tanto, no es necesario hacerinferencia sobre ellos, aunque sı sobre los de salida (que miden, de alguna forma,el comportamiento del sistema).

75

76 CAPITULO 7. DISENO DE EXPERIMENTOS DE SIMULACION

2. La simulacion suele hacer un uso mucho mas intensivo de tecnicas de ordenaciony optimizacion. Esto es debido a que, en el contexto de la simulacion, es factiblecomparar un gran numero de escenarios (entre los que se desea optimizar, porejemplo) en muy poco tiempo, cosa que se da muy raramente en la experimenta-cion real.

3. Una peculiaridad de la simulacion es que casi siempre es posible comparar dis-tintas estrategias sobre las mismas muestras simuladas (simplemente utilizandola misma semilla en la simulacion, convenientemente planificada).

7.2. Simulacion estatica y dinamica

La simulacion se dice estatica si en el modelo no juega ningun papel el transcursodel tiempo mientras que es dinamica si el tiempo es una de las variables importantesdel modelo.

La simulacion estatica se usa muy frecuentemente por los estadısticos para com-probar el comportamiento comparativo de diversos metodos estadısticos alternativospara tamanos muestrales finitos (complementando los estudios teoricos, casi siempreasintoticos).

En la simulacion dinamica, normalmente, se trata de ir analizando los distintosestados por los que va pasando un sistema que evoluciona en el tiempo. Esto provoca,en general, un mayor coste computacional y problemas de estabilizacion y dependencia.

Existen dos grandes tipos de simulacion dinamica: la simulacion continua, en la quese supone que el sistema cambia de estado constantemente, y la simulacion discreta,para la cual los cambios se producen en ciertos instantes de tiempo singulares.

7.3. Simulacion por eventos y por cuantos

Con el nombre de simulacion por eventos, o asıncrona, designamos el tipo de si-mulacion dinamica discreta en la cual se controla la variable tiempo moviendola hastala ocurrencia del siguiente suceso (o evento). Esto implica la necesidad de controlarminuciosamente cual es dicho proximo suceso: saber cuales son los posibles sucesos enun futuro inmediato y cual de ellos es el mas inmediato.

La simulacion por cuantos, responde a una filisofıa totalmente diferente. Se trata deexaminar el sistema (que evoluciona en el tiempo) dejando pasar pequenos intervalosde tiempo de longitud δ, fija, (llamados cuantos) en los cuales se supone que, a lo sumo,un solo suceso puede producirse.

En general, la simulacion por eventos es exacta y de mas difıcil implementacion,pero de mucha mas rapida ejecucion que la simulacion por cuantos. Sin embargo estaultima es muchas veces la unica posibilidad factible en la simulacion dinamica continua.

7.4. TECNICAS DE REDUCCION DE LA VARIANZA 77

7.4. Tecnicas de reduccion de la varianza

Existen multitud de tecnicas encaminadas a reducir la varianza en un estudio de si-mulacion o bien a tratar de estimarla. Algunas de ellas son el uso de numeros aleatorioscomunes, la utilizacion de variables antiteticas, la estratificacion, el uso de variablesde control, el metodo Jackknife, los metodos de remuestreo (destacando entre ellos elmetodo bootstrap), etc.

En general conviene tener en cuenta que si uno de los objetivos de la simulacion esprecisamente estimar la variabilidad, no conviene utilizar estas tecnicas de reduccionde la varianza. Estas son aplicables normalmente cuando la simulacion pretende ofrecerrespuestas, lo mas precisas posibles, solo sobre cantidades medias.

7.4.1. Numeros aleatorios comunes

Supongase que se desea comparar dos estrategias distintas, X e Y, mediante N re-peticiones (o “trials”) de un experimento de simulacion, de las cuales se han obtenidolos valores numericos de las variables de salida X1, X2, . . . , XN , para la primera, e Y1,Y2, . . ., YN , para la segunda.

Si la comparacion se realiza estimando la diferencia de las medias de las variablesde salida para ambas estrategias, E (X)−E (Y ) = E (X − Y ) , puede usarse X −Y =

1

N

N∑i=1

(Xi − Yi), cuya varianza viene dada por

V ar(X − Y

)=

1

N2

N∑i=1

V ar (Xi − Yi) =1

NV ar (X1 − Y1)

=1

N(V ar (X1) + V ar (Y1)− 2Cov (X1, Y1))

Usando los mismos numeros aleatorios (es decir, repitiendo los calculos con la mismasemilla) en las variables de entrada de la simulacion, se tiene que Cov (Xi, Yi) > 0 y,por tanto,

V ar(X − Y

)≤ 1

N(V ar (X1) + V ar (Y1))

que es la varianza que tendrıa X − Y en caso de haber usado muestras independientespara cada estrategia.

78 CAPITULO 7. DISENO DE EXPERIMENTOS DE SIMULACION

7.4.2. Variables antiteticas

Supongase ahora que se desea evaluar el resultado de una unica estrategia (sincompararla con ninguna otra alternativa). Despues de N repeticiones de la simulacion,tendremos N valores numericos de las variables X1, X2, . . ., XN , procediendo a esti-

mar la media E (X) teorica mediante X =1

N

N∑i=1

Xi. Dado que este es un estimador

insesgado, su precision puede medirse mediante V ar(X).

Si las variables son independientes, la V ar(X)

=1

N2

N∑i=1

V ar (Xi), mientras que,

en general, se tiene

V ar(X)

=1

N2

(N∑

i=1

V ar (Xi) + 2∑i<j

Cov (Xi, Xj)

)

Una forma de utilizar esta ultima expresion para reducir la varianza del estimadorconsiste en hacer que cada variable con ındice impar sea negativamente correlada conla variable de ındice siguiente (siendo independiente de las demas).

La forma mas sencilla de conseguir esto cuando se utiliza el metodo de inversionpara simular las Xi consiste en tomar un valor U ∼ U (0, 1) para simular X2i−1 y elvalor 1−U para simular X2i, su variable antitetica, para i = 1, 2, . . . , N

2(si N es par).

El procedimiento es mas complicado con otros metodos de simulacion distintos del deinversion.

7.4.3. Estratificacion

En ocasiones conviene dividir la poblacion en estratos obteniendo, del total de lamuestra, cierto numero de observaciones de cada estrato (proporcional a la probabilidadde cada uno).

Ejemplo 7.4.1 (muestreo estratificado de una exponencial) Supongase que, da-da una muestra de tamano 10 de una poblacion con distribucion exp (1) , se desea es-timar la media poblacional.

Si pretendemos evitar que, por puro azar, exista alguna zona, en la que la exponen-cial toma valores, no representada en la muestra de 10 datos, podemos proceder de lasiguiente forma:

Tomemos tres estratos, por ejemplo, el del 40% de valores menores, el siguiente50% de valores intermedios y el 10% de valores mayores para esta distribucion.

Como el algoritmo de inversion (optimizado) para simular la exp (1) es1. Generar U ∼ U (0, 1).2. Hacer X = − ln U.

la forma de garantizar que obtengamos 4, 5 y 1 valores, repectivamente, en cada unode los tres estratos consiste en elegir U ∈ [0,6, 1), en el primer caso, U ∈ [0,1, 0,6), enel segundo y U ∈ [0, 0,1) para el tercer estrato.

7.4. TECNICAS DE REDUCCION DE LA VARIANZA 79

Dado que, en principio, no hay nada que nos garantice que, simulando diez valoresU1, U2, . . . , U10 ∼ U (0, 1), las proporciones de los estratos son las deseadas (aunquesı lo sean en media) una forma de proceder consiste en rechazar valores de U quecaigan en uno de esos tres intervalos cuando el cupo de ese estrato este ya lleno. Esto

es lo mismo que simular 4 valores de U |U∈[0,6,1)d= U [0,6, 1) para el primer estrato, 5

valores de U |U∈[0,1,0,6)d= U [0,1, 0,6) para el segundo y uno de U |U∈[0,0,1)

d= U [0, 0,1) para

el tercero.El algoritmo con esta estratificacion serıa como sigue:

1. Generar Ui ∼ U (0, 1) para i = 1, 2, . . . , 10.2. Si i ≤ 4 entonces hacer Ui = 0,4 · Ui + 0,6.3. Si 4 < i ≤ 9 entonces hacer Ui = 0,5 · Ui + 0,1.4. Si i = 10 entonces hacer Ui = 0,1 · Ui.

5. 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,229504si i = 5, 6, 7, 8, 9 y V ar (X10) = 1. Como consecuencia,

V ar(X)

=1

102

10∑i=1

V ar (Xi) = 0,022338

que es bastante menor que 0.1, la varianza en el caso de muestreo aleatorio simple noestratificado.

80 CAPITULO 7. DISENO DE EXPERIMENTOS DE SIMULACION

7.5. Problemas de estabilizacion y dependencia

Ambas cuestiones suelen plantearse en la simulacion dinamica. Los problemas deestabilizacion estan relacionados con el hecho de que, en ocasiones, el sistema evolu-ciona en el tiempo de tal forma que tiene una distribucion estacionaria que se suponede partida pero que puede ser muy sensible a las condiciones iniciales con las que secomience la simulacion. En tal caso resulta conveniente el transcurso de cierto perıodode tiempo (denominado perıodo de estabilizacion) durante el cual los resultados obte-nidos para las variables de salida son ignorados y cuyo unico objeto es conseguir quese estabilice la distribucion de probabilidad.

Ejemplo 7.5.1 Supongamos el siguiente modelo de simulacion:

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 unerror aleatorio con distribucion N (0, 1). Parece evidente que, en un modelo como este,es crucial el valor de la condicion inicial X0 correspondiente al origen de tiempos. Enotras palabras, tomando para X0 un valor muy lejano a aquellos mas probables bajo ladistribucion estacionaria (por ejemplo, X0 = 100), es intutitivo que se necesitarıa deuna etapa inicial considerable para llegar a alcanzar valores estacionarios. Por ejemplo,suponiendo que los εt fuesen cero (que aunque no es cierto, realmente son bastantepequenos en relacion con el valor 100), se obtendrıa la siguiente sucesion de valores:X0 = 100, X1 = 73, X2 = 54,1, X3 = 40,87, X4 = 31,7, X5 = 25,4, . . . El perıodo deestabilizacion serıa mucho menor si se partiese de un valor inicial mas cercano a 10.

Los problemas de dependencia son aquellos derivados del hecho de que frecuente-mente (de nuevo en modelos de simulacion dinamica) las distintas variables de salidade la simulacion 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 menormedida). Esto afecta fundamentalmente a la precision de los estimadores construidoscon observaciones de las mismas. Una forma de atenuar este efecto serıa considerarobservaciones de las mismas en instantes temporalmente lejanos (donde se supone quela dependencia es mucho mas debil). En ocasiones, mas que atenuar este efecto se tratade estimar la precision del estimador resultante. Obviamente, para ello ha de tenerseen cuenta la dependencia.