Vous êtes sur la page 1sur 80

Simulaci

on estadstica

26 de enero de 2009

Captulo 1
Introducci
on
1.1.

Conceptos b
asicos

La simulacion es la tecnica que consiste en realizar experimentos de muestreo sobre


el modelo de un sistema.
Un modelo no es mas que un conjunto de variables junto con ecuaciones matematicas que las relacionan y restricciones sobre dichas variables.
La modelizacion es una etapa presente en la mayor parte de los trabajos de investigacion (especialmente en las ciencias experimentales). En muchas ocasiones, la realidad
es bastante compleja como para ser estudiada directamente y es preferible la formulacion de un modelo que contenga las variables mas relevantes que aparececen en el
fenomeno en estudio y las relaciones mas importantes entre ellas.
Frecuentemente, la resolucion de los problemas que se pretenden abordar puede realizarse por procedimientos analticos sobre el modelo construido (normalmente mediante el uso de herramientas matematicas como las de resolucion de ecuaciones ordinarias
o de ecuaciones diferenciales, el calculo de probabilidades, etc.). En otras circunstancias
dicha resolucion analtica no es posible (o es tremendamente complicada o costosa) y
es preferible una aproximacion de la solucion mediante simulacion.

1.2.

Experimentaci
on real y simulaci
on

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

CAPITULO 1. INTRODUCCION

Razones como esas (y algunas otras) pueden indicar la ventaja de trabajar con un
modelo del sistema real.
La estadstica es la ciencia que se preocupa de como estimar los parametros y contrastar la validez de un modelo a partir de los datos observados del sistema real que se
pretende modelizar.
Una vez se ha construido un modelo, la primera tentativa debe ser siempre tratar
de resolver analticamente el problema que nos ocupa. En caso de ser esto posible, la
solucion es exacta (a menudo la resolucion tambien es rapida).
En caso contrario puede recurrirse a la simulacion que involucrara mucha labor
de procesado. Gracias a la gran potencia de calculo de los computadores actuales los
programas de simulacion pueden ofrecer una solucion aproximada rapida en la mayor
parte de los problemas susceptibles de ser modelados.

Ejemplo 1.2.1 Supongase que se quiere calcular la probabilidad de aparici


on de exactamente dos caras en tres lanzamientos de una moneda.
La experimentacion sobre la situaci
on real consistira en repetir numerosas veces
los 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 este
modelo, se tratara de calcular P (X = 2). En este caso la resoluci
on analtica es factible
y muy sencilla
   2   1
1
3
3
1
= = 0. 375
P (X = 2) =
2
2
8
2
La simulacion consistira en obtener n
umeros aleatorios (en ordenador) para replicar artificialmente los tres lanzamientos en gran cantidad de ocasiones, observando la
frecuencia relativa con la que aparecen exactamente dos caras.
Ejemplo 1.2.2 Supongase el siguiente juego: un jugador lanza una moneda (abonando
un euro por cada lanzamiento) hasta que el n
umero de caras supere en tres al n
umero de
cruces obtenidas. En ese momento el jugador recibe 10 unidades monetarias. Resulta
rentable jugar?
De nuevo aqu la experimentacion real es muy lenta.
La modelizacion puede realizarse de nuevo gracias a la teora de la probabilidad. En
esta ocasi
on, sin embargo, la resolucion analtica sera complicada (salvo que se tengan
conocimientos de cadenas de Markov).
Parece, por tanto, conveniente una aproximaci
on mediante simulaci
on. Se tratara
de ir replicando artificialmente el lanzamiento de la moneda simulando un gran n
umero
de posibles partidas y examinando la perdida o ganancia media.


1.3. VENTAJAS E INCONVENIENTES DE LA SIMULACION

1.3.

Ventajas e inconvenientes de la simulaci


on

Ventajas:
1. En casos en los que la resolucion analtica no puede llevarse a cabo.
2. Cuando existen medios de resolver analticamente el problema pero dicha resolucion 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 experimentacion destructiva.
5. En ocasiones en las que la experimentacion sobre el sistema es posible pero no
etica.
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 difcil conocer la precision de la simulacion, especialmente en lo relativo
a la precision del modelo formulado.

CAPITULO 1. INTRODUCCION

Captulo 2
Generaci
on de n
umeros
pseudoaleatorios uniformes en (0. 1)
2.1.

Introducci
on

Casi todos los metodos de simulacion se basan en la posibilidad de generar n


umeros
aleatorios con distribucion U (0. 1). Hasta el gran desarrollo de los ordenadores los
n
umeros aleatorios se obtenan por procedimientos experimentales (loteras, ruletas) y
se almacenaban en tablas. En la actualidad estos n
umeros son generados por ordenador
y se denominan pseudoaleatorios ya que, en realidad, todos los n
umeros de la sucesion
que se genera son predecibles a partir del primero, llamado semilla. En cualquier caso,
todo generador de n
umeros pseudoaleatorios mnimamente aceptable debe comportarse
como si se tratase de una muestra genuina de datos independientes de una U (0. 1).

2.1.1.

Propiedades deseables de un generador de n


umeros pseudoaleatorios

Para poder utilizar sin reservas un generador de n


umeros pseudoaleatorio este debe
satisfacer los contrastes estadsticos mas habituales en este contexto: los de aleatoriedad
(los contrastes de rachas o los de saltos), los de independencia (como los basados en
autocorrelaciones, el test de Ljung-Box, el contraste de pares seriados, etc) y los de
bondad de ajuste a una U (0. 1) (entre ellos es test chi-cuadrado y el de KolmogorovSmirnov). Tambien existen otros contrastes especficos que tratan de indagar a la vez
sobre varios de los aspectos anteriores. Entre ellos destacamos el contraste del poker y
el del coleccionista.

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

Ademas de estas propiedades de tipo estadstico existen otros requisitos computacionales. Unos y otros pueden resumirse en la siguiente lista.
Requisitos deseables para un generador
1. Producir muestras seg
un 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.

M
etodo de los cuadrados medios

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


1. Se toma un n
umero entero inicial, x0 , llamado semilla, de 2n cifras.
2. Se eleva al cuadrado obteniendo un n
umero de 4n cifras (completando, quiza, con
ceros a la izquierda).
3. Se considera x1 el n
umero entero formado por las 2n cifras centrales.
4. Se eleva al cuadrado x1 y se repite el proceso anterior tantas veces como sea
preciso.
5. Finalmente se consideran los n
umeros 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 x21 = 98|1684|64
x2 = 1684 x22 = 02|8358|56 x3 = 8358 x23 = 69|8561|64
x4 = 8561 x24 = 73|2907|21 x5 = 2907 x25 = 08|4506|49
De esta forma, los n
umeros pseudoaleatorios en (0. 1) son
u0 = 0. 4122 u1 = 0. 9908 u2 = 0. 1684 u3 = 0. 8385
u4 = 0. 8561 u5 = 0. 2907
Siguiendo, de nuevo, con n = 2, pero tomando como semilla x0 = 3708, se obtiene
x0
x2
x4
x6
x8

= 3708
= 1300
= 6100
= 4100
= 6100

x20
x22
x24
x26

= 13|7492|64
= 01|6900|00
= 37|2100|00
= 16|8100|00

x1
x3
x5
x7

= 7292
= 6900
= 2100
= 8100

x21
x23
x25
x27

= 56|1300|64
= 47|6100|00
= 04|4100|00
= 65|6100|00

As pues, como x8 = x4 , los valores u4, u5 , u6 , u7 se repetir


an cclicamente de forma
indefinida. Este tipo de fenomenos de ciclo corto son su mayor inconveniente.


2.3. METODO
DE LEHMER

2.3.

M
etodo de Lehmer

El metodo consiste en los siguientes pasos:


1. Se toma como semilla un n
umero entero, x0 , de n cifras.
2. Se elige otro entero, c, de k cifras. Suele tomarse k < n.
3. Se calcula x0 c, n
umero de, a lo sumo, n + k cifras.
4. Se separan las k cifras de la izquierda de x0 c y al n
umero formado por las n
cifras restantes se le resta el que forman esas k cifras de la izquierda, dando lugar
a x1 .
5. Se repite este proceso tantas veces como sea necesario.
6. Se devuelven los valores ui =

xi
.
102n

Ejemplo 2.3.1 Tomando n = 4, k = 2, x0 = 4122 y c = 76, se obtiene


x0
x1
x2
x3
x4
x5

= 4122
= 3241
= 6292
= 8145
= 8959
= 0816

x0 c = 31|3272
x1 c = 24|6316
x2 c = 47|8192
x3 c = 61|9020
x4 c = 68|0884
x5 c = 06|2016

3272 31 = 3241
6316 24 = 6292
8192 47 = 8145
9020 61 = 8959
0884 68 = 0816
2016 06 = 2010

De esta forma
u0 = 0. 4122 u1 = 0. 3241 u2 = 0. 6292 u3 = 0. 8145
u4 = 0. 8959 u5 = 0. 0816
Todava en el caso de que n = 4 y k = 2, pero con x0 = 2000 y c = 50, se tiene
x0 c = 10|0000 y as x1 = 0000 10 = 10 < 0. Este es precisamente uno de
los peores inconvenientes de este metodo: la aparici
on de iterantes negativos. Tambien
aparecen, con frecuencia, ciclos cortos (en particular, el cero es un valor absorbente de
este generador).

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

10

2.4.

M
etodos congruenciales

Se basan en la idea de considerar una combinacion lineal de los u


ltimos k enteros
generados y calcular su resto al dividir por un entero fijo m. El metodo congruencial
lineal simple que procede como sigue:
1. Elegir un n
umero entero positivo m (normalmente en relacion con el tipo de
enteros que se va a usar) y otros dos n
umeros enteros, a y c, tales que 0 < a < m
y 0 c < m.
2. Fijar la semilla x0 , un valor entero inicial que cumpla 0 x0 < m.
3. Obtener de forma recurrente
xn = (axn1 + 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 = (5xn1 + 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 = (5xn1 + 2) mod 8 y as,
x0 = 5 x1 = 3 x2 = 1 x3 = 7 x4 = 5
x0 = 2 x1 = 4 x2 = 6 x3 = 0 x4 = 2
donde ambos ciclos son de longitud cuatro.
Finalmente dejando el mismo valor de m pero eligiendo a = 5 y c = 5, se tiene
xn = (5xn1 + 5) mod 8, que conduce a
x0
x5
x0
x5

=5
=2
=2
=3

x1
x6
x1
x6

=6
=7
=7
=4

x2
x7
x2
x7

=3
=0
=0
=1

x3
x8
x3
x8

=4
=5
=5
=2

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

x4 = 1

x4 = 6


2.4. METODOS
CONGRUENCIALES

2.4.1.

11

Generadores congruenciales de ciclo m


aximo

Ademas de las propiedades estadsticas deseables para cualquier generador, una


cuestion importante para los generadores congruenciales (como se ha visto en los ejemplos previos) es la de garantizar que el ciclo del generador sea maximo (o, cuando
menos, muy elevado). En la practica tratara de tomarse el ciclo igual o muy proximo
al n
umero de enteros de tipo largo del lenguaje en cuestion.
En general, se define la longitud del ciclo (o perodo) de un generador de n
umeros
pseudoaleatorios uniformes, como el menor n
umero entero positivo, p, que cumple que
existe un n0 natural tal que xi+p = xi para todo i = n0 . n0 + 1, . . .
En el caso de un generador congruencial mixto el maximo valor para el perodo es m.
Tambien puede demostrarse que si un generador congruencial tiene ciclo maximo
para cierta eleccion de la semilla, entonces lo tiene para cualquier otra.
Un resultado que sirve para caracterizar que propiedades deben cumplir los parametros de un generador congruencial para que tenga perodo maximo es el teorema de
Knuth (1969).
Teorema 2.4.1 (Knuth) Las siguientes condiciones son necesarias y suficientes para
que un generador congruencial con par
ametros m, a y c, tenga perodo m
aximo (i.e.
p = m).
1. c y m son primos entre s (i.e. m.c.d. (c, m) = 1).
2. a 1 es m
ultiplo de todos los factores primos de m (i.e. a 1mod g, para todo
g factor primo de m).
3. Si m es m
ultiplo de 4, entonces a 1 tambien lo ha de ser (i.e. m 0 mod 4
a 1 mod 4).
A la luz del teorema de Knuth, es facil darse cuenta porque solo el tercero de los
generadores del ejemplo anterior tena perodo optimo.

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

12

2.4.2.

Generadores congruenciales de algunos lenguajes y bibliotecas de rutinas

En ordenadores binarios es muy com


un elegir m = 2 o m = 2 1, donde
depende del tama
no de palabra (tpicamente m sera el mayor entero representable en
el ordenador o una unidad mayor que el).
En los generadores con m = 2 resulta especialmente facil expresar las condiciones
del teorema de Knuth de forma mucho mas sencilla:
As, al ser m una potencia de 2, su u
nico factor primo es el 2 y, por tanto la primera
condicion equivale a que c sea impar. Para 2 se tiene que m es m
ultiplo de 4 y,
por tanto la tercera condicion impone que a 1 tambien lo sea. Por u
ltimo, de nuevo
por ser el 2 el u
nico factor primo de m, la segunda condicion pedira que a 1 fuese
par, lo cual ya es consecuencia de que sea m
ultiplo de 4.

En resumen, si m = 2 , con 2, el generador congruencial tiene perodo maximo


si y solo s c es impar y a = 4k + 1, siendo k un n
umero natural.
Algunos generadores habituales en lenguajes con enteros (con signo) de 36 bits
corresponden con las elecciones
m = 235
m = 235

a = 27 + 1 c = 1
a = 515
c=1

Todos ellos tienen tienen perodo 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
m = 231 1
m = 231 1
m = 232

a = 314159269
a = 16807
a = 630360016
a = 663608941

c = 453805245
c=0
APL, IMSL y SIMPL/I
c=0
Algunos FORTRAN
c=0
Ahrens y Dieter (1974)

Aunque solo el primero tiene perodo maximo, los demas lo tienen muy elevado.
El lenguaje C (bajo UNIX) posee un generador congruencial de n
umeros pseudoa48
leatorios de 48 bits: el drand48. Sus parametros son m = 2 , a = 25214903917 y
c = 11. La semilla se establece mediante la sentencia srand48() introduciendo como
argumento un entero de 32 bits que corresponde a los 32 bits mas significativos de x0
(entero de 48 bits). Los 16 bits de menor orden se toman siempre coincidentes con el
n
umero (decimal) 13070. Los parametros a y c se pueden modificar por el usuario desde
otras rutinas del C. Los valores por defecto para estas cantidades ofrecen un generador
de perodo 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

2.4.3.

13

Otros generadores congruenciales

Generador congruencial lineal m


ultiple
xn = (a1 xn1 + a2 xn2 + + ak xnk + c) mod m
Generadores congruenciales no lineales
xn = g(xn1 ) mod m
Knuth(1981): xn = g(xn1 ) mod m, con g(x) = ax2 + bx + c.
Generadores congruenciales matriciales
xn = (Axn1 + C) mod m
con xn un vector ddimensional y A y C matrices d d. Los elementos de los vectores
y de las matrices son enteros entre 1 y m 1.

2.5.

Medidas estadsticas de la calidad de un generador de n


umeros pseudoaleatorios

La mayora de los contrastes estadsticos para estudiar la calidad de un generador


de n
umeros aleatorios se basan en medir posibles discrepancias (en alg
un sentido)
de las muestras generadas por el metodo en cuestion con respecto a las hipotesis de
aleatoriedad, independencia y ajuste a una distribucion U (0. 1).
En casi todos los casos se acaba recurriendo a un contraste de tipo chi-cuadrado
en el que se comparan las frecuencias esperadas, ei , de ciertas modalidades, con las
observadas, oi , mediante el estadstico
D=

k
X
(oi ei )2
i=1

ei

que seguira, aproximadamente, una distribucion 2k1 , 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 estadstico que, para una variable discreta o
de tipo cualitativo, compara la frecuencia de aparicion de cada una de las modalidades
observadas (ni ) con las frecuencias esperadas, en base a la distribucion de probabilidad
especificada (ei ).
Concretamente, para una variable discreta con k modalidades, el contraste se basa
en el estadstico sugerido por Pearson en el a
no 1900:
Q=

k
X
(ni ei )2
i=1

ei

14

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

cuya distribucion aproximada es la de una 2k1 , siempre que la distribucion especificada


sea la correcta.
Comentarios:
1. Es muy corriente aplicar el test chi-cuadrado a
un en casos en los que la distribucion de la variable no esta totalmente especificada sino que depende de alg
un
parametro que, por tanto, habra de ser estimado (por ejemplo el caso en que se suponga que la variable en concreto sigue una distribucion de Poisson y resta por especificar
su parametro ). En estos casos la distribucion aproximada del test ha de ser corregida
umero de
para incorporar esta informacion pasando a ser una 2kr1 , siendo r el n
parametros estimados por maxima verosimilitud.
2. El contraste chi-cuadrado se utiliza habitualmente incluso cuando la variable
objeto de estudio es continua. En este caso, dicha variable ha de ser agrupada en
intervalos de clase.
3. Una limitacion, bastante recomendable en la practica, es la de no llevar a cabo
el contraste chi-cuadrado cuando la frecuencia esperada de alguna clase sea menor que
5. Aquellos casos en que esta condicion falla pueden tratarse agrupando varios valores
distintos 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.
Est
udiese la bondad de ajuste de dichos datos a una distribuci
on U [a, b], realizando
el contraste chi-cuadrado.
En primer lugar se estiman por maxima verosimilitud los par
ametros de la distribuci
on uniforme, obteniendose respectivamente el mnimo y el m
aximo muestral: a
= 25

y b = 55. Dividiendo el intervalo [25, 55] en cuatro clases de igual longitud se obtiene
la siguiente tabla:
clases
ni
[25, 320 5) 3
[320 5, 40) 5
[40. 470 5) 8
[470 5, 55] 4
Total
20

ei (ni ei )2 /ei
5
00 8
5
0
5
10 8
5
00 2
20
20 8

En este caso el valor del estadstico es Q = 20 8, que corresponde a un nivel crtico


de p = 00 09426, para una distribucion chi-cuadrado con 4 2 1 = 1 grado de libertad,
con lo cual aunque puede aceptarse la hip
otesis de que la distribuci
on poblacional es
0
0
0
uniforme con = 0 01 o = 0 05, no se aceptara con = 0 1.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR

2.5.2.

15

Contraste de Kolmogorov-Smirnov

A diferencia del procedimiento anterior, el test de Kolmogorov-Smirnov esta especialmente dise


nado para el contraste de ajuste a distribuciones continuas.
El contraste de Kolmogorov-Smirnov esta basado en la distribucion del estadstico
Dn :
Dn = sup |Fn (x) F (x)|
xR

que representa la maxima discrepancia, en vertical, entre la funcion de distribucion


emprica
N
umero de observaciones Xi x
Fn (x) =
n
y la teorica (F ).
Dn = max Dn,i = max{|Fn (x(i) ) F (x(i) )|, |Fn (x(i) ) F (x(i) )|}
i=1,2,...,n

Ejemplo 2.5.2 Contrastar que la muestra de datos de ocupaci


on de disco provenga de
una distribucion N (40. 3).
x(i)
25
30
31
33
35
40
42
45
46
47
49
50
55

F (x(i) ) Fn (x(i) ) Fn (x(i) )


0
00 05
0
0
0
0
0 00043
0 10
0 05
0
0
0 00135
0 15
00 10
00 00982
00 20
00 15
00 04779
00 30
00 20
0
0
05
0 40
00 30
00 74751
00 50
00 40
00 95221
00 60
00 50
0
0
0 97725
0 70
00 60
00 99019
00 80
00 70
0
0
0 99865
0 85
00 80
00 99957
00 95
00 85
1
1
00 95

Dn,i
00 05
00 09957
00 14865
00 19018
00 25221
00 2
00 34751
00 45221
00 37725
00 29019
00 19865
00 14957
00 05

Se obtiene Dn = 00 45221, cuyo nivel crtico es p < 00 01, que indica un claro rechazo
de la hipotesis establecida.

2.5.3.

Contrastes de independencia

Una de las hipotesis estadsticas mas importantes asumidas en toda la inferencia


parametrica clasica es que la muestra no es mas que una realizacion de un conjunto de
variables independientes.
M
etodos gr
aficos
Como paso previo a la utilizacion de metodos cuantitativos siempre sera ilustrativo
representar graficamente los datos frente al tiempo, es decir, secuencialmente seg
un su
orden de recogida (Xi frente al ndice i).

16

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

Las situaciones de dependencia se corresponden con graficas demasiado estables o


demasiado cambiantes, es decir, o bien muy planas, o bien en continuos dientes de sierra
o zigzagueantes. Por el contrario, los casos de ausencia de dependencia se identificaran
mediante graficas moderadamente cambiantes.
Otro tipo de graficas que tambien permite detectar situaciones de dependencia son
las graficas en las que se representa cada valor de la muestra frente al valor anteriormente observado (Xi+1 frente a Xi ).
Otra forma de estudiar si hay dependencia en la muestra es mediante el calculo de
los coeficientes de autocorrelacion. Del mismo modo que el coeficiente de correlacion
lineal mide, de alguna forma, la presencia o ausencia de dependencia entre las variables
en cuestion, pueden definirse toda una serie de coeficientes de autocorrelaci
on
que, en ese mismo sentido, miden la dependencia entre los datos observados con cierto
n
umero de instantes de diferencia.
Dada una muestra X1 , X2 , . . . , Xn , se define el coeficiente de autocorrelacion muestral de orden uno como el valor
Pn
(Xi X)(Xi1 X)
r(1) = i=2 Pn
2
i=1 (Xi X)
que expresa, de alguna manera, la correlacion entre cada dato y el observado un instante antes.
En general, el coeficiente de autocorrelacion de orden k (o a k retardos), se define
por
Pn
r(k) =

i=k+1 (Xi X)(Xik


Pn
2
i=1 (Xi X)

X)

Una forma grafica de visualizar los coeficientes de autocorrelacion es el llamado


correlograma. En el se representan, para los primeros retardos, unas barras con altura
igual 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 positiva
se caracterizara por la presencia de muchos coeficientes de correlacion sustancialmente
mayores que cero, mientras que la negativa vendra dada por autocorrelaciones de signo
alternado, siendo la del primer retardo negativa. El caso de independencia se corresponde con autocorrelaciones cercanas a cero.
Bajo la hipotesis de independencia, cada coeficiente de autocorrelacion muestral,
r(k), tiene distribucion lmite normal de media cero y varianza 1/n. Este hecho permite,
por s mismo, el contrastar la hipotesis sobre si el coeficiente de autocorrelacion teorico
es cero.
De hecho, es habitual incluir en el correlograma bandas de confianza a una distancia
2/ n del eje horizontal, de manera que se consideraran siginificativamente distintos de
cero aquellas autocorrelaciones que sobresalgan de los lmites.
Otra posibilidad es incluir bandas de amplitud variable, teniendo en cuenta que, en
el supuesto de que sean no nulas las primeras k 1 autocorrelaciones (1 , . . . , k1 ), la
P
2
1 + k1
j=1 j
varianza de r(k) es
.
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 ejemplo
ESSSEESEESES, con E: error en un dispositivo y S: dispositivo sin error).
Definici
on 2.5.1 Una racha es una sucesi
on de valores consecutivos repetidos que
este flanqueada por valores adyacentes distintos.
En el ejemplo anterior las rachas seran E, SSS, EE, S, EE, S, E, S.
Independientemente de lo probable que sea observar los valores concretos de la variable, es obvio que el n
umero total de rachas (o las longitudes de las mismas) constituye
una medida de lo aleatoriamente que estan repartidos los posibles valores en cuestion
a lo largo de la muestra observada. Demasiadas rachas implican excesiva alternancia
de valores (dependencia negativa), mientras que pocas rachas indican largas sucesiones
de valores contiguos repetidos (dependencia positiva).
El contraste del n
umero total de rachas
Considerese una muestra de tama
no n correspondiente a una variable con dos posibles resultados, de manera que existen n1 observaciones de un tipo y n2 iguales al
otro valor de la variable en cuestion (n1 + n2 = n). Si llamamos R al n
umero total
de rachas observadas en la muestra, pueden obtenerse la media y la varianza de esta
variable aleatoria (condicionadas a que hay n1 y n2 de elementos de cada tipo):
E(R) = 1 +
V ar(R) =

2n1 n2
n

2n1 n2 (2n1 n2 n)
n2 (n 1)

Cuando el tama
no muestral n tiende a infinito, de forma que ademas n1 /n tienda a
una
constante,
la
distribuci
on de la variable R se puede aproximar por la distribucion


p
N E(R), V ar(R) .
Aunque originalmente el test de las rachas esta dise
nado para una distribucion con
solo dos posibles valores, suele aplicarse a aquellos casos en los que la distribucion en
cuestion es continua codificando las observaciones con los valores + o , seg
un el dato
en cuestion quede por arriba o por abajo de la mediana muestral.

18

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

El contraste de rachas ascendentes y descendentes


Cuando la variable en cuestion presenta una distribucion de tipo continuo, a pesar
de que el test de las rachas por encima o por debajo de la mediana se puede usar,
existe una contraste, basado en el n
umero de cierto tipo de rachas, que trata de hacer
un uso mas intensivo de la continuidad de la variable. Se trata del contraste basado en
el n
umero total de rachas ascendentes o descendentes:
Para cada par de datos consecutivos se anota un signo + si estan en orden ascendente y si estan en orden descendente. Con el conjunto de datos (n en total) se
consigue formar una tira de n 1 signos + o , sobre los cuales se cuenta el n
umero
total de rachas R.
La distribucion del estadstico R esta tabulada para tama
nos muestrales pequen
os (normalmente para n < 25), mientras que, cuando el n
umero de datos, n, excede
de
los
valores
tabulados,
puede
usarse
una
aproximaci
on por la distribucion


p
N (2n 1)/3, (16n 29)/90 .
El contraste de Ljung-Box
Existen distintos procedimientos para contrastar la independencia mediante la realizacion de un contraste sobre si los primeros m coeficientes de autocorrelacion son
cero. Uno de los mas utilizados a tal efecto es el de Ljung-Box, que utiliza para ello el
estadstico
m
X
r(k)2
Q = n(n + 2)
nk
k=1
que se distribuye, aproximadamente, seg
un una 2m1 .
Ejemplo 2.5.3 Considerense los datos de espacio de disco duro ocupado por usuario: 35, 45, 47, 50. 31, 30. 25, 33, 35, 40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.
Contrastar la independencia usando los test de las rachas y el de Ljung-Box.
Test del n
umero de rachas
Dada la muestra original, se clasifican ahora los datos de la misma en funci
on de
0
que se hallen por encima o por debajo de la mediana, Me = (42 + 45)/2 = 43 5 :
+ + + + + + + + + +
El n
umero de rachas es R = 8 y n1 = n2 = 10. En las tablas puede encontrarse el
p-valor: p = 00 256. Por tanto, se acepta la independencia.

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR

19

Test de las rachas ascendentes y descendentes


La secuncia de signos + y - correspondiente a los datos de la muestra es:
+ + + + + + + + + + + +
El n
umero de rachas es R = 9. Bajo independencia, la probabilidad de que el n
umero
0
de rachas ascendentes y descendentes sea menor o igual que 9 es 0 0255. De aqu se
deduce que el nivel crtico del contraste es p = 00 051. Este valor plantea serias dudas
sobre la hipotesis de independencia: tendramos una aceptaci
on muy justa de dicha
0
0
hip
otesis con nivel = 0 05 pero ya no con = 0 06.
Test de Ljung-Box
Tomemos m = 4. Los cuatro primeros coeficientes de autocorrelaci
on son r(1) =
0
0
0
0
0 52550. r(2) = 0 33034, r(3) = 0 09887 y r(4) = 0 06706.
A partir de estos valores, el estadstico de Ljung-Box resulta Q = 90 44, cuyo pvalor esta comprendido entre 00 01 y 00 025, como se puede ver en las tablas de una
chi-cuadrado con tres grados de libertad.
En resumen, parece que existen razones para rechazar la independencia.

2.5.4.

El contraste del coleccionista

Este procedimiento requiere fijar un entero positivo, M , y discretizar los valores


generados, X1 , X2 , . . . , Xn , de la forma dM Xi e+1, donde dxe denota la parte entera de
x. As se consigue una sucesion de enteros aleatorios cuyos valores estan comprendidos
entre 1 y M . Ahora se procede (como un coleccionista) a contabilizar cual es el n
umero,
Q, (aleatorio) de valores a generar hasta que se completa la coleccion de todos los
enteros entre 1 y M .
Obviamente, bajo las hipotesis de aleatoriedad y distribucion U (0. 1), cada posible
entero 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 forma
podemos utilizar los valores calculados de las probabilidades
P (Q = M ) , P (Q = M + 1) , . . .
para calcular las frecuencias esperadas de cada clase y confrontarlas con las observadas
va el estadstico chi-cuadrado.

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

20

2.5.5.

Contrastes de salto

Dados dos n
umeros y tales que 0 < 1, los contrastes de saltos tratan
de examinar, para cada valor generado, Xi , si se cumple Xi , anotando, en ese
caso, un 1 (0 en caso contrario). En estas condiciones, la probabilidad de que aparezca
un 1 es p = y la de que aparezcan j ceros desde la aparicion de un uno hasta la
del siguiente uno es pj = p (1 p)j , j = 0. 1, 2, . . . (que corresponde a una distribucion
geometrica). 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 n
umeros pseudoaleatorios generada se consideran bloques de T
valores consecutivos. Cada uno de los bloques puede presentar una cualquiera de las T !
posibles ordenaciones de esos T valores. Ademas, de ser el generador adecuado, cada
posible ordenacion ocurrira con igual probabilidad: T1! . El test consiste en observar
una gran n
umero de bloques y comparar las frecuencias observadas de cada posible
ordenacion con las esperadas mediante el test chi-cuadrado. Las elecciones mas comunes
son 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 cual
de las siguientes posibilidades se da:
1. Un mismo entero se repite cinco veces (abreviadamente, AAAAA).
2. Un mismo entero se repite cuatro veces y otro distinto aparece una vez (AAAAB).
3. Un entero se repite tres veces y otro distinto se repite dos (AAABB).
4. Un entero se repite tres veces y otros dos distintos aparecen una vez cada uno
(AAABC).

2.5. MEDIDAS ESTADISTICAS DE LA CALIDAD DE UN GENERADOR

21

5. Un entero se repite dos veces, otro distinto se repite tambien dos veces y un tercer
entero 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 las
probabilidades de estas modalidades:
P (AAAAA) = 0. 0001, P (AAAAB) = 0. 0045, P (AAABB) = 0. 0090.
P (AAABC) = 0. 0720. P (AABBC) = 0. 1080. P (AABCD) = 0. 5040.
P (ABCDE) = 0. 3024.
Es frecuente que las clases AAAAA y AAAAB se agrupen a la hora de aplicar el
test chi-cuadrado, ya que, en caso contrario, la restriccion habitual ei 5 llevara a
que 0. 0001 n5 5, es decir, n 250 000.
Poker 2
Algo tambien bastante habitual es usar conjuntos de cinco enteros (como en el caso
anterior) pero definiendo las categoras seg
un el n
umero de enteros distintos de entre
los cinco observados. As
P (1 entero diferente) = 0. 0001, P (2 enteros diferentes) = 0. 0135,
P (3 enteros diferentes) = 0. 1800. P (4 enteros diferentes) = 0. 5040.
P (5 enteros diferentes) = 0. 3024,
procediendo frecuentemente a agrupar las dos primeras modalidades.
Poker 3
A menudo se consideran conjuntos de cuatro enteros. En tal caso,
P (AAAA) = 0. 001, P (AAAB) = 0. 036, P (AABB) = 0. 027,
P (AABC) = 0. 432, P (ABCD) = 0. 504,
siendo tambien bastante habitual el agrupar las dos primeras categoras.

22

2.5.8.

DE NUMEROS

CAPITULO 2. GENERACION
UNIFORMES EN (0. 1)

El contraste de pares seriados

La idea consiste en fijar un entero M 2 y considerar los enteros dM Xi e + 1,


tomar ahora estos valores apareados y utilizar el contrate chi-cuadrado considerando
como categoras los posibles pares (i, j) tales que i, j {1, 2, . . . , M }. As se medira la
discrepancia entre la frecuencias observadas en estas categoras y las esperadas, iguales
todas a n2 M12 . 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 realizacion de una u
nica prueba. Es decir, se toma un n
umero, n (normalmente grande), de
valores obtenidos por el generador y se realiza el contraste evaluando el estadstico y
comparandolo con el punto crtico de una chi-cuadrado para decidir si se acepta o rechaza la hipotesis (independencia, ajuste, aleatoriedad). En realidad tiene mucho mas
sentido la realizacion de un gran n
umero de pruebas, evaluando en cada una el valor
del estadstico y, o bien observar que la proporcion de rechazos del test se aproxima al
valor nominal fijado (normalmente = 0. 01 o = 0. 05), o mas precisamente aplicando, de nuevo, el contraste chi cuadrado para comprobar el ajuste de la distribucion del
estadstico a la chi-cuadrado especificada bajo la hipotesis nula.

Captulo 3
M
etodos universales para la
simulaci
on de variables continuas
En lo que sigue se expondran dos de los metodos generales para simular distribuciones continuas: el metodo de inversion y el de aceptacion/rechazo. Ambos son aplicables
a gran n
umero de contextos siempre que la distribucion que se desea simular tenga ciertas caractersticas. En ambos casos la herramienta indispensable es alg
un metodo de
generacion de n
umeros pseudoaleatorios uniformes en (0,1).

3.1.

El m
etodo de inversi
on

Es el metodo universal por antonomasia para simular distribuciones continuas. Tambien a veces se denota metodo de Montecarlo. Esta basado en el siguiente resultado
teorico.
Teorema 3.1.1 (de inversi
on) Sea X una variable aleatoria con funci
on de distribuci
on F , continua e invertible. Entonces, la variable aleatoria U = F (X), transformada

de la original mediante su propia funci


on de distribuci
on, tiene distribuci
on U (0, 1).
Recprocamente, si U U (0, 1) entonces la variable F 1 (U ) tiene funci
on de distribucion F (la misma distribuci
on que la de X).
Demostraci
on: Denotando por G la funcion de distribucion de U y dado un valor
u (0, 1), se tiene


G (u) = P (U u) = P (F (X) u) = P X F 1 (u) = F F 1 (u) = u
Por otra parte es obvio que G (u) = 0 si u 0 y G (u) = 1 si u 1, con lo cual G
es la 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 cualquier
variable continua con funcion de distribucion F invertible:
Algoritmo (m
etodo de inversi
on)
1. Generar U U (0, 1).
2. Devolver X = F 1 (U ).
Ejemplo 3.1.1 Dar un algoritmo, basado en el metodo de inversi
on, para simular la
distribuci
on exponencial de parametro > 0.
La funci
on de densidad de una exp () es

ex si x 0
f (x) =
0
si x < 0
y su funci
on de distribucion:

F (x) =

1 ex
0

si x 0
si x < 0

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


x = F 1 (u) F (x) = u 1 ex = u
ln (1 u)
.
1 u = ex x =

Como consecuencia, el algoritmo sera


1. Generar U U (0, 1).
)
.
2. Devolver X = ln(1U

que, en versi
on simplificada, resulta:
0. Hacer L = 1/.
1. Generar U U (0, 1).
2. Devolver X = L ln U
3. Repetir los pasos 1-2 tantas veces como se precise.

3.1. EL METODO
DE INVERSION

3.1.1.

25

Ventajas e inconvenientes del m


etodo de inversi
on

La ventaja mas importante del metodo de inversion es que, en general, es aplicable


a cualquier distribucion continua. No obstante presenta algunos inconvenientes.
Inconvenientes del m
etodo de inversi
on
1. En ocasiones la funcion de distribucion no tiene una expresion explcita (por
ejemplo para la distribucion normal).
2. A veces, a
un teniendo una expresion explcita para F (x), es imposible despejar
x en la ecuacion F (x) = u (es decir, encontrar una expresion explcita para
F 1 (u)).
3. A
un siendo posible encontrar x = F 1 (u), puede ocurrir que esta expresion sea
complicada y conlleve una gran lentitud de calculo.
El primero de los inconvenientes expuesto puede, a veces, subsanarse mediante el
uso de aproximaciones de la distribucion en cuestion o mediante tabulaciones de la
misma. El segundo suele abordarse mediante la utilizacion de metodos numericos para
la resolucion aproximada de la ecuacion F (x) = u. El mayor problema practico que
esto conlleva es la necesidad de resolver numericamente una ecuacion cada vez que se
desee generar un nuevo n
umero aleatorio que siga esa distribucion (sin que los calculos
hechos para el anterior valor simulado sean de ayuda).

3.1.2.

Algunas distribuciones que pueden simularse por el m


etodo de inversi
on

En lo que sigue u representa un n


umero pseudoaleatorio en el intervalo (0,1).

Distribuci
on exponencial (Exp(), > 0)
Funci
on de densidad: f (x) = ex , x 0.
Funci
on de distribuci
on: F (x) = 1 ex , x 0.
ln (1 u)
,
Inversa de la distribuci
on: F 1 (u) =

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

Distribuci
on de Cauchy
1
, x R.
(1 + x2 )
1 arctan x
Funci
on de distribuci
on: F (x) = +
, x R.
2


Inversa de la distribuci
on: F 1 (u) = tan u 12 .
Forma simplificada de la inversa: S(u) = tan u.
Funci
on de densidad: f (x) =


26 CAPITULO 3. METODOS
UNIVERSALES PARA VARIABLES CONTINUAS
Distribuci
on triangular en (0. a)
2
x
1
, 0 < x < a.
a
a


x2
2
x
, 0 < x < a.
Funci
on de distribuci
on: F (x) =
a
2a

Inversa de la distribuci
on: F 1 (u) = a 1 1 u .
Forma simplificada de la inversa: S(u) = a (1 u) .
Funci
on de densidad: f (x) =

Distribuci
on de Pareto (a > 0 , b > 0)
aba
, x b.
xa+1
 a
b
, x b.
Funci
on de distribuci
on: F (x) = 1
x
b
.
Inversa de la distribuci
on: F 1 (u) =
(1 u)1/a
b
Forma simplificada de la inversa: S(u) = 1/a .
u
Funci
on de densidad: f (x) =

Distribuci
on de Weibull ( > 0 , > 0)

Funci
on de densidad: f (x) = x1 e(x) , x 0

Funci
on de distribuci
on: F (x) = 1 e(x) , x 0.
( ln (1 u))1/
1
Inversa de la distribuci
on: F (u) =
.

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

La distribuci
on de Laplace o doble exponencial (Lap(, ) , > 0)
Funci
on de densidad: f (x) = 2 e|x| , para todo x R.
Funci
on de distribuci
on:

1 (x)
e
si x <
2
F (x) =
1 (x)
1 2e
si x
Inversa de la distribuci
on:

ln 2u

+
si u < 1/2
1

F (u) =

ln 2(1 u) si u 1/2

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


Algoritmo basado en el m
etodo de inversi
on
1. Generar U, V U (0. 1).
ln U
2. Hacer T =
.

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


hacer X = T .

3.1. EL METODO
DE INVERSION

3.1.3.

27

Inversi
on aproximada

Como se comento anteriormente, en casos en los que no es posible determinar una


expresion explcita para F (x) o en los que no se puede hallar la de su inversa, puede optarse por encontrar expresiones sencillas que aproximen razonablemente bien la
funcion F 1 (u).
Ejemplo 3.1.2 A continuacion se detalla la aproximaci
on encontrada por Odeh y
Evans para la distribucion normal est
andar.
Estos autores consideran la funci
on auxiliar

A 2 ln v

,
2 ln v
g (v) =
B
2 ln v
siendo A (x) =

4
X

ai x y B (x) =

i=0

4
X

bi xi , con

i=0

a0 = 0. 322232431088
a2 = 0. 342242088547
a4 = 0. 0000453642210148
b1 = 0. 588581570495
b3 = 0. 103537752850

a1 = 1
a3 = 0. 0204231210245
b0 = 0. 0993484626060
b2 = 0. 531103462366
b4 = 0. 0038560700634

La aproximacion consiste en utilizar g (1 u) en lugar de F 1 (u) para los valores de


/ [1020 , 1 1020 ] (que s
olo ocurre
u [1020 , 12 ] y g (u) si u [ 12 , 1 1020 ]. Para u
20
con una probabilidad de 2 10 ) la aproximaci
on no es recomendable.
Algoritmo de Odeh y Evans
1.
2.
3.
4.

Generar U U (0, 1) .
Si U < 1020 o U > 1 1020 entonces volver a 1.
Si U < 0. 5 entonces hacer X = g (1 U ) sino hacer X = g (U ) .
Devolver X.


28 CAPITULO 3. METODOS
UNIVERSALES PARA VARIABLES CONTINUAS

3.2.

El m
etodo de aceptaci
on/rechazo

Es un metodo universal alternativo al de inversion que esta adaptado al caso en


que, aunque se desconozca una formula explcita para F (x) o sea difcil de resolver
F (x) = u, s se disponga de una expresion (preferiblemente sencilla) para la funcion
de 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 funci
on de densidad f y sea U otra variable aleatoria, independiente de la anterior, con
distribuci
on 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)}
Recprocamente, si dada una funci
on 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 funci
on de densidad f .
El teorema anterior establece la equivalencia entre la simulacion de densidades unidimensionales y la simulacion de variables bidimensionales con distribucion uniforme
sobre el hipografo de c f (x) (el conjunto de puntos del plano que quedan por debajo
de la grafica de c f pero por encima del eje OX). La idea del algoritmo consistira en
utilizar el recproco en el teorema para simular valores de ese tipo de distribuciones
bidimensionales y luego tomar la primera componente. Para simular valores de esa
distribucion bidimensional se usa tambien el teorema en sentido directo aplicandolo a
otra densidad auxiliar g, facil de simular.
Supongase que se desea simular una distribucion con densidad f y que no es factible
hacerlo por el metodo de inversion. Considerese otra distribucion, con densidad g, facil
de simular, de forma que exista cierta constante c > 0 tal que
f (x) c g (x) , para todo x R
Teniendo en cuenta esta 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 del
teorema 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 uniforme
sobre Af . Tecnicamente hablando estamos afirmando que la distribucion condicionada
(T, Y ) |(T,Y )Af es uniforme sobre Af . Finalmente la segunda parte del teorema permite
obtener una variable con densidad f sin mas que tomar la primera componente del par
obtenido.

3.2. EL METODO
DE ACEPTACION/RECHAZO

29

De forma mas detallada, el metodo constara 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 distribucion uniforme en Acg .
3. Comprobar si (T, Y ) Af . En caso afirmativo, hacer X = T , en caso contrario,
volver al paso 1.
El par de valores (T, Y ) se obtiene simplemente simulando U U (0, 1) y definiendo
Y = c U g (T ). Ademas, la condicion (T, Y ) Af que hay que comprobar en el u
ltimo
paso equivale a Y f (T ). Teniendo todo esto en cuenta el algoritmo procedera como
sigue:
Algoritmo de aceptaci
on/rechazo
1. Repetir
1.1. Generar U U (0, 1) y T con densidad g.
2. Hasta que c U g (T ) f (T ) .
3. Devolver X = T.
Ejemplo 3.2.1 (densidades acotadas en un intervalo cerrado) Sea f una funci
on de densidad con soporte en un intervalo cerrado [a, b] (i.e., {x/f (x) 6= 0} = [a, b])
de tal forma que M > 0 tal que f (x) M x (es decir, f es acotada superiormente).
En este caso puede tomarse como densidad auxiliar g la de una U [a, b].
En efecto, tomando c = M (b a) y teniendo en cuenta que
 1
si x [a, b]
ba
g (x) =
0
si x
/ [a, b]
c
se tiene que f (x) M = ba
= c g (x), x [a, b]. As pues, el algoritmo quedara
como sigue:
1. Repetir
1.1. Generar U, V U (0, 1).
1.2. Hacer T = a + (b a) V .
2. Hasta que M U f (T ).
3. Devolver X = T .


30 CAPITULO 3. METODOS
UNIVERSALES PARA VARIABLES CONTINUAS

3.2.1.

Eficiencia del algoritmo de aceptaci


on/rechazo

Dado que el algoritmo de aceptacion/rechazo repite los pasos 1-2 un n


umero aleatorio 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 elegirse
en el algoritmo. As, debido al hecho de que f (x) c g (x), se tiene
Z
Z
1 = f (x) dx c g (x) dx = c,
luego c 1. Puede demostrarse ademas que si c = 1 entonces f y g seran densidades
correspondientes a la misma distribucion (iguales salvo en un conjunto de probabilidad
cero) y, por tanto, si g es facil de simular igualmente facil lo sera f . As pues, se tiene
c > 1.
La comprobacion que aparece en el paso 2 del algoritmo es c U g (T ) f (T ). La
probabilidad de aceptacion de esta condicion es
R
f (x) dx
1
area (Af )
=R
= .
p=
area (Acg )
c
c g (x) dx
De esta se obtiene la probabilidad de rechazo: q = c1
. El flujo del algoritmo es
c
aleatorio y el n
umero 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 como
el n
umero de pruebas necesarias hasta obtener el primer exito). En tales circunstancias
el n
umero medio de repeticiones de los pasos 1-2 es
E (N ) =

1
=c
p

luego c puede interpretarse como el n


umero medio de comparaciones necesarias (o de
repeticiones de los pasos 1-2, o de pares de variables (T, U ) que se necesitan generar)
hasta obtener un valor simulado de la variable X. Es obvio, por tanto, que cuanto mas
cercano a 1 sea el valor de c mas eficiente sera el algoritmo.

3.2.2.

Elecci
on de c

Una vez fijada la densidad g es obvio que el mejor valor de c (que denotaremos por
copt ) se obtiene al encontrar el mas peque
no n
umero real c que verifica f (x) c g (x),
es decir
c

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

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


f (x)
.
x/g(x)>0 g (x)

c max

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


f (x)
.
x/g(x)>0 g (x)

copt = max

3.2. EL METODO
DE ACEPTACION/RECHAZO

31

Ejemplo 3.2.2 (Simulacion de la normal mediante la doble exponencial) Se


trata de simular la distribucion normal est
andar, cuya funci
on de densidad viene dada
por
x2
1
f (x) = e 2 , para todo x R,
2
mediante aceptacion/rechazo, utilizando como densidad auxiliar la doble exponencial de
par
ametro 1 (o distribucion de Laplace, Lap(0,1) o Lap(1)), cuya funci
on de densidad
viene dada por
1
g (x) = e|x| , para todo x R.
2
El valor optimo para c es
2

f (x)
copt = max
= max
xR g (x)
xR

x
1 e 2
2
1 |x|
e
2

r
=

2
max e(x) =
xR

2 maxxR (x)
e
,

donde (x) = x2 + |x|. Dado que esta funci


on es simetrica, continua en toda la recta
real y diferenciable tantas veces como se desee salvo en x = 0, bastar
a encontrar su
m
aximo absoluto en el intervalo [0. ]:
x > 0 0 (x) = x + 1, 00 (x) = 1;
{x > 0. 0 (x) = 0} x = 1
00 (1) < 0.
De esta forma, alcanza un m
aximo relativo en x = 1 y otro de identico valor en
x = 1. Resulta facil demostrar que ambos son m
aximos absolutos (por los intervalos
de crecimiento y decrecimiento de la funci
on). Consiguientemente,
r
r
r
2 (1)
2 1/2
2e
e
=
e =
' 1. 3155.
copt =

Como consecuencia el algoritmo procedera del siguiente modo:


1. Repetir
1.1. Generar U, V, W U (0, 1).
1.2. Si W < 0. 5 hacer
 2 T = ln V , sino hacer T = ln V .
2. Hasta que U exp T2 |T | + 21 1.
3. Devolver X = T .
La condicion que hay que comprobar para decidir si hay aceptaci
on o rechazo surge
de que
r
r
 2

 2


T
T
1
g (T )
2e
exp
|T | = U exp
|T | +
.
cU
=
U
2
2
2
2
f (T )

Dado que el n
umero medio de repeticiones de los pasos 1-2 hasta que se obtiene un
valor simulado
on en el paso 2 es
p para X es c ' 1. 3155 y la probabilidad de aceptaci
p = 1/c = 2e
= 0. 76017, puede decirse que el algoritmo es bastante eficiente.


32 CAPITULO 3. METODOS
UNIVERSALES PARA VARIABLES CONTINUAS

3.2.3.

Elecci
on de la densidad auxiliar g

Como se ha comentado anteriormente, un aspecto importante que influye en la


eficiencia del metodo de aceptacion/rechazo es el valor de la constante c. Conocida
la densidad auxiliar g sabemos como elegir c de forma que el algoritmo sea lo mas
eficiente posible, sin embargo es obvio que algunas densidades auxiliares seran mejores
candidatas que otras para conseguir un metodo eficiente.
En general, cuanto mas parecida sea la forma de g a la de f , mas peque
no es el
mnimo c necesario para conseguir que la grafica de c g quede por encima de la de
f . De todas formas, el problema de encontrar la densidad auxiliar g que ofrezca un
c (optimo) lo menor posible, no tiene solucion. Mejor dicho, tiene la solucion trivial
g = f , que es absolutamente in
util para la implementacion del algoritmo, pues si f era
difcil de simular, no podemos tomar como g la propia f (ya que sera igual de difcil
de simular).
Una solucion intermedia al problema de elegir una funcion de densidad auxiliar,
g, adecuada consiste en tomar cierta familia parametrica de densidades que presenten
un abanico de formas entre las que haya alguna que se parece bastante a la de f :
{g / }, encontrar el valor de c optimo para cada densidad de esa familia:
c = max
x

f (x)
g (x)

y, finalmente, elegir el mejor valor del parametro, 0 , en el sentido de ofrecer el menor


posible c :
f (x)
.
c0 = mn max
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 de
aceptacion/rechazo, para simular la normal est
andar, la doble exponencial de par
ametro
> 0 (Lap(0,) o Lap()) ,
g (x) =

|x|
e
, para todo x R.
2

Si pretendemos encontrar el mejor valor de , en terminos de eficiencia del algoritmo, debemos calcular
2

f (x)
=
g (x)

c0 = mn max
>0 xR

x
1 e 2
2
mn max |x|
>0 xR
e
2

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


2

c =

x
1 e 2
2
max |x|
xR
e
2

1
=

2
1
max e (x) =
xR

2 maxxR (x)
e
,

donde (x) = x2 + |x|. De forma totalmente similar a aquel caso puede probarse
que alcanza su maximo absoluto en los puntos x = , siendo dicho valor m
aximo
2
() = 2 . Como consecuencia,
1
c =

2 () e 2
e
=

2
.

Ahora debemos encontrar 0 tal que c0 = mn>0 c :


dc
=
d

2 e 2 e

2
2

r
=

2e

2
2

(2 1)
,
2

r
2
2
2
d2 c
2 [e 2 (2 1) + e 2 2]2 e 2 (2 1) 2
=
d2

4
r 2
r 2
2 e 2 (5 + 3 23 + 2)
2 e 2 (5 3 + 2)
=
,
=

4
dc
= 0 = 1, ya que > 0
d
r

d2 c
2e
=2
> 0, luego = 1 es un punto de mnimo.

2
d =1

De esto se deduce que la mejor doble exponencial, como densidad auxiliar en el


algoritmo, es la correspondiente a = 1, la usada en el ejemplo anterior.


34 CAPITULO 3. METODOS
UNIVERSALES PARA VARIABLES CONTINUAS

3.2.4.

El m
etodo de aceptaci
on/rechazo squeeze

Esta variante del metodo de aceptacion/rechazo es de gran utilidad en aquellas situaciones donde, para llevar a cabo la comprobacion de la condicion cU 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 aprietena f (i.e. h1 (x) f (x) h2 (x), x), de manera que reduzcamos considerablemente el n
umero de evaluaciones de esta. As se conseguira un algoritmo mas
eficiente, pues reemplazaramos las evaluaciones de f por evaluaciones de h1 o de h2
(mucho menos costosas computacionalmente).
Algoritmo de aceptaci
on/rechazo squeeze
1. Generar U U (0, 1) y T con densidad g.
2. 2.1 Si c U g (T ) h1 (T ) , hacer X = T. (Aceptaci
on r
apida)
2.2 Si c U g (T ) > h2 (T ) , volver a 1. (Rechazo r
apido)
3. Si no se verifica ninguna de las condiciones del paso 2, comprobar
la condici
on c U g (T ) f (T ) .
Si c U g (T ) f (T ) , hacer X = T. Si no, volver a 1.
Ejemplo 3.2.4 (Simulaci
on squeezede la distribuci
on normal) Utilizando el
teorema de Taylor, puede comprobarse que la funci
onn de densidad de la normal est
andar
x2
1
f (x) = e 2 , para todo x R,
2
2

1 x2 +
1 x

puede apretarsepor h1 (x) = 2 y h2 (x) =


2
2

x4
8

Captulo 4
M
etodos universales para la
simulaci
on de variables discretas
En lo que sigue se expondran algunos metodos generales para simular distribuciones discretas. En concreto, se estudiara el metodo de la transformacion cuantil en su
version clasica y con etiquetados optimos, el metodo de las tablas gua y los metodos
de truncamiento.
El problema consiste en simular una variable aleatoria discreta, X, que toma los
valores x1 , x2 , . . ., xn (. . .), con probabilidades pj = P (X = xj ), j = 1, 2, . . . , n (. . .).
Un planteamiento estandar, equivalente al anterior, consiste en resolver la cuestion de
simular la variable aleatoria I que toma los valores 1, 2, . . . , n (. . .) con las mismas
probabilidades pj , j = 1, 2, . . . , n (. . .).

4.1.

El m
etodo de la transformaci
on cuantil

Este metodo es una adaptacion del metodo de inversion (valido para el caso continuo) a distribuciones discretas. En primer lugar veamos porque el metodo de inversion
no es aplicable directamente en este caso.
Dada una variable aletoria discreta, su funcion de distribucion viene dada por
X
F (x) =
pj , x R.
xj x

Supondremos (por comodidad) que los valores que toma la variable ya estan ordenados y nos ce
niremos al caso finito. De esta forma tendramos: x1 < x2 < < xn .
En este caso es obvio que el resultado dado por el teorema de inversion no es cierto
ya 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


CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

36

De la misma forma, dada una variable U U (0, 1), tampoco puede ser cierto que
F (U ) tenga la misma distribucion que X. De hecho F 1 no esta definida de forma
u
nica pues las funciones de distribucion discretas no tienen inversa (para casi todo u
[0, 1] no hay ning
un x tal que F (x) = u y para un n
umero 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
1

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 situaciones en las que F no es invertible.
Teorema 4.1.1 (de inversion generalizada) Sea X una variable aleatoria con funci
on de distribucion F y con funcion cuantil Q. Si U es una variable aleatoria con
distribuci
on U (0, 1), la variable Q (U ) tiene la misma distribuci
on que X.
Demostraci
on: 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)
Z F (x)
= P (F (x) U ) =
du = F (x) .
0

A partir del teorema de inversion generalizada puede obtenerse un algoritmo general


para simular cualquier distribucion de probabilidad discreta. Es el llamado algoritmo
de transformacion cuantil o de inversion generalizada.
Algoritmo de transformaci
on cuantil
1. Generar U U (0, 1).
2. Devolver X = Q (U ).
La mayor dificultad en la implementacion del algoritmo radica en el calculo de
( , j
)
X
Q (U ) = nf {x R/F (x) U } = nf xj
pi U
i=1

= xk , tal que

k
X
i=1

pi U >

k1
X
i=1

pi .


CUANTIL
4.1. EL METODO
DE LA TRANSFORMACION

37

Todo el problema radica, por tanto, en encontrar el valor, k, de la variable, I, que


guarda las etiquetas, para el cual la funcion de distribucion supera o iguala por primera vez al valor de U . Este valor puede hallarse mediante una b
usqueda secuencial,
utilizando el siguiente algoritmo:
Algoritmo de transformaci
on cuantil con b
usqueda secuencial
1. Generar U U (0, 1).
2. Hacer I = 1 y S = p1 .
3. Mientras U > S hacer
3.1. I = I + 1 y S = S + pI .
4. Devolver X = xI .
Si se desea generar un gran n
umero de valores de la variable X (que es P
lo mas
habitual) puede resultar mas eficiente calcular previamente las cantidades Sj = ji=1 pj
de forma recursiva: S1 = p1 , Sj = Sj1 + pj para j = 2, 3, . . . , n y hacer la comparacion
U > SI en el paso 3 del algoritmo anterior. De esta forma se evita lo que podran ser
calculos repetitivos de las mismas sumas de probabilidades al simular distintos valores
de X.
Ejemplo 4.1.1 (Simulacion de la distribucion de Poisson) T
omese una variable, X, con distribucion de Poisson de par
ametro , que toma los valores x1 = 0,
x2 = 1, . . . con probabilidades
pj = P (X = xj ) = P (X = j 1) =

e j1
, j = 1, 2, . . .
(j 1)!

El algoritmo de inversion con b


usqueda secuencial viene dado por
1. Generar U U (0, 1).
2. Hacer I = 1 y S = e .
3. Mientras U > S hacer
I1
3.1. I = I + 1 y S = S + e (I1)!
.
4. Devolver X = I 1.
Debido a que esta forma de etiquetar los valores de la variable conlleva el desfase
de una unidad en los ndices, es recomendable ajustar el algoritmo para evitar este
efecto.Tambien, para simplificar los c
alculos que aparecen en el paso 3.1, es conveniente
calcular las probabilidades de forma recursiva
P (X = j) =

e j
e j1

=
= P (X = j 1) ,
j!
j (j 1)!
j

As, el algoritmo optimizado es


1. Generar U U (0, 1).
2. Hacer I = 0, p = e y S = p.
3. Mientras U > S hacer
3.1. I = I + 1, p = I p y S = S + p.
4. Devolver X = I.

38

CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

4.1.1.

Eficiencia del algoritmo

Dada la forma del algoritmo general para simular una distribucion discreta mediante
el metodo de la transformacion cuantil utilizando b
usqueda secuencial, es facil probar
que el n
umero de comprobaciones de la forma U > S es precisamente igual a I, el valor
de la variable que contiene las etiquetas. Como el valor de I es aleatorio y variara con
cada ejecucion del algoritmo, una medida de la eficiencia del mismo sera el n
umero
medio de comparaciones del paso 3, es decir,
 Pn
si X toma un n
umero finito (n) de valores
j=1 jpj
P
E (I) =
si X toma un infinitos valores
j=1 jpj
Resulta pues evidente que, como no existe una u
nica forma de etiquetar los valores
que toma la variable en cuestion, habra quiza alg
un etiquetado que ofrezca un menor
n
umero 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 distribuci
on dada por
P (X = 3) = 0. 1, P (X = 5) = 0. 3, P (X = 7) = 0. 6
Tomando x1 = 3, x2 = 5, x3 = 7, se tiene un etiquetado I con distribuci
on
P (I = 1) = 0. 1, P (I = 2) = 0. 3, P (I = 3) = 0. 6
y, por tanto, con media E (I) = 1 0. 1 + 2 0. 3 + 3 0. 6 = 2. 5.
Si, por el contrario, consideramos el etiquetado x01 = 7, x02 = 5, x03 = 3, se tiene que
P (I 0 = 1) = 0. 6, P (I 0 = 2) = 0. 3, P (I 0 = 3) = 0. 1
y as E (I 0 ) = 1 0. 6 + 2 0. 3 + 3 0. 1 = 1. 5.
Se observa que E (I 0 ) es sensiblemente inferior a E (I) y, por tanto, el segundo
etiquetado proporciona un algoritmo m
as eficiente que el dado por el etiquetado l.
Como parece deducirse del ejemplo anterior, un etiquetado sera tanto mejor cuanto
menores sean las etiquetas que se asignen a los valores que tienen mayor probabilidad.
Dicho de otra forma, el etiquetado que se obtiene al ordenar los valores en orden decreciente de probabilidad.
Cuando la variable a simular tiene un n
umero finito de valores: x1 , x2 , . . ., xn , al
implementar el metodo de la transformaci
o
n
cuantil con b
usqueda secuencial
Pn1
Pn directa,
una vez comprobado que U > j=1 pj , no es necesario comprobar U > j=1 pj = 1
(que siempre es falso), sino que generamos xn sin necesidad de efectuar esa comparacion.
Por ese motivo el n
umero medio de comparaciones sera realmente:
n1
X
j=1

jpj + (n 1) pn .


CUANTIL
4.1. EL METODO
DE LA TRANSFORMACION

39

Ejemplo 4.1.3 Consideremos la variable aleatoria discreta con distibuci


on
P (X = 1) = 0. 11, P (X = 3) = 0. 3, P (X = 5) = 0. 25,
P (X = 7) = 0. 21, P (X = 9) = 0. 13.
Tomando el etiquetado x1 = 1, x2 = 3, x3 = 5, x4 = 7 y x5 = 9, el n
umero medio
de comparaciones del algoritmo es
E (I) = 0. 11 1 + 0. 3 2 + 0. 25 3 + (0. 21 + 0. 13) 4 = 2. 82
Mientras que, utilizando el etiquetado
optimo x1 = 3, x2 = 5, x3 = 7, x4 = 9 y
x5 = 1, el n
umero medio de comparaciones se reduce a
E (I) = 0. 3 1 + 0. 25 2 + 0. 21 3 + (0. 13 + 0. 11) 4 = 2. 39

4.1.2.

C
alculo directo de la funci
on cuantil

En ocasiones el metodo de la transformacion cuantil puede acelerarse computacionalmente porque, mediante calculos directos, es posible encontrar el valor de la funcion
cuantil en cualquier U , en un tiempo de computacion mnimo (evitando el bucle de
b
usqueda en el que se van acumulando las probabilidades).
Ejemplo 4.1.4 (la distribuci
on uniforme discreta en {1, 2, . . . , n}) En este caso
la masa de probabilidad viene dada por
pj =

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

De esta forma se tiene


k
X
i=1

pi U >

k1
X
i=1

pi

k
k1
U >
k nU > k 1.
n
n

Esta u
ltima condicion equivale a k = dnU e + 1, siendo dxe la parte entera de x.
El algoritmo resulta:
1. Generar U U (0, 1).
2. Devolver X = dnU e + 1.

40

CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

Ejemplo 4.1.5 (la distribuci


on geom
etrica) La distribuci
on geometrica representa el n
umero 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 funci
on de distribuci
on viene dada por
F (j) =

j
X

p (1 p)i =

i=0

p (1 p)j+1 p
= 1 (1 p)j+1 .
1p1

Como consecuencia se tiene


F (k) U > F (k 1) 1 (1 p)k+1 U > 1 (1 p)k
(1 p)k > 1 U (1 p)k+1
k ln (1 p) > ln (1 U ) (k + 1) ln (1 p)
ln (1 U )
k<
k+1
ln (1 p)
condici
on que equivale a

ln (1 U )
.
k=
ln (1 p)


El algoritmo procedera de la siguiente forma:


0. Hacer a = ln (1 p).
1. Generar U U(0, 1).

2. Devolver X = lnaU .


4.2. ALGORITMOS BASADOS EN ARBOLES
BINARIOS

4.2.

41

Algoritmos basados en
arboles binarios

El uso de arboles binarios permite, en muchos casos, obtener algoritmos mas eficientes que los basados en la b
usqueda secuencial.
Conceptos usados en este contexto:

Arbol:
Grafo orientado, formado por un sistema de nodos conectados entre s mediante
una serie de arcos.
Nodo raz: Nodo del cual parten arcos pero al cual no llegan arcos.
Nodo terminal: Nodo al cual llegan arcos pero del cual no parten arcos.
Profundidad de un nodo: N
umero de nodos que le preceden.

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

Descripcion de un arbol binario

ARCO





aa

aa
a


NODO RA
IZ







@
@












NODO TERMINAL



c
c
c





 


l
l
l
l


42

CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

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


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

pi di

i=1

sea mnima.
Es decir, se tratara de asignar mayor profundidad a los nodos correspondientes a
valores 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 siguiendo


los siguientes pasos:
1. Agrupar los nodos con menor probabilidad en un solo nodo con probabilidad
igual a la suma de ambos.
2. En el 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

4.3.

43

El m
etodo de la tabla gua

El mayor problema computacionalP


del metodo de la
on cuantil consiste
Ptransformaci
k
k1
en encontrar el ndice k que cumple i=1 pi U > i=1 pi . Como ya se ha visto en
los dos u
ltimos ejemplos existen distribuciones para las cuales este valor k se puede
calcular directamente. El metodo de la tabla gua consiste en hacer uso de la rapidez de
calculo de la funcion cuantil para alguna de esas distribuciones (facilmente simulable
mediante el metodo de inversion generalizada) para abreviar al
aximo el n
uP
mero de
Pm
k
k1
comparaciones necesarias a la hora de comprobar la condicion i=1 pi U > i=1
pi .
Considerese una variable aleatoria discreta con masa de probabilidad dada por pj ,
j = 1, 2, . . . , n y defnanse las sumas acumulativas de estas probabilidades
Pj (que no son
otra cosa que los valores que toma la funcion de distribucion), qj = i=1 pi , que, para
evitar calculos innecesarios, deben calcularse de forma recursiva: q0 = 0, qj = qj1 + pj ,
j = 1, 2, . . . , n.
Dada la variable aleatoria I, asociada al etiquetado original (o a otro) la idea del
metodo consiste en construir n subintervalos equiespaciados contenidos en [0, 1] de la
, i ) para i = 1, 2, . . . , n y luego definir los valores de la tabla gua
forma Ji = [ i1
n n
 

i
gi = max j qj <
, para i = 1, 2, . . . , n
n
es decir, para cada intervalo se considera el valor mas alto del ndice entero tal que la
suma acumulada de probabilidades hasta el es menor que el extremo superior de dicho
intervalo.
Ejemplo 4.3.1 Tomemos como ejemplo la distribuci
on 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 gua 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 , es
inmediato detectar en cual de los intervalos Ji ha cado, basta con hacer i = dnU e + 1.
Lo u
nico 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 contrario
deberemos encontrar el primer ndice j = gi 1, gi 2, . . . , 0, para el cual se cumple
U > qj y luego hacer I = j + 1.

44

CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

Algoritmo de simulaci
on mediante una tabla gua
1. Generar U U (0, 1).
2. Hacer i = dnU e + 1.
3. Hacer j = gi .
4. Mientras U qj hacer j = j 1.
5. Devolver I = j + 1.
Por otra parte, los valores de la tabla gua pueden calcularse facilmente de forma
rapida seg
un el siguiente algoritmo:
Algoritmo de c
alculo de la tabla gua
1. Desde i = 1 hasta n 1 hacer gi = 0.
2. Hacer S = 0.
3. Desde i = 1 hasta n 1 hacer
3.1. S = S + pi
3.2. j = dnSe + 1
3.3. gj = i
4. Desde i = 2 hasta n hacer gi = max (gi1 , gi ).

4.3.1.

Eficiencia del algoritmo

Cuando el valor U cae en el intervalo Ji , es obvio que el n


umero medio de comparaciones en el paso 4 del algoritmo es menor o igual que 1 mas el n
umero de valores
qj pertenecientes al intervalo Ji . Utilizando este hecho, la esperanza del n
umero de
comparaciones (N ) puede acotarse mediante
n

1X
1X
(1 + # {j /qj Ji }) = 1 +
# {j /qj Ji }
E (N )
n i=1
n i=1
= 1+

1
n1
# {j /qj [0, 1)} = 1 +
< 2.
n
n

En general, el metodo es aplicable para tablas gua de m elementos (donde m no


tiene porque ser necesariamente igual a n). En tal caso el intervalo [0, 1) se divide en m
subintervalos, pudiendo acotar el n
umero medio de comparaciones mediante E (N )
n
umero exhorbitante de posibles
1+ m . Gracias a este argumento, para variables con un n
valores, pueden utilizarse tablas gua de un n
umero mas moderado de elementos de
forma que la tabla no ocupe demasiada memoria y que, a la vez, el n
umero medio
de comparaciones este acotado por un valor moderado. As, por ejemplo, para una
variable discreta con 1.000.000 de posibles valores podramos utilizar una tabla gua
de solo 10.000 elementos (para que no ocupe demasiado en memoria) obteniendo que
el n
umero medio de comparaciones estara acotado por 101.


4.4. METODO
DE TRUNCAMIENTO

4.4.

45

M
etodo de truncamiento

La idea general de este metodo consiste en hacer uso de una distribucion continua
auxiliar cuya funcion de distribucion se parezca (en cierto sentido que se precisara mas
adelante) 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 toma
los valores 1, 2, . . ., n, con probabilidades p1 , p2 , . . ., pn . En este caso, la funcion de
distribucion de I viene dada por
X
F (x) =
pi .
ix

Supongase, ademas, que tenemos otra variable aleatoria continua, con funcion de distribucion G (x) y ciertos valores a0 = < a1 < a2 < < an1 < an = , tales que
F (i) F (i ) = pi = G (ai ) G (ai1 ), i = 1, 2, . . . , n. Esta u
ltima condicion viene a
garantizar que la probabilidad de que la variable continua caiga en el intervalo [ai1 , 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 valores de la misma y luego transformarlos en valores de la variable I.
Algoritmo de simulaci
on por truncamiento
1. Generar T con distribuci
on G.
2. Encontrar el valor i tal que ai1 T < ai .
3. Devolver I = i.
El metodo se hace especialmente rapido cuando el valor de i puede obtenerse de
forma inmediata a partir del valor de T . Uno de los casos en los que esto es as se da
cuando G (0) = 0 y los valores ai = i, i = 0, 1, . . . , n (o, incluso, infinitos valores ai de
esta forma). En este caso el algoritmo resulta:
Algoritmo de simulaci
on por truncamiento a la parte entera
1. Generar T con distribuci
on G.
2. Hacer I = dT e + 1.

46

CAPITULO 4. METODOS
UNIVERSALES PARA VARIABLES DISCRETAS

Ejemplo 4.4.1 (simulacion de la geom


etrica por truncamiento) La masa de probabilidad 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 funci
on
de distribuci
on dada por

1 ex si x 0
G (x) =
0
si x < 0
Ahora bien,

G (i) G (i 1) = 1 ei 1 e(i1) = e(i1) ei
i1


= p (1 p)i1
= e(i1) 1 e = 1 e e
siempre que tomemos p = 1 e . De esta forma se tiene
G (i) G (i 1) = P (X = i 1) = P (I = i) = pi
y el algoritmo resultara:
0.
1.
2.
3.

Hacer = ln (1 p).
Generar U U (0, 1).
Hacer T = lnU .
Devolver X = dT e.

Este es el mismo algoritmo que se obtena anteriormente cuando razon


abamos c
omo
calcular directamente el valor de la funci
on cuantil para la distribuci
on geometrica.

Captulo 5
M
etodos especficos para la
simulaci
on de distribuciones
notables
En este captulo se estudiaran algoritmos especficos para simular algunas de las
distribuciones de probabilidad mas importantes. La mayora de ellos son aplicaciones
de los metodos generales ya expuestos, quiza con alguna particularidad.

5.1.
5.1.1.

Distribuciones continuas
La distribuci
on uniforme

Una vez generada la variable U con distribucion U (0, 1), la variable X con distribucion 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

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

48

5.1.2.

La distribuci
on 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.

M
etodo de Box-M
uller
Se basa en la siguiente propiedad:
Dadas E exp
(1) y U U (0, 1) , variables aleatorias independientes, las variables
2E cos 2U y 2Esen2U son variables independientes con distribucion N (0, 1) .
Algoritmo de Box-M
uller
1. Generar U, V U (0, 1).
2. Hacer W1 = 2 ln U y W2 = 2V .
3. Devolver X1 = W1 cos W2 , X2 = W1 senW2 .

M
etodo polar
Se basa en una propiedad que da la distribucion condicionada a cierto suceso de un
par de variables transformadas de otras uniformes:
Dadas dos variables independientes V1 y V2 , con distribucion U (1, 1), la distribucion condicionada
s
s
!
2
2
2 ln (V1 + V2 )
2 ln (V12 + V22 )
, V2
V1

2 2
V12 + V22
V12 + V22
V1 +V2 1


es N2

0
0

 

1 0
,
.
0 1

Algoritmo polar
1. Generar U1 , U2 U (0, 1).
2. Hacer V1 = 2U1 1, V2 = 2U2 1 y W = V12 + V22 .
3. Si W > 1 entonces
volver a 1.
q
2 ln W
.
4. Hacer Y =
W
5. Devolver X1 = V1 Y , X2 = V2 Y .

5.1. DISTRIBUCIONES CONTINUAS

49

M
etodo del Teorema Central del Lmite
Como su propio nombre indica, este metodo se deriva a partir del Teorema Central
del Lmite:
Dadas variables aleatorias T1 , T2 , . . ., Tn , independientes e identicamente distribuidas, con media T y varianza T2 finitas, se tiene que
T T
n 'N (0, 1) ,
T
si n es suficientemente grande.
Este teorema puede aplicarse para simular una N (0, 1) tomando variables con otra
distribucion mas facil de simular.
El caso mas habitual es elegir Ti = Ui U (0, 1) y n = 12 (por simplicidad de
calculo). De esta forma, la variable
12

X
U U
n=
Ui 6
U
i=1
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 distribuci
on 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) =

 , para todo x R.
+ (x )2

Un sencillo calculo permite hallar su funcion de distribucion:




1
x
1
F (x) = arctan
+ ,

2
pudiendose implementar el metodo de inversion.
Algoritmo basado en el m
etodo de inversi
on
1. Generar U U (0, 1).
2. Devolver X = tan (U ) + .

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

50

5.1.4.

La distribuci
on exponencial

Se simula utilizando el metodo de inversion.


Algoritmo basado en el m
etodo de inversi
on
1
1. Hacer L = .
2. Generar U U (0, 1).
3. Devolver X = L ln U .

5.1.5.

La distribuci
on 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) =

|x|
e
, para todo x R.
2

Su funcion de distribucion es:



F (x) =

1 (x)
e
2
21 e(x)

si x <
si x

pudiendose generar por el metodo de inversion.


Algoritmo basado en el m
etodo de inversi
on
1. Generar U, V U (0, 1).
ln U
.
2. Hacer T =

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


hacer X = T .

5.1. DISTRIBUCIONES CONTINUAS

5.1.6.

51

Las distribuciones gamma y de Erlang

La distribucion gamma, (a, p), depende de dos parametros: a > 0, parametro de


escala, y p > 0, parametro de forma. La distribucion de Erlang no es mas que la particularizacion de la gamma al caso en que p N.
La funcion de densidad de una (a, p) viene dada por
 ap p1 ax
x e
si x 0
(p)
f (x) =
0
si x < 0
Z
xp1 ex dx es la llamada funcion gamma de Euler.
donde (p) =
0

Puede demostrarse una relacion recursiva para (p) sin mas que hacer una integracion por partes:
Tomando u = xp1 y dv = ex dx, se tiene,
Z
Z
 p1


p1 x
x
p2
x
(p) =
x e dx = x
e

(p

1)
x
e
dx
0
0
0
Z
= (p 1)
xp2 ex dx = (p 1) (p 1)
0

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])
Z
Dado que (1) =

ex dx = 1, la expresion anterior se simplifica cuando p N,

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


Cuando p = 1 la densidad de la gamma es
 ax
ae
si x 0
f (x) =
0
si x < 0
d
es decir, (a, 1) = exp (a).

52

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

Una propiedad muy importante de la distribucion gamma es la llamada propiedad


de reproductividad, que afirma que si se dispone de dos variables aleatorias independientes, X (a, p1 ) e Y (a, p2 ), la suma de ambas tambien es una gamma:
X + Y (a, p1 + p2 ).
Este resultado se puede generalizar, por induccion, a la suma de cualquier n
umero
finito de variables gamma independientes con primer parametro, a, coincidente. En
virtud de ello, si p es entero, dadas X1 , X2 , , Xp variables independientes
Pp con distrinucion exp (a) (o, lo que es lo mismo, (a, 1)) se tiene que su suma, i=1 Xi , tiene
distribucion (a, p).
Como consecuencia, la distribucion de Erlang se puede simular facilmente como
suma de exponeciales:
Algoritmo reproductivo de simulaci
on de la Erlang
1. Desde i = 1 hasta p hacer
1.1. Generar Ui U (0, 1).
1.2. Hacer Xi = PlnaUi .
2. Devolver X = pi=1 Xi .
Este algoritmo puede agilizarse computacionalmente definiendo previamente el valor L = a1 y calculando un u
nico logaritmo (en lugar de p) teniendo en cuenta que
Pp ln Ui
Pp
Q
1
X
=

ln
( pi=1 Ui ). As se tiene:
i
i=1 a
i=1
a
Algoritmo reproductivo de simulaci
on de la Erlang optimizado
1. Hacer L = a1 .
2. Hacer S = 1.
3. Desde i = 1 hasta p hacer
3.1. Generar U U (0, 1).
3.2. Hacer S = S U .
4. Devolver X = L ln S.
Los algoritmos anteriores solo son validos para p entero, siendo ademas muy lentos
si p es grande. Por contra son muy simples y de facil implementacion. Como alternativa
existen otros algoritmos mas complicados que cubren tambien el caso en que p no sea
entero.

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 distribucion
anterior, utilizando para ello la propiedad que afirma que si X (1, p) entonces X/a
tiene distribucion (a, p).
El algoritmo de Tadikamalla (1978), que solo es valido si p > 34 (a = 1), es un
algoritmo de aceptacion/rechazo que usa como densidad auxiliar una doble exponencial
centrada en p 1 y con parametro de escala dado por
=

1
2

=
.

1 + 4p 3

Para la implementacion del algoritmo debe definirse la funcion






( 1) x p1
|x (p 1)| + (p 1) ( + 1)


exp x +
T (x) =
.
(p 1)

Algoritmo de Tadikamalla
1. Generar X, doble exponencial con media p1 y par
ametro de escala
= 1 = 1+24p3 .
2. Si X < 0 entonces volver a 1.
3. Generar U U (0, 1).
4. Si U T (X) entonces devolver X, sin
o volver a 1.

54

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

Como el anterior, el algoritmo de Cheng-Feast (1979) es un algoritmo de aceptacion/rechazo que es valido si p > 1 (a = 1).
Algoritmo de Cheng-Feast
1. Generar U1 , U2 , independientemente,
con distribuci
on

1
p 6p U1
U (0, 1) y hacer V =
.
(p 1)U2
2(U2 1)
1
2. Si
+ V + 2 hacer X = (p 1)V .
p1
V
2 log U2
En otro caso, si
log V + V 1 hacer X = (p 1)V .
p1
3. Volver a 1.
El algoritmo de Best-Ahrens-Dieter (1983) es tambien un algoritmo de aceptacion/rechazo que es valido si p < 1 (a = 1).
Algoritmo de Best-Ahrens-Dieter

pet
.
0. Hacer t = 0,07 + 0,75 1 p y b = 1 +
t
1. Generar U1 , U2 , independientemente, con distribuci
on
U (0, 1) y hacer V = bU1 .
1
2. Si V 1 hacer W = tV p . En otro caso, ir a 3.
2W
2.1. Si U2
, ir a 5.
2+W
2.2. Si U2 eW , ir
 a 5. 
t(b V )
3. Hacer W = log
e Y = Wt .
p
3.1. Si U2 (p + (1 p)Y ) 1, ir a 5.
3.2. Si U2 Y p1 , ir a 5.
4. Volver a 1.
5. Hacer X = W .

5.1. DISTRIBUCIONES CONTINUAS

5.1.7.

55

La distribuci
on beta

Dadas dos variables aleatorias Y (1, p) y Z (1, q), independientes, se dice


que la variable
Y
X=
Y +Z
tiene distribucion (p, q), beta de parametros p y q.
La funcion de densidad de una (p, q) viene dada por
p1
q1
x (1 x)
si x [0, 1]
f (x) =
(p, q)

0
en otro caso
Z
siendo (p, q) =

xp1 (1 x)q1 dx.

Aunque existen multitud de algoritmos para simular la distribucion (p, q) , probablemente, el mas sencillo de todos es el que se obtiene, a partir de la distribucion
gamma, como consecuencia de la propia definicion.
El algoritmo de Fox (1963) es adecuado para simular la distribucion beta cuando
p, q N y son valores peque
nos.
Algoritmo de Fox
1. Generar U1 , U2 , . . . , Up+q1 U (0, 1).
2. Ordenarlos: U(1) U(2) U(p+q1) .
3. Devolver X = U(p) .

56

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

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


(1964).
Algoritmo de J
ohnk
1. Repetir.
1.1. Generar U, V U (0, 1).
1
1
1.2. Hacer Y = U p , Z = V q , S = Y + Z.
2. Hasta que S 1.
3. Hacer X = YS .
Este metodo resulta extremadamente ineficiente para p o q mayores que 1. Esto
es debido a que la condicion S 1 del paso 2 puede tardar muchsimo 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 mas
complicado de implementar pero tambien mucho mas eficiente.
Algoritmo de Cheng
1.1. Hacer = p + q.
1.2. Si mn (p, q) 1 entonces hacer =
q
2
.
2pq

1
,
mn(p,q)

en otro caso hacer =

1.3. Hacer = p + 1 .
2. Generar U1 , U2 U (0,1).
U1
3. Hacer V = ln 1U
y W = p eV .
1



4. Si ln q+W
+ V ln 4 < ln (U12 U2 ) entonces volver a 1.
5. Devolver X =

W
.
q+W

5.1. DISTRIBUCIONES CONTINUAS

5.1.8.

57

La distribuci
on chi-cuadrado de Pearson

Dadas variables aleatoriasP


Z1 , Z2 , . . . , Zn independientes y con distribucion N (0, 1),
diremos que la variable X = ni=1 Zi2 tiene distribucion chi-cuadrado con n grados de
libertad (2n ).
Su funcion de densidad viene dada por
n

x 2 1 e 2
f (x) = n n  , para todo x 0
22 2

d
Es decir, 2n = 21 , n2 y los algoritmos vistos para la distribucion gamma son aplicables a este caso (para n grande es recomendable usar el algoritmo de Tadikamalla).

1 n d
Adem
a
s,
debido
a
la
reproductividad
de
la
distribuci
o
n
gamma,
se
tiene
que

,
=
2 2

 
12 , n2 + 12 , 12 , cuando n no sea par, siendo esta u
ltima distribucion, 21 , 12 , la
del cuadrado de una normal estandar.
De esta forma, para n peque
no, se tiene el siguiente algoritmo para la simulacion
de la chi-cuadrado:
Algoritmo reproductivo
para simular la chi-cuadrado
n
1. Hacer m = 2 .
2. Hacer S = 1.
3. Desde i = 1 hasta m hacer
3.1. Generar U U (0, 1).
3.2. Hacer S = S U .
4. Hacer X = 2 ln S.
5. Si n es impar hacer
6.1. Generar Z N (0, 1).
6.2. Hacer X = X + Z 2 .
7. Devolver X.

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

58

5.1.9.

La distribuci
on F de Fisher-Snedecor

Dadas dos variables aleatorias Y1 2m e Y2 2n independientes, la variable


aleatoria
Y1 /m
X=
Y2 /n
tiene distribucion F de Fisher-Snedecor con m y n grados de libertad (Fm,n ).
Su funcion de densidad es
n
n 2
f (x) =

m
m
 x 2 1
m n
,
2 2

n  m+n
2
, para todo x 0
x+
m

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 simulaci
on de la F a trav
es de la beta
m n
1. Generar Z 2 , 2 .
nZ
.
2. Hacer X = m(1Z)

5.1.10.

La distribuci
on t de Student

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


Y1

X=p

Y2 /n

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


Su funcion de densidad es
f (x) =

n
2

n+1
2

 
n

x2
1+
n

 n+1
2
, para todo x R.

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


d
esta distribucion y la F de Fisher-Snedecor: t2n = F1,n .
Algoritmo de simulaci
on de la t de Student a partir de la F
1. Generar U U (0, 1) y Z F1,n .

2. Si U < 0,5 entonces devolver X = Z, si no devolver X = Z.

5.1. DISTRIBUCIONES CONTINUAS

5.1.11.

59

La distribuci
on de Weibull

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


Su funcion de densidad de probabilidad es

f (x) = x1 e(x) , para todo x 0


d
En particular, W (, 1) = exp ().
Puede simularse facilmente mediante el metodo de inversion (ligeramente optimizado).
Algoritmo de inversi
on para simular la distribuci
on de Weibull
1. Generar U U (0, 1).
1
( ln U )
2. Devolver X =
.

5.1.12.

La distribuci
on logstica

Es la que tiene por funcion de distribucion:


F (x) =

1
1 + e

xa
b

, x R,

siendo a R y b > 0.
Puede simularse facilmente mediante el metodo de inversion.
Algoritmo para simular la distribuci
on logstica mediante inversi
on
1. Generar U U (0, 1).

2. Devolver X = a b ln U1 1 .

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

60

5.1.13.

La distribuci
on de Pareto

Tiene utilidad en ciencias como la Economa, donde en ocasiones sirve para modelizar distribuciones de rentas.
Su densidad viene dada por
(
f (x) =

aba
xa+1
0

si x b
si x < b

Como consecuencia, su funcion de distribucion resulta



0  si x < b
F (x) =
a
si x b
1 xb
y, por tanto, es simulable mediante inversion. Una version optimizada del algoritmo es:
Algoritmo de inversi
on para simular la distribuci
on de Pareto
1. Generar U U (0, 1).
b
2. Devolver X = 1 .
Ua

5.2.
5.2.1.

Distribuciones discretas
La distribuci
on uniforme discreta

Dado un conjunto finito de N elementos (que, sin perdida de generalidad, supondremos el conjunto {1, 2, . . . , N }) la distribucion uniforme discreta en dicho conjunto (o equiprobable sobre dicho conjunto) es la definida por P (X = i) = N1 , para
i = 1, 2, . . . , N .
Tanto el metodo de inversion (calculando explcitamente la funcion cuantil) como
el de truncamiento dan lugar al siguiente algoritmo.
Algoritmo para simular la distribuci
on uniforme discreta en
{1, 2, . . . , N }
1. Generar U U (0, 1).
2. Devolver X = [N U ] + 1.

5.2. DISTRIBUCIONES DISCRETAS

5.2.2.

61

La distribuci
on binomial

La distribucion binomial de parametros n y p, B (n, p), se define como el n


umero
de exitos en n pruebas independientes, en las que la probabilidad de exito es p.
Su masa de probabilidad es
 
n i
P (X = i) =
p (1 p)ni , para i = 0, 1, . . . , n.
i

Puede simularse a partir de su definicion:


Algoritmo para la generaci
on de la distribuci
on 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 gua.

5.2.3.

La distribuci
on de Poisson

Una variable aleatoria discreta, X, tiene distribucion de Poisson de parametro > 0


si su masa de probabilidad viene dada por
e i
, para i = 0, 1, . . .
P (X = i) =
i!
La distribucion de Poisson puede simularse mediante el metodo de la transformacion
cuantil con b
usqueda secuencial.

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

62

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

Ti 1 <

X+1
X

i=1

Ti

i=1

(definiendo X = 0 si T1 > 1) tiene distribucion Pois().


Las variables aleatorias Ti pueden simularse, utilizando valores Ui de una uniforme,
mediante Ti = lnUi . En virtud de ello, se tiene
X
X

Ti 1 <

i=1

ln

X
Q

X+1
X
i=1


ln

Ui

i=1

X
Y
i=1

Ti

X
X
ln Ui
i=1

X+1
Q
i=1

1<
Ui e >

X+1
Y

1<

X+1
X
i=1

ln Ui


Ui
ln

X
Y
i=1

!
Ui

> ln

X+1
Y

!
Ui

i=1

Ui .

i=1

As, puede utilizarse el siguiente algoritmo:


Algoritmo de simulaci
on 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 inconveniente
de ser muy ineficientes cuando es grande. En ese caso, aunque la distribucion de
Poisson tiene un n
umero infinito de posibles resultados, es perfectamente aplicable el
metodo de la tabla gua desembocando en una b
usqueda secuencial cuando el intervalo
elegido sea el u
ltimo de la tabla. Esto mejora muy considerablemente la eficiencia del
metodo.

5.2. DISTRIBUCIONES DISCRETAS

5.2.4.

63

La distribuci
on geom
etrica

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 (n
umero de fracasos antes del
primer exito), tambien puede hacerse por truncamiento. El algoritmo que resulta por
este metodo es equivalente al basado en la expresion explcita de la funcion cuantil.
Algoritmo de truncamiento para la distribuci
on geom
etrica
1
.
0. Hacer L =
ln (1 p)
1. Generar U U (0, 1).
2. Hacer T = L ln U .
3. Devolver X = [T ].

5.2.5.

La distribuci
on binomial negativa

La distribucion binomial negativa, BN (r, p) , generaliza a la geometrica, pudiendo


interpretarse como el n
umero de fracasos antes del r-esimo exito.
Su funcion de masa de probabilidad es


i+r1 r
P (X = i) =
p (1 p)i , para i = 0, 1, . . .
i

Debido a su reproductividad en el parametro r, puede simularse como suma de


r variables geometricas, aunque este algoritmo puede ser muy costoso en tiempo de
computacion si r es elevado.
Existe tambien un metodo especfico basado en la propiedad


p
, r X BN (r, p) .
X|Y Pois (Y ) , Y
1p
Algoritmo condicional
la binomial negativa
 para simular

p
1. Simular L
,r .
1p
2. Simular X Pois(L).
3. Devolver X.

64

DE DISTRIBUCIONES NOTABLES
CAPITULO 5. SIMULACION

Captulo 6
Simulaci
on de distribuciones
multidimensionales
La simulacion de vectores aleatorios X = (X1 , X2 , . . . , Xd )0 que sigan cierto modelo
de distribucion dado no es tarea siempre sencilla. En general, no resulta una extension
inmediata del caso unidimensional, aunque, si las variables que componen el vector son
independientes, 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 aleatorio
son dependientes y el metodo anterior no es valido. A continuacion se veran algunos
metodos generales para la simulacion de distribuciones multidimensionales.

6.1.

M
etodo de las distribuciones condicionadas

Supongase un vector aleatorio d-dimensional, con distribucion continua. Denotese


por f (x1 , x2 , . . . , xn ) su funcion de densidad conjunta y considerese la primera densidad
marginal, f1 (x1 ), y las sucesivas densidades condicionales f2 (x2 |x1 ), f3 (x3 |x1 , x2 ), . . .,
fd (xd |x1 , x2 , . . . , xd1 ). Gracias a la regla del producto, generalizada a funciones de
densidad, se tiene
f (x1 , x2 , . . . , xn ) = f1 (x1 ) f2 (x2 |x1 ) f3 (x3 |x1 , x2 ) fd (xd |x1 , x2 , . . . , xd1 )
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 , . . . , Xi1 ).
3. Devolver X = (X1 , X2 , . . . , Xd )0 .
Es inmediato comprobar que el metodo anteriormente expuesto es igualmente valido
si las variables Xi son discretas o, incluso, si algunas son discretas y otras continuas. En
tal caso se sustituira la densidad por la masa de probabilidad. As pues, lo realmente
importante para poder aplicar el metodo de las distribuciones condicionadas es conocer
y saber simular la distribucion marginal de X1 y las distribuciones condicionadas del
tipo Xi |X1 , X2 , . . . , Xi1 para i = 2, 3, . . . , d.
65

DE DISTRIBUCIONES MULTIDIMENSIONALES
66CAPITULO 6. SIMULACION
Ejemplo 6.1.1 (Algoritmo para simular la distribuci
on normal bidimensional por el m
etodo de las distribuciones condicionadas) Consideremos una

  2

1
1 12
N2
,
,
2
12 22
por las propiedades de la distribucion normal, bastar
a saber simular la distribuci
on

   2
0
1 12
N2
,
12 22
0


1
2

y luego sumarle el vector


.

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


f1 (x1 ) =

x2
exp 12
21
2


Adem
as

1
f (x1 , x2 ) = f (x) = p
exp x0 1 x
2
2 det ()
Como
1

1
=
det ()

22 12
12 12

1
= 2 2
2
1 2 12

22 12
12 12

se tiene que
1 0 1
2 x2 212 x1 x2 + 12 x22
x x= 2 1
2
2
2 (12 22 12
)
y, por tanto,

  2 2

1 2
x21
2 x1 212 x1 x2 + 12 x22
f (x1 , x2 )
p
=
2
exp
f2 (x2 |x1 ) =
2
2
f1 (x1 )
2 (12 22 12
)
21
2 12 22 12
 2 2 2

2
4 2
2
) x21
1
1 2 x1 21 12 x1 x2 + 1 x2 (12 22 12
= q 2 2 2 exp
2
1 2 12
212 (12 22 12
)
2
2
1


2 2
212 12 x1 x2 + 14 x22 + 12
x1
1
= q 2 2 2 exp
2
1 2 12
212 (12 22 12
)
2
12

2 x2
12
212 x1 x2
2
1

+
x
+
2
1
12
14

= q 2 2 2 exp
2
2
2
1 2 12
1 2 12
2
2
12
12

2
12 x1
x

2
12
1

= q 2 2 2 exp

2
2
2
1 2 12
1 2 12
2 2
2
2

1
1

que es la densidad de una N

2 2 2
12
x , 1 22 12
12 1
1


6.1. METODO
DE LAS DISTRIBUCIONES CONDICIONADAS

67

En resumen, se tiene que si




   2

X1
0
1 12
N2
,
X2
0
12 22
q 2 2 2 

1 2 12
12
2
entonces X1 N (0, 1 ) y X2 |X1 N 2 X1 ,
. As, el algoritmo de simu12
1
laci
on consistira en los siguientes pasos:
1.
2.
3.
4.
5.

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


Hacer Y1 = 1 Z1 .
q 2 2 2
1 2 12
.
Hacer Y2 = 122 Y1 + Z2
12
1
Hacer X1 = Y1 + 1 , X2 = Y2 + 2 .

Devolver X = (X1 , X2 )t .

Ejemplo 6.1.2 (La distribuci


on uniforme en el crculo unitario). Se trata de
la distribucion bidimensional continua cuya densidad es constante en dicho crculo
C = {(x1 , x2 )0 R2 /x21 + x22 1}.
Su funcion de densidad viene dada por

f (x1 , x2 ) =

si
si

(x1 , x2 )0 C
(x1 , x2 ) 0
/C

La densidad marginal de la primera variable resulta


p
Z +1x21
2 1 x21
1
dx2 =
si x1 [1, 1]
f1 (x1 ) =

1x21
es decir,

f1 (x1 ) =

1 x21

si
si

x1 [1, 1]
x1
/ [1, 1]

Ademas
 q

q
1
f (x1 , x2 )
1

f2 (x2 |x1 ) =
= 2 = p
, si x2 1 x21 , 1 x21
2 1x1
f1 (x1 )
2 1 x21

valiendo cero en otro caso.


Se tiene entonces que
 q

q
2
2
X2 |X1 U 1 X1 , 1 X1 ,
siempre que X1 [1, 1].
Finalmente, el algoritmo resulta:
1. Simular X1 con densidad f1 .h
i
p
p
2. Simular X2 con densidad U 1 X12 , 1 X12 .
3. Devolver X = (X1 , X2 )0 .
Para el paso 1 puede utilizarse, por ejemplo, el metodo de aceptaci
on/rechazo, pues
se trata de una densidad acotada definida en un intervalo acotado.

DE DISTRIBUCIONES MULTIDIMENSIONALES
68CAPITULO 6. SIMULACION

6.2.

El m
etodo de aceptaci
on/rechazo

La idea general del metodo de aceptacion/rechazo es aplicable para simular variables


aleatorias definidas en cualquier espacio (no solo en R). En particular puede usarse para
simular vectores aleatorios de Rd . Sin embargo, en este contexto, resulta mucho mas
difcil encontrar una densidad auxiliar adecuada y, especialmente, conseguir que el
n
umero medio de comparaciones del metodo se mantenga dentro de unos lmites de
eficiencia razonables cuando la dimension es elevada.
Ejemplo 6.2.1 (Simulaci
on de puntos uniformemente distribudos sobre la
esfera unitaria d-dimensional Cd )


Cd = (x1 , x2 , . . . , xd )0 Rd /x21 + x22 + + x2d 1
Denotando por Vd (1), el volumen (la medida) de la esfera d-dimensional de radio 1
(en general, la de radio r verifica Vd (r) = rd Vd (1)), se tiene:
 1
si (x1 , x2 , . . . , xd )0 Cd
Vd (1)
f (x1 , x2 , . . . , xd ) =
0
si (x1 , x2 , . . . , xd )0
/ Cd
Para simularvalores en Rd , con densidad f ,podemos utilizar como densidad auxiliar


d
d
la de una U [1, 1] [1, 1] [1, 1] = U [1, 1] , dada por

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

1
2d

si

xi [1, 1], para todo i = 1, 2, . . . , d


en otro caso

La constante c optima para la utilizacion del metodo de aceptaci


on/rechazo es
f (x)
=
c = max

x /g(x)>0 g (x)

1
Vd (1)
1
2d

2d
=
Vd (1)

y la condici
on de aceptacion cU g (T) f (T) se convierte en
2d
1
1
U d 1[1,1]d (T)
1C (T)
Vd (1) 2
Vd (1) d
o, lo que es lo mismo, U 1[1,1]d (T) 1Cd (T). Esta condici
on equivale a que T Cd ,
es decir, que se verifique
T12 + T22 + + Td2 1


Por otra parte, la simulacion de T U [1, 1]d puede hacerse trivialmente mediante Ti U ([1, 1]) para cada i = 1, 2, . . . , d, ya que las componentes son independientes. Como el valor de U es superfluo en este caso, el algoritmo queda:
1.
2.
3.
4.

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


Para i = 1, 2, . . . , d hacer Ti = 2Vi 1.
Si T12 + T22 + + Td2 > 1 entonces volver al paso 1.
Devolver X = (T1 , T2 , . . . , Td )0 .


O ETIQUETADO
6.3. METODOS
DE CODIFICACION

69

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


d/2 d
r

si d es par

(d/2)!
Vd (r) =
d d2 e+1 d d2 e rd

2
si d es impar
1 3 5d
puede verse que el n
umero medio de repeticiones de los pasos 1-3 del algoritmo, que
d
viene dado por la constante c = Vd2(1) , puede hacerse enormemente grande. As, si d = 2
se tiene c =1.27, si d = 3 se tiene c =1.91, si d = 4 entonces c =3.24 y para d = 10
resulta c =401.5 que es un valor que hace que el algoritmo sea tremendamente lento en
dimension 10.

6.3.

M
etodos de codificaci
on o etiquetado

En el caso de que la funcion de distribucion d-dimensional sea discreta existen


metodos que permiten reducir la simulacion de dicha variable al contexto de simular una
variable aleatoria discreta unidimensional. Estos metodos son conocidos como metodos
de etiquetado o codificacion y la idea basica consiste en construir una funcion h que
codifique las posibles d-tuplas del conjunto donde toma valores la variable discreta,
haciendo corresponder a cada uno un n
umero entero no negativo diferente.
Ejemplo 6.3.1 (Algoritmo para simular una variable bidimensional discreta
(X1 , X2 )0 cada una de cuyas componentes toma valores enteros no negativos).
El subconjunto de R2 en el que toma valores el vector aleatorio es
Z+ Z+ = Z+

2

= {(i, j) /i, j {0, 1, 2, . . .}}

Se tratara de definir una funci


on biyectiva, h : Z+ Z+ Z+ , que permita
etiquetar los pares de enteros.
De esta forma, h induce sobre la variable transformada, C = h (X1 , X2 ), una masa
de probabilidad
(C)

pk


(X ,X )
:= P (C = k) = P (h (X1 , X2 ) = k) = P (X1 , X2 ) = h1 (k) =: ph11 (k)2

Resulta inmediato, por tanto, obtener la masa de probabilidad de la variable discreta


unidimensional C, a partir de la masa de probabilidad de la variable original (X1 , X2 ).
De todas formas, debemos tener en cuenta que para que esto sea calculable en la pr
actica
en un tiempo razonable, la funci
on h debe poder invertirse de forma r
apida.
As pues para simular la variable (X1 , X2 ) podemos proceder mediante uno de los
algoritmos posibles para simular C calculando en tantos pasos como sean necesarios
los valores de la forma h1 (k).
Una posibilidad sencilla consiste en utilizar
h (i, j) =

(i + j) (i + j + 1)
+i
2

DE DISTRIBUCIONES MULTIDIMENSIONALES
70CAPITULO 6. SIMULACION
Consideremos k Z+ , el valor (i, j) = h1 (k) debe verificar
(i + j) (i + j + 1)
+i=k
2
Denotando ahora n = i + j, para encontrar (i, j) = h1 (k) basta con hallar n e i,
enteros positivos, con n i tales que
h (i, j) = k

n (n + 1)
+i=k
2
Debemos entonces encontrar el u
nico n que cumple
n (n + 1)
n (n + 1)
n (n + 1) + 2 (n + 1)
(n + 1) (n + 2)
k
+n<
=
2
2
2
2
2
2
Como adem
as n < n (n + 1) y (n + 1) (n + 2) < (n + 2) , se tiene que ese valor n ha
de verificar
n2 < 2k < (n + 2)2 ,
es decir

m
l m
2k 2 < n
2k .
l m
l m
Dicho de otro modo, se tiene que n ha de ser igual a
2k 1
o
2k .
l

n(n+1)
Basta entonces con calcular la expresi
l monl2 m para esos posibles valoreslde nm y
comparar el resultado con 2k. As, si
2k
2k + 1 > 2k entonces n =
2k
l m
2k . Finalmente se calcula
1 y, en caso contrario, n =

n (n + 1)
y j =ni
2
El c
alculo de h1 (k) es muy rapido y el resto del algoritmo se reduce a la simulaci
on
de la variable unidimensional C.
i=k

1
Ejemplo 6.3.2 Calculemos
anterior
 por el procedimiento


  el valor h (16). Calculamos primeramente n =
2 16 =
2 16 =
32 = d5. 656 854 2e = 5. Luego
calculamos 5 (5 + 1) = 30 32 = 2 16, con lo cual n = 5. Adem
as i = 16 56
=1y
2
1
j = 5 1 = 4. As pues se obtiene h (16) = (1, 4).

Aunque no entraremos con detalle en ello, conviene resaltar que es posible generad
lizar este tipo de funciones de codificacion a (Z+ ) . Tambien es factible encontrar la
inversa de tal funcion generalizada (llamada funcion de decodificacion) que se puede
calcular eficientemente.
Cuando la variable aleatoria X2 toma un n
umero finito de valores (supongamos
comprendidos entre 0 y M ), otra posible funcion de codificacion, mas sencilla es
h (i, j) = (M + 1) i + j
cuya inversa viene dada por
1


(k) =



k
, kmod (M + 1) .
M +1
d

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


al caso en que el vector aleatorio X tome un n
umero finito de valores.


NORMAL MULTIVARIANTE71
6.4. METODOS
PARA SIMULAR LA DISTRIBUCION

6.4.

M
etodos para simular la distribuci
on normal
multivariante

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

11 12 1d
21 22 1d

= ..
.. . .
..
.
.
.
.
d1 d2 dd
la distribucion normal d-dimensional de parametros ( , ) (que corresponden con su
vector de medias y su matriz de varianzas-covarianzas), abreviadamente Nd ( , ), es
la que tiene densidad dada por


1
0
d/2
1/2
1
f (x ) = (2)
det ()
exp (x ) (x )
2
Cuando es diagonal

12 0
0 22
..
..
.
.
0 0

..
.

0
0
..
.

d2

se obtiene facilmente
d/2

f (x ) = (2)

d
Y

!1/2
i2

i=1

1
12

...

0
0
..
.

1
0 122

(x
exp
..
2 (x ) ..

1
0 0 2
d
!
!
d
d
Y
X (xi i )2
1
d/2
= (2)
i1 exp
2 i=
i2
i=1
!!
d
d
Y
Y
1
(xi i )2
exp
=
=
1 ,i (xi )
2
2

2
i
i
i=1
i=1

siendo 1 ,i la funcion de densidad de una N (i , i ).


De esta forma, cuando es diagonal, las componentes son independientes y resulta
trivial simular la Nd ( , ) mediante el siguiente algoritmo:
1. Simular Z1 , Z2 , . . . , Zd N (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer Xi = i + i Zi .
3. Devolver X = (X1 , X2 , . . . , Xd )0 .

DE DISTRIBUCIONES MULTIDIMENSIONALES
72CAPITULO 6. SIMULACION
Una propiedad que resulta muy u
til para simular la distribucion Nd ( , ) con
arbitraria es la siguiente.
Proposici
on 6.4.1 Si X Nd ( , ) y A es una matriz de dimensi
on pd, de rango
m
aximo, con p d, entonces Y = AX Np (A , AA0 ).
Dada una variable aleatoria X Nd ( , ), Y = X Nd (0 , ).
Si es una matriz definida positiva, existe una matriz ortogonal H (es decir, tal
que H1 = H0 ) de forma que la matriz = H0 H es diagonal. De hecho, H es la
matriz de cambio de base para que la matriz asociada a la correspondiente aplicacion
lineal sea la matriz diagonal (en lugar de la matriz de partida ).
Las columnas de la matriz H son precisamente los autovectores linealmente independientes (y de modulo unitario) de la matriz , es decir, d vectores linealmente
independientes, x1 , x2 , . . . , xd , tales que xi 0 xi = 1 para todo i = 1, 2, . . . , n y con
xi 0 xj = 0 si i 6= j, verificando ademas que i R tal que xi = i xi (condicion de
ser 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/2 Z Nd (0, ), siendo

1/2

1/2

1
0
..
.

0
2
..
.

1/2

...

0
0
..
.
1/2

Multiplicando por la izquierda por la matriz H, se tiene


H1/2 Z Nd (0, HH0 ) Nd (0, )
Finalmente, basta sumar el vector para obtener
X = + H1/2 Z Nd ( , )
Una vez obtenidos los autovalores, 1 , 2 , . . ., d , y los autovectores asociados de la
matriz , que determinan las columnas de la matriz H, el algoritmo procedera como
sigue:
1. Simular Z1 , Z2 , . . . , Zd N (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer Yi = i Zi .
3. Devolver X = + HY.


NORMAL MULTIVARIANTE73
6.4. METODOS
PARA SIMULAR LA DISTRIBUCION
Ejemplo 6.4.1 Dar un algoritmo para simular la distribuci
on
  

1
2,36 0,48
N2
,
3
0,48 2,64
Para encontrar los autovalores y autovectores de resolvemos det ( I) = 0,
es decir,


2,36 0,48
2


0,48 2,64 = 0 (2,36 ) (2,64 ) (0,48) = 0

5 52 6 4
2
5 + 6 = 0 =
2
que ofrece como soluciones 1 = 3 y 2 = 2.
Para encontrar autovectores de m
odulo 1 correspondientes a esos autovalores no
tenemos mas que resolver los sistemas ( i I) = 0 para i = 1, 2 imponiendo la
condicion de modulo igual a 1, es decir x21 + x22 = 1. As, resulta




-0.64 -0.48
16 12
1 I =
= -0.04
, luego
-0.48 -0.36
12 9
4
( 1 I) x = 0 x2 = x1 , pero como x21 + x22 = 1, se tiene
3
25 2
3
4
x1 = 1, luego x1 = y x2 =
9
5
5
(tambien es soluci
on si cambiamos ambos de signo);





0.36 -0.48
9 12
2 I =
= 0.04
, luego
-0.48 0.64
12 16
3
( 2 I) x = 0 x2 = x1 , pero como x21 + x22 = 1, se tiene
4
25 2
4
3
x1 = 1, luego x1 = y x2 =
16
5
5
De esta forma, la matriz H resulta, entre otras posibilidades,

 

3/5 4/5
0.6 0.8
H=
=
.
4/5 3/5
-0.8 0.6
Ahora
Y=

1/2


Z=

3 0
2
0



Z1
Z2



3Z
1
=
2Z2

y finalmente,

X = + HY =

1 + 0.6Y1 + 0.8Y2
3 0.8Y1 + 0.6Y2

As, el algoritmo resultara


1. Simular Z1 ,
Z2 N (0, 1)
independientes.
2. Hacer Y1 = 3Z1 e Y2 = 2Z2 .
3. Obtener X1 = 1 + 0.6Y1 + 0.8Y2 y X2 = 3 0.8Y1 + 0.6Y2 .
4. Devolver X = (X1 , X2 )0 .

DE DISTRIBUCIONES MULTIDIMENSIONALES
74CAPITULO 6. SIMULACION

Captulo 7
Dise
no de experimentos de
simulaci
on
En el presente captulo se abordaran algunas de las cuestiones mas importantes a
la hora de dise
nar un estudio de simulacion:
Similitudes y diferencias entre la simulacion y la experimentacion sobre el sistema
real.
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 experimentaci


on real

Teniendo en cuenta que la simulacion es la tecnica consistente en la realizacion


de experimentos de muestreo sobre un modelo construido a partir de un sistema real,
es obvio que la simulacion necesitara de gran cantidad de tecnicas estadsticas para
obtener las muestras (muestreo) y para analizar los resultados obtenidos por la experimentacion artificial (estimacion, intervalos de confianza, contrastes de hipotesis, etc.).
Por todo ello, puede afirmarse que, en general, en cuanto a la utilizacion de tecnicas
estadsticas 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 de
confianza y contrastes de hipotesis es algo menos frecuente en la simulacion que
en la experimentacion real. La razon es que algunos de los parametros (los de
control) ya son conocidos en la simulacion y, por tanto, no es necesario hacer
inferencia sobre ellos, aunque s sobre los de salida (que miden, de alguna forma,
el comportamiento del sistema).

75

DE EXPERIMENTOS DE SIMULACION

CAPITULO 7. DISENO

76

2. La simulacion suele hacer un uso mucho mas intensivo de tecnicas de ordenacion


y optimizacion. Esto es debido a que, en el contexto de la simulacion, es factible
comparar un gran n
umero de escenarios (entre los que se desea optimizar, por
ejemplo) en muy poco tiempo, cosa que se da muy raramente en la experimentacion real.
3. Una peculiaridad de la simulacion es que casi siempre es posible comparar distintas estrategias sobre las mismas muestras simuladas (simplemente utilizando
la misma semilla en la simulacion, convenientemente planificada).

7.2.

Simulaci
on est
atica y din
amica

La simulacion se dice estatica si en el modelo no juega ning


un papel el transcurso
del tiempo mientras que es dinamica si el tiempo es una de las variables importantes
del modelo.
La simulacion estatica se usa muy frecuentemente por los estadsticos para comprobar el comportamiento comparativo de diversos metodos estadsticos alternativos
para tama
nos muestrales finitos (complementando los estudios teoricos, casi siempre
asintoticos).
En la simulacion dinamica, normalmente, se trata de ir analizando los distintos
estados por los que va pasando un sistema que evoluciona en el tiempo. Esto provoca,
en general, un mayor coste computacional y problemas de estabilizacion y dependencia.
Existen dos grandes tipos de simulacion dinamica: la simulaci
on continua, en la que
se supone que el sistema cambia de estado constantemente, y la simulaci
on discreta,
para la cual los cambios se producen en ciertos instantes de tiempo singulares.

7.3.

Simulaci
on por eventos y por cuantos

Con el nombre de simulacion por eventos, o asncrona, designamos el tipo de simulacion dinamica discreta en la cual se controla la variable tiempo moviendola hasta
la ocurrencia del siguiente suceso (o evento). Esto implica la necesidad de controlar
minuciosamente cual es dicho proximo suceso: saber cuales son los posibles sucesos en
un futuro inmediato y cual de ellos es el mas inmediato.
La simulacion por cuantos, responde a una filisofa totalmente diferente. Se trata de
examinar el sistema (que evoluciona en el tiempo) dejando pasar peque
nos intervalos
de tiempo de longitud , fija, (llamados cuantos) en los cuales se supone que, a lo sumo,
un solo suceso puede producirse.
En general, la simulacion por eventos es exacta y de mas difcil implementacion,
pero de mucha mas rapida ejecucion que la simulacion por cuantos. Sin embargo esta
u
ltima es muchas veces la u
nica posibilidad factible en la simulacion dinamica continua.


DE LA VARIANZA
7.4. TECNICAS
DE REDUCCION

7.4.

77

T
ecnicas de reducci
on de la varianza

Existen multitud de tecnicas encaminadas a reducir la varianza en un estudio de simulacion o bien a tratar de estimarla. Algunas de ellas son el uso de n
umeros aleatorios
comunes, la utilizacion de variables antiteticas, la estratificacion, el uso de variables
de control, el metodo Jackknife, los metodos de remuestreo (destacando entre ellos el
metodo bootstrap), etc.
En general conviene tener en cuenta que si uno de los objetivos de la simulacion es
precisamente estimar la variabilidad, no conviene utilizar estas tecnicas de reduccion

de la varianza. Estas
son aplicables normalmente cuando la simulacion pretende ofrecer
respuestas, lo mas precisas posibles, solo sobre cantidades medias.

7.4.1.

N
umeros aleatorios comunes

Supongase que se desea comparar dos estrategias distintas, X e Y, mediante N repeticiones (o trials) de un experimento de simulacion, de las cuales se han obtenido
los 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 variables
de salida para ambas estrategias, E (X) E (Y ) = E (X Y ) , puede usarse X Y =
N
1 X
(Xi Yi ), cuya varianza viene dada por
N i=1
V ar X Y

N
1 X
1
=
V ar (Xi Yi ) = V ar (X1 Y1 )
2
N i=1
N

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

Usando los mismos n


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

1
(V ar (X1 ) + V ar (Y1 ))
V ar X Y
N
que es la varianza que tendra X Y en caso de haber usado muestras independientes
para cada estrategia.

78

7.4.2.

DE EXPERIMENTOS DE SIMULACION

CAPITULO 7. DISENO

Variables antit
eticas

Supongase ahora que se desea evaluar el resultado de una u


nica estrategia (sin
compararla con ninguna otra alternativa). Despues de N repeticiones de la simulacion,
tendremos N valores numericos de las variables X1 , X2 , . . ., XN , procediendo a estiN
1 X
mar la media E (X) teorica mediante X =
Xi . Dado que este es un estimador
N i=1

insesgado, su precision puede medirse mediante V ar X .
N

1 X
Si las variables son independientes, la V ar X = 2
V ar (Xi ), mientras que,
N i=1
en general, se tiene
!
N
X

1 X
V ar X = 2
V ar (Xi ) + 2
Cov (Xi , Xj )
N
i=1
i<j

Una forma de utilizar esta u


ltima expresion para reducir la varianza del estimador
consiste en hacer que cada variable con ndice impar sea negativamente correlada con
la variable de ndice siguiente (siendo independiente de las demas).
La forma mas sencilla de conseguir esto cuando se utiliza el metodo de inversion
para simular las Xi consiste en tomar un valor U U (0, 1) para simular X2i1 y el
valor 1 U para simular X2i , su variable antitetica, para i = 1, 2, . . . , N2 (si N es par).
El procedimiento es mas complicado con otros metodos de simulacion distintos del de
inversion.

7.4.3.

Estratificaci
on

En ocasiones conviene dividir la poblacion en estratos obteniendo, del total de la


muestra, cierto n
umero de observaciones de cada estrato (proporcional a la probabilidad
de cada uno).
Ejemplo 7.4.1 (muestreo estratificado de una exponencial) Sup
ongase que, dada una muestra de tama
no 10 de una poblaci
on con distribuci
on exp (1) , se desea estimar la media poblacional.
Si pretendemos evitar que, por puro azar, exista alguna zona, en la que la exponencial toma valores, no representada en la muestra de 10 datos, podemos proceder de la
siguiente forma:
Tomemos tres estratos, por ejemplo, el del 40 % de valores menores, el siguiente
50 % de valores intermedios y el 10 % de valores mayores para esta distribuci
on.
Como el algoritmo de inversion (optimizado) para simular la exp (1) es
1. Generar U U (0, 1).
2. Hacer X = ln U .
la forma de garantizar que obtengamos 4, 5 y 1 valores, repectivamente, en cada uno
de los tres estratos consiste en elegir U [0,6, 1), en el primer caso, U [0,1, 0,6), en
el segundo y U [0, 0,1) para el tercer estrato.


DE LA VARIANZA
7.4. TECNICAS
DE REDUCCION

79

Dado que, en principio, no hay nada que nos garantice que, simulando diez valores
U1 , U2 , . . . , U10 U (0, 1), las proporciones de los estratos son las deseadas (aunque
s lo sean en media) una forma de proceder consiste en rechazar valores de U que
caigan en uno de esos tres intervalos cuando el cupo de ese estrato este ya lleno. Esto
d
es lo mismo que simular 4 valores de U |U [0,6,1) = U [0,6, 1) para el primer estrato, 5
d
d
valores de U |U [0,1,0,6) = U [0,1, 0,6) para el segundo y uno de U |U [0,0,1) = U [0, 0,1) para
el tercero.
El algoritmo con esta estratificaci
on sera como sigue:
1.
2.
3.
4.
5.

Generar Ui U (0, 1) para i = 1, 2, . . . , 10.


Si i 4 entonces hacer Ui = 0,4 Ui + 0,6.
Si 4 < i 9 entonces hacer Ui = 0,5 Ui + 0,1.
Si i = 10 entonces hacer Ui = 0,1 Ui .
Desde i = 1 hasta 10 devolver Xi = ln Ui .

No es difcil probar que V ar (Xi ) = 0,0214644 si i = 1, 2, 3, 4, V ar (Xi ) = 0,229504


si i = 5, 6, 7, 8, 9 y V ar (X10 ) = 1. Como consecuencia,
10

1 X
V ar (Xi ) = 0,022338
V ar X = 2
10 i=1

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

80

7.5.

DE EXPERIMENTOS DE SIMULACION

CAPITULO 7. DISENO

Problemas de estabilizaci
on y dependencia

Ambas cuestiones suelen plantearse en la simulacion dinamica. Los problemas de


estabilizaci
on estan relacionados con el hecho de que, en ocasiones, el sistema evoluciona en el tiempo de tal forma que tiene una distribucion estacionaria que se supone
de partida pero que puede ser muy sensible a las condiciones iniciales con las que se
comience la simulacion. En tal caso resulta conveniente el transcurso de cierto perodo
de tiempo (denominado perodo de estabilizacion) durante el cual los resultados obtenidos para las variables de salida son ignorados y cuyo u
nico objeto es conseguir que
se estabilice la distribucion de probabilidad.
Ejemplo 7.5.1 Supongamos el siguiente modelo de simulaci
on:
Xt = 10 + 0,7 (Xt1 10) + t
para explicar la temperatura, Xt , tomada a las 12 a.m. en el da t, donde t es un
error 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. En
otras palabras, tomando para X0 un valor muy lejano a aquellos m
as probables bajo la
distribuci
on estacionaria (por ejemplo, X0 = 100), es intutitivo que se necesitara de
una etapa inicial considerable para llegar a alcanzar valores estacionarios. Por ejemplo,
suponiendo que los t fuesen cero (que aunque no es cierto, realmente son bastante
peque
nos en relacion con el valor 100), se obtendra la siguiente sucesi
on de valores:
X0 = 100, X1 = 73, X2 = 54,1, X3 = 40,87, X4 = 31,7, X5 = 25,4, . . . El perodo de
estabilizaci
on sera mucho menor si se partiese de un valor inicial m
as cercano a 10.
Los problemas de dependencia son aquellos derivados del hecho de que frecuentemente (de nuevo en modelos de simulacion dinamica) las distintas variables de salida
de la simulacion son dependientes. En el ejemplo anterior es obvio que cada valor Xt
depende de Xt1 (incluso de Xt2 y de otras anteriores, aunque cada vez en menor
medida). Esto afecta fundamentalmente a la precision de los estimadores construidos
con observaciones de las mismas. Una forma de atenuar este efecto sera considerar
observaciones de las mismas en instantes temporalmente lejanos (donde se supone que
la dependencia es mucho mas debil). En ocasiones, mas que atenuar este efecto se trata
de estimar la precision del estimador resultante. Obviamente, para ello ha de tenerse
en cuenta la dependencia.