Академический Документы
Профессиональный Документы
Культура Документы
26 de enero de 2009
2
Captulo 1
Introduccion
1.1. Conceptos basicos
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 matemati-
cas que las relacionan y restricciones sobre dichas variables.
La modelizacion es una etapa presente en la mayor parte de los trabajos de investi-
gacion (especialmente en las ciencias experimentales). En muchas ocasiones, la realidad
es bastante compleja como para ser estudiada directamente y es preferible la formu-
lacion de un modelo que contenga las variables mas relevantes que aparececen en el
fenomeno en estudio y las relaciones mas importantes entre ellas.
Frecuentemente, la resolucion de los problemas que se pretenden abordar puede rea-
lizarse por procedimientos analticos sobre el modelo construido (normalmente median-
te 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. Experimentacion real y simulacion
La experimentacion directa sobre la realidad puede tener muchos inconvenientes:
un coste muy alto
gran lentitud
en ocasiones las pruebas son destructivas
a veces no es etica (experimentacion sobre seres humanos)
puede resultar imposible (un acontecimiento futuro)
3
4 CAP
ITULO 1. INTRODUCCI
ON
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 con-
trastar 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 aparicion de exac-
tamente dos caras en tres lanzamientos de una moneda.
La experimentacion sobre la situacion 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 resolucion analtica es factible
y muy sencilla
P(X = 2) =
_
3
2
__
1
2
_
2
_
1
2
_
1
=
3
8
= 0. 375
La simulacion consistira en obtener n umeros aleatorios (en ordenador) para repli-
car articialmente 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 ocasion, sin embargo, la resolucion analtica sera complicada (salvo que se tengan
conocimientos de cadenas de Markov).
Parece, por tanto, conveniente una aproximacion mediante simulacion. Se tratara
de ir replicando articialmente 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 SIMULACI
ON 5
1.3. Ventajas e inconvenientes de la simulacion
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 resolu-
cion es complicada y costosa.
3. Si se desea experimentar antes de que exista el sistema.
4. Cuando es imposible experimentar sobre el sistema real por ser dicha experimen-
tacion destructiva.
5. En ocasiones en las que la experimentacion sobre el sistema es posible pero 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.
6 CAP
ITULO 1. INTRODUCCI
ON
Captulo 2
Generacion de n umeros
pseudoaleatorios uniformes en (0. 1)
2.1. Introduccion
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 pseu-
doaleatorios
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 Kolmogorov-
Smirnov). Tambien existen otros contrastes especcos que tratan de indagar a la vez
sobre varios de los aspectos anteriores. Entre ellos destacamos el contraste del poker y
el del coleccionista.
7
8 CAP
ITULO 2. GENERACI
ON DE N
ETODO DE LEHMER 9
2.3. Metodo de Lehmer
El metodo consiste en los siguientes pasos:
1. Se toma como semilla un n umero entero, x
0
, de n cifras.
2. Se elige otro entero, c, de k cifras. Suele tomarse k < n.
3. Se calcula x
0
c, n umero de, a lo sumo, n +k cifras.
4. Se separan las k cifras de la izquierda de x
0
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 x
1
.
5. Se repite este proceso tantas veces como sea necesario.
6. Se devuelven los valores u
i
=
x
i
10
2n
.
Ejemplo 2.3.1 Tomando n = 4, k = 2, x
0
= 4122 y c = 76, se obtiene
x
0
= 4122 x
0
c = 31[3272 3272 31 = 3241
x
1
= 3241 x
1
c = 24[6316 6316 24 = 6292
x
2
= 6292 x
2
c = 47[8192 8192 47 = 8145
x
3
= 8145 x
3
c = 61[9020 9020 61 = 8959
x
4
= 8959 x
4
c = 68[0884 0884 68 = 0816
x
5
= 0816 x
5
c = 06[2016 2016 06 = 2010
De esta forma
u
0
= 0. 4122 u
1
= 0. 3241 u
2
= 0. 6292 u
3
= 0. 8145
u
4
= 0. 8959 u
5
= 0. 0816
Todava en el caso de que n = 4 y k = 2, pero con x
0
= 2000 y c = 50, se tiene
x
0
c = 10[0000 y as x
1
= 0000 10 = 10 < 0. Este es precisamente uno de
los peores inconvenientes de este metodo: la aparicion de iterantes negativos. Tambien
aparecen, con frecuencia, ciclos cortos (en particular, el cero es un valor absorbente de
este generador).
10 CAP
ITULO 2. GENERACI
ON DE N
ETODOS CONGRUENCIALES 11
2.4.1. Generadores congruenciales de ciclo maximo
Ademas de las propiedades estadsticas deseables para cualquier generador, una
cuestion importante para los generadores congruenciales (como se ha visto en los ejem-
plos previos) es la de garantizar que el ciclo del generador sea maximo (o, cuando
menos, muy elevado). En la practica tratara de tomarse el ciclo igual o muy pr oximo
al n umero de enteros de tipo largo del lenguaje en cuestion.
En general, se dene 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 n
0
natural tal que x
i+p
= x
i
para todo i = n
0
. n
0
+ 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 m aximo
para cierta eleccion de la semilla, entonces lo tiene para cualquier otra.
Un resultado que sirve para caracterizar que propiedades deben cumplir los parame-
tros de un generador congruencial para que tenga perodo maximo es el teorema de
Knuth (1969).
Teorema 2.4.1 (Knuth) Las siguientes condiciones son necesarias y sucientes para
que un generador congruencial con parametros m, a y c, tenga perodo maximo (i.e.
p = m).
1. c y m son primos entre s (i.e. m.c.d. (c, m) = 1).
2. a 1 es 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.
12 CAP
ITULO 2. GENERACI
ON DE N
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
i=1
(o
i
e
i
)
2
e
i
,
que seguira, aproximadamente, una distribucion
2
k1
, 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 (n
i
) con las frecuencias esperadas, en base a la distribucion de probabilidad
especicada (e
i
).
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
i=1
(n
i
e
i
)
2
e
i
14 CAP
ITULO 2. GENERACI
ON DE N
5) 3 5 0
8
[32
5, 40) 5 5 0
[40. 47
5) 8 5 1
8
[47
5, 55] 4 5 0
2
Total 20 20 2
8
En este caso el valor del estadstico es Q = 2
01 o = 0
1.
2.5. MEDIDAS ESTAD
n
(x
(i)
) F(x
(i)
)[
Ejemplo 2.5.2 Contrastar que la muestra de datos de ocupacion de disco provenga de
una distribucion N(40. 3).
x
(i)
F(x
(i)
) F
n
(x
(i)
) F
n
(x
(i)
) D
n,i
25 0 0
05 0 0
05
30 0
00043 0
10 0
05 0
09957
31 0
00135 0
15 0
10 0
14865
33 0
00982 0
20 0
15 0
19018
35 0
04779 0
30 0
20 0
25221
40 0
5 0
40 0
30 0
2
42 0
74751 0
50 0
40 0
34751
45 0
95221 0
60 0
50 0
45221
46 0
97725 0
70 0
60 0
37725
47 0
99019 0
80 0
70 0
29019
49 0
99865 0
85 0
80 0
19865
50 0
99957 0
95 0
85 0
14957
55 1 1 0
95 0
05
Se obtiene D
n
= 0
ITULO 2. GENERACI
ON DE N
n
i=2
(X
i
X)(X
i1
X)
n
i=1
(X
i
X)
2
que expresa, de alguna manera, la correlacion entre cada dato y el observado un ins-
tante antes.
En general, el coeciente de autocorrelacion de orden k (o a k retardos), se dene
por
r(k) =
n
i=k+1
(X
i
X)(X
ik
X)
n
i=1
(X
i
X)
2
Una forma graca de visualizar los coecientes de autocorrelacion es el llamado
correlograma. En el se representan, para los primeros retardos, unas barras con altura
igual al coeciente 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 coecientes 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 corres-
ponde con autocorrelaciones cercanas a cero.
Bajo la hipotesis de independencia, cada coeciente 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 coeciente de autocorrelacion teorico
es cero.
De hecho, es habitual incluir en el correlograma bandas de conanza a una distancia
2/
k1
j=1
2
j
n
.
2.5. MEDIDAS ESTAD
ITULO 2. GENERACI
ON DE N
k=1
r(k)
2
n k
que se distribuye, aproximadamente, seg un una
2
m1
.
Ejemplo 2.5.3 Considerense los datos de espacio de disco duro ocupado por usua-
rio: 35, 45, 47, 50. 31, 30. 25, 33, 35, 40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.
Contrastar la independencia usando los test de las rachas y el de Ljung-Box.
Test del n umero de rachas
Dada la muestra original, se clasican ahora los datos de la misma en funcion de
que se hallen por encima o por debajo de la mediana, M
e
= (42 + 45)/2 = 43
5 :
+ + + + + + + + + +
El n umero de rachas es R = 8 y n
1
= n
2
= 10. En las tablas puede encontrarse el
p-valor: p = 0
0255. De aqu se
deduce que el nivel crtico del contraste es p = 0
05 pero ya no con = 0
06.
Test de Ljung-Box
Tomemos m = 4. Los cuatro primeros coecientes de autocorrelacion son r(1) =
0
52550. r(2) = 0
33034, r(3) = 0
09887 y r(4) = 0
06706.
A partir de estos valores, el estadstico de Ljung-Box resulta Q = 9
44, cuyo p-
valor esta comprendido entre 0
01 y 0
ITULO 2. GENERACI
ON DE N
ITULO 2. GENERACI
ON DE N
).
Recprocamente, si U U (0, 1) entonces la variable F
1
(U) tiene funcion de dis-
tribucion F (la misma distribucion que la de X).
Demostracion: Denotando por G la funcion de distribucion de U y dado un 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 CAP
ITULO 3. M
.
Como consecuencia, el algoritmo sera
1. Generar U U (0, 1).
2. Devolver X =
ln(1U)
.
que, en version simplicada, resulta:
0. Hacer L = 1/.
1. Generar U U (0, 1).
2. Devolver X = L ln U
3. Repetir los pasos 1-2 tantas veces como se precise.
3.1. EL M
ETODO DE INVERSI
ON 25
3.1.1. Ventajas e inconvenientes del metodo de inversion
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 metodo de inversion
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 me-
todo de inversion
En lo que sigue u representa un n umero pseudoaleatorio en el intervalo (0,1).
Distribucion exponencial (Exp(), > 0)
Funcion de densidad: f(x) = e
x
, x 0.
Funcion de distribucion: F(x) = 1 e
x
, x 0.
Inversa de la distribucion: F
1
(u) =
ln (1 u)
,
Forma simplificada de la inversa: S(u) =
ln u
, .
Distribucion de Cauchy
Funcion de densidad: f(x) =
1
(1 +x
2
)
, x R.
Funcion de distribucion: F(x) =
1
2
+
arctan x
, x R.
Inversa de la distribucion: F
1
(u) = tan
_
_
u
1
2
__
.
Forma simplificada de la inversa: S(u) = tan u.
26 CAP
ITULO 3. M
1 u
_
.
Forma simplificada de la inversa: S(u) = a (1
u) .
Distribucion de Pareto (a > 0 , b > 0)
Funcion de densidad: f(x) =
ab
a
x
a+1
, x b.
Funcion de distribucion: F(x) = 1
_
b
x
_
a
, x b.
Inversa de la distribucion: F
1
(u) =
b
(1 u)
1/a
.
Forma simplificada de la inversa: S(u) =
b
u
1/a
.
Distribucion de Weibull ( > 0 , > 0)
Funcion de densidad: f(x) =
x
1
e
(x)
, x 0
Funcion de distribucion: F(x) = 1 e
(x)
, x 0.
Inversa de la distribucion: F
1
(u) =
(ln (1 u))
1/
.
Forma simplificada de la inversa: S(u) =
(ln u)
1/
.
La distribucion de Laplace o doble exponencial (Lap(, ) , > 0)
Funcion de densidad: f (x) =
2
e
|x|
, para todo x R.
Funcion de distribucion:
F (x) =
_
1
2
e
(x)
si x <
1
1
2
e
(x)
si x
Inversa de la distribucion:
F
1
(u) =
_
_
+
ln 2u
si u < 1/2
ln 2(1 u)
si u 1/2
pudiendose generar por el metodo de inversion, usando como auxiliar T Exp() :
Algoritmo basado en el metodo de inversion
1. Generar U, V U (0. 1).
2. Hacer T =
ln U
.
3. Si V < 1/2, devolver X = +T. En caso contrario,
hacer X = T.
3.1. EL M
ETODO DE INVERSI
ON 27
3.1.3. Inversion 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, pue-
de optarse por encontrar expresiones sencillas que aproximen razonablemente bien la
funcion F
1
(u).
Ejemplo 3.1.2 A continuacion se detalla la aproximacion encontrada por Odeh y
Evans para la distribucion normal estandar.
Estos autores consideran la funcion auxiliar
g (v) =
2 ln v
A
_
2 ln v
_
B
_
2 ln v
_,
siendo A(x) =
4
i=0
a
i
x
i
y B(x) =
4
i=0
b
i
x
i
, con
a
0
= 0. 322232431088 a
1
= 1
a
2
= 0. 342242088547 a
3
= 0. 0204231210245
a
4
= 0. 0000453642210148 b
0
= 0. 0993484626060
b
1
= 0. 588581570495 b
2
= 0. 531103462366
b
3
= 0. 103537752850 b
4
= 0. 0038560700634
La aproximacion consiste en utilizar g (1 u) en lugar de F
1
(u) para los valores de
u [10
20
,
1
2
] y g (u) si u [
1
2
, 110
20
]. Para u / [10
20
, 110
20
] (que solo ocurre
con una probabilidad de 2 10
20
) la aproximacion no es recomendable.
Algoritmo de Odeh y Evans
1. Generar U U (0, 1) .
2. Si U < 10
20
o U > 1 10
20
entonces volver a 1.
3. Si U < 0. 5 entonces hacer X = g (1 U) sino hacer X = g (U) .
4. Devolver X.
28 CAP
ITULO 3. M
ETODO DE ACEPTACI
ON/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 distri-
bucion uniforme en A
cg
.
3. Comprobar si (T, Y ) A
f
. En caso armativo, 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 deniendo
Y = c U g (T). Ademas, la condicion (T, Y ) A
f
que hay que comprobar en el ultimo
paso equivale a Y f (T). Teniendo todo esto en cuenta el algoritmo procedera como
sigue:
Algoritmo de aceptacion/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 fun-
cion de densidad con soporte en un intervalo cerrado [a, b] (i.e., x/f (x) ,= 0 = [a, b])
de tal forma que M > 0 tal que f (x) M x (es decir, f es acotada superiormente).
En este caso puede tomarse como densidad auxiliar g la de una U[a, b].
En efecto, tomando c = M (b a) y teniendo en cuenta que
g (x) =
_
1
ba
si x [a, b]
0 si x / [a, b]
se tiene que f (x) M =
c
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 CAP
ITULO 3. M
ETODO DE ACEPTACI
ON/RECHAZO 31
Ejemplo 3.2.2 (Simulacion de la normal mediante la doble exponencial) Se
trata de simular la distribucion normal estandar, cuya funcion de densidad viene dada
por
f (x) =
1
2
e
x
2
2
, para todo x R,
mediante aceptacion/rechazo, utilizando como densidad auxiliar la doble exponencial de
parametro 1 (o distribucion de Laplace, Lap(0,1) o Lap(1)), cuya funcion de densidad
viene dada por
g (x) =
1
2
e
|x|
, para todo x R.
El valor optimo para c es
c
opt
= max
xR
f (x)
g (x)
= max
xR
1
2
e
x
2
2
1
2
e
|x|
=
_
2
max
xR
e
(x)
=
_
2
e
max
xR
(x)
,
donde (x) =
x
2
2
+[x[. Dado que esta funcion es simetrica, continua en toda la recta
real y diferenciable tantas veces como se desee salvo en x = 0, bastara encontrar su
maximo absoluto en el intervalo [0. ]:
x > 0
(x) = x + 1,
(x) = 1;
x > 0.
(x) = 0 x = 1
(1) < 0.
De esta forma, alcanza un maximo relativo en x = 1 y otro de identico valor en
x = 1. Resulta facil demostrar que ambos son maximos absolutos (por los intervalos
de crecimiento y decrecimiento de la funcion). Consiguientemente,
c
opt
=
_
2
e
(1)
=
_
2
e
1/2
=
_
2e
1. 3155.
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 T = ln V , sino hacer T = ln V .
2. Hasta que U exp
_
T
2
2
[T[ +
1
2
_
1.
3. Devolver X = T.
La condicion que hay que comprobar para decidir si hay aceptacion o rechazo surge
de que
c U
g (T)
f (T)
=
_
2e
U
_
2
exp
_
T
2
2
[T[
_
= U exp
_
T
2
2
[T[ +
1
2
_
.
Dado que el n umero medio de repeticiones de los pasos 1-2 hasta que se obtiene un
valor simulado para X es c 1. 3155 y la probabilidad de aceptacion en el paso 2 es
p = 1/c =
_
2e
= 0. 76017, puede decirse que el algoritmo es bastante eciente.
32 CAP
ITULO 3. M
= max
x
f (x)
g
(x)
y, nalmente, elegir el mejor valor del parametro,
0
, en el sentido de ofrecer el menor
posible c
:
c
0
= mn
max
x
f (x)
g
(x)
.
3.2. EL M
ETODO DE ACEPTACI
ON/RECHAZO 33
Ejemplo 3.2.3 Supongase que se desea utilizar como densidad auxiliar en el metodo de
aceptacion/rechazo, para simular la normal estandar, la doble exponencial de parametro
> 0 (Lap(0,) o Lap()) ,
g
(x) =
2
e
|x|
, para todo x R.
Si pretendemos encontrar el mejor valor de , en terminos de eciencia del algo-
ritmo, debemos calcular
c
0
= mn
>0
max
xR
f (x)
g
(x)
= mn
>0
max
xR
1
2
e
x
2
2
2
e
|x|
.
De forma totalmente analoga a la vista para el caso = 1, se tiene
c
= max
xR
1
2
e
x
2
2
2
e
|x|
=
1
_
2
max
xR
e
(x)
=
1
_
2
e
max
xR
(x)
,
donde
(x) =
x
2
2
+ [x[. De forma totalmente similar a aquel caso puede probarse
que
() =
2
2
. Como consecuencia,
c
=
1
_
2
()
=
e
2
2
_
2
.
Ahora debemos encontrar
0
tal que c
0
= mn
>0
c
:
dc
d
=
_
2
2
2
e
2
2
2
=
_
2
2
2
(
2
1)
2
,
d
2
c
d
2
=
_
2
[e
2
2
(
2
1) +e
2
2
2]
2
e
2
2
(
2
1) 2
4
=
_
2
2
2
(
5
+
3
2
3
+ 2)
4
=
_
2
2
2
(
5
3
+ 2)
4
,
dc
d
= 0 = 1, ya que > 0
d
2
c
d
2
=1
= 2
_
2e
ITULO 3. M
2
e
x
2
2
, para todo x R,
puede apretarsepor h
1
(x) =
1
x
2
2
2
y h
2
(x) =
1
x
2
2
+
x
4
8
2
.
Captulo 4
Metodos universales para la
simulacion de variables discretas
En lo que sigue se expondran algunos metodos generales para simular distribucio-
nes discretas. En concreto, se estudiara el metodo de la transformacion cuantil en su
versi on 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 x
1
, x
2
, . . ., x
n
(. . .), con probabilidades p
j
= P (X = x
j
), j = 1, 2, . . . , n (. . .).
Un planteamiento estandar, equivalente al anterior, consiste en resolver la cuesti on de
simular la variable aleatoria I que toma los valores 1, 2, . . . , n (. . .) con las mismas
probabilidades p
j
, j = 1, 2, . . . , n (. . .).
4.1. El metodo de la transformacion cuantil
Este metodo es una adaptacion del metodo de inversion (valido para el caso conti-
nuo) a distribuciones discretas. En primer lugar veamos porque el metodo de inversion
no es aplicable directamente en este caso.
Dada una variable aletoria discreta, su funcion de distribucion viene dada por
F (x) =
x
j
x
p
j
, x R.
Supondremos (por comodidad) que los valores que toma la variable ya estan orde-
nados y nos ce niremos al caso nito. De esta forma tendramos: x
1
< x
2
< < x
n
.
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 p
1
, p
1
+p
2
, . . ., p
1
+p
2
+ +p
n
.
Siendo, por tanto, discreta y no pudiendo tener distribucion U (0, 1).
35
36 CAP
ITULO 4. M
i=1
p
i
U
_
= x
k
, tal que
k
i=1
p
i
U >
k1
i=1
p
i
.
4.1. EL M
ETODO DE LA TRANSFORMACI
ON CUANTIL 37
Todo el problema radica, por tanto, en encontrar el valor, k, de la variable, I, que
guarda las etiquetas, para el cual la funcion de distribucion supera o iguala por pri-
mera vez al valor de U. Este valor puede hallarse mediante una b usqueda secuencial,
utilizando el siguiente algoritmo:
Algoritmo de transformacion cuantil con b usqueda secuencial
1. Generar U U (0, 1).
2. Hacer I = 1 y S = p
1
.
3. Mientras U > S hacer
3.1. I = I + 1 y S = S +p
I
.
4. Devolver X = x
I
.
Si se desea generar un gran n umero de valores de la variable X (que es lo mas
habitual) puede resultar mas eciente calcular previamente las cantidades S
j
=
j
i=1
p
j
de forma recursiva: S
1
= p
1
, S
j
= S
j1
+p
j
para j = 2, 3, . . . , n y hacer la comparacion
U > S
I
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) Tomese una varia-
ble, X, con distribucion de Poisson de parametro , que toma los valores x
1
= 0,
x
2
= 1, . . . con probabilidades
p
j
= P (X = x
j
) = P (X = j 1) =
e
j1
(j 1)!
, j = 1, 2, . . .
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
3.1. I = I + 1 y S = S +
e
I1
(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 simplicar los calculos que aparecen en el paso 3.1, es conveniente
calcular las probabilidades de forma recursiva
P (X = j) =
e
j
j!
=
j
e
j1
(j 1)!
=
j
P (X = j 1) ,
As, el algoritmo optimizado es
1. Generar U U (0, 1).
2. Hacer I = 0, p = e
y S = p.
3. Mientras U > S hacer
3.1. I = I + 1, p =
I
p y S = S +p.
4. Devolver X = I.
38 CAP
ITULO 4. M
j=1
jp
j
si X toma un innitos valores
Resulta pues evidente que, como no existe una unica 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 distribucion dada por
P (X = 3) = 0. 1, P (X = 5) = 0. 3, P (X = 7) = 0. 6
Tomando x
1
= 3, x
2
= 5, x
3
= 7, se tiene un etiquetado I con distribucion
P (I = 1) = 0. 1, P (I = 2) = 0. 3, P (I = 3) = 0. 6
y, por tanto, con media E (I) = 1 0. 1 + 2 0. 3 + 3 0. 6 = 2. 5.
Si, por el contrario, consideramos el etiquetado x
1
= 7, x
2
= 5, x
3
= 3, se tiene que
P (I
= 1) = 0. 6, P (I
= 2) = 0. 3, P (I
= 3) = 0. 1
y as E (I
) = 1 0. 6 + 2 0. 3 + 3 0. 1 = 1. 5.
Se observa que E (I
n1
j=1
p
j
, no es necesario comprobar U >
n
j=1
p
j
= 1
(que siempre es falso), sino que generamos x
n
sin necesidad de efectuar esa comparacion.
Por ese motivo el n umero medio de comparaciones sera realmente:
n1
j=1
jp
j
+ (n 1) p
n
.
4.1. EL M
ETODO DE LA TRANSFORMACI
ON CUANTIL 39
Ejemplo 4.1.3 Consideremos la variable aleatoria discreta con distibucion
P (X = 1) = 0. 11, P (X = 3) = 0. 3, P (X = 5) = 0. 25,
P (X = 7) = 0. 21, P (X = 9) = 0. 13.
Tomando el etiquetado x
1
= 1, x
2
= 3, x
3
= 5, x
4
= 7 y x
5
= 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 x
1
= 3, x
2
= 5, x
3
= 7, x
4
= 9 y
x
5
= 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. Calculo directo de la funcion cuantil
En ocasiones el metodo de la transformacion cuantil puede acelerarse computacio-
nalmente porque, mediante calculos directos, es posible encontrar el valor de la 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 distribucion uniforme discreta en 1, 2, . . . , n) En este caso
la masa de probabilidad viene dada por
p
j
=
1
n
, para j = 1, 2, . . . n.
De esta forma se tiene
k
i=1
p
i
U >
k1
i=1
p
i
k
n
U >
k 1
n
k nU > k 1.
Esta ultima condicion equivale a k = nU| + 1, siendo x| la parte entera de x.
El algoritmo resulta:
1. Generar U U (0, 1).
2. Devolver X = nU| + 1.
40 CAP
ITULO 4. M
i=0
p (1 p)
i
=
p (1 p)
j+1
p
1 p 1
= 1 (1 p)
j+1
.
Como consecuencia se tiene
F (k) U > F (k 1) 1 (1 p)
k+1
U > 1 (1 p)
k
(1 p)
k
> 1 U (1 p)
k+1
k ln (1 p) > ln (1 U) (k + 1) ln (1 p)
k <
ln (1 U)
ln (1 p)
k + 1
condicion que equivale a
k =
_
ln (1 U)
ln (1 p)
_
.
El algoritmo procedera de la siguiente forma:
0. Hacer a = ln (1 p).
1. Generar U U (0, 1).
2. Devolver X =
_
ln U
a
_
.
4.2. ALGORITMOS BASADOS EN
ARBOLES BINARIOS 41
4.2. Algoritmos basados en arboles binarios
El uso de arboles binarios permite, en muchos casos, obtener algoritmos mas e-
cientes 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
NODO TERMINAL
ARCO
NODO RA
IZ
l
l
l
l
&
&
&
d
d
42 CAP
ITULO 4. M
i=1
p
i
d
i
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 Human
Un arbol de Human 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 nalizar con un arbol con solo dos nodos.
4.3. EL M
ETODO DE LA TABLA GU
IA 43
4.3. El metodo de la tabla gua
El mayor problema computacional del metodo de la transformacion cuantil consiste
en encontrar el ndice k que cumple
k
i=1
p
i
U >
k1
i=1
p
i
. Como ya se ha visto en
los dos ultimos 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 maximo el n umero de
comparaciones necesarias a la hora de comprobar la condicion
k
i=1
p
i
U >
k1
i=1
p
i
.
Considerese una variable aleatoria discreta con masa de probabilidad dada por p
j
,
j = 1, 2, . . . , n y defnanse las sumas acumulativas de estas probabilidades (que no son
otra cosa que los valores que toma la funcion de distribucion), q
j
=
j
i=1
p
i
, que, para
evitar calculos innecesarios, deben calcularse de forma recursiva: q
0
= 0, q
j
= q
j1
+p
j
,
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
forma J
i
= [
i1
n
,
i
n
) para i = 1, 2, . . . , n y luego denir los valores de la tabla gua
g
i
= max
_
j
_
q
j
<
i
n
_
, para i = 1, 2, . . . , 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 distribucion discreta dada por p
1
= 0. 13,
p
2
= 0. 25, p
3
= 0. 17, p
4
= 0. 1, p
5
= 0. 24 y p
6
= 0. 11. Se tiene que q
1
= 0. 13,
q
2
= 0. 38, q
3
= 0. 55, q
4
= 0. 65, q
5
= 0. 89 y q
6
= 1. Los valores de la tabla gua son
g
1
= 1, g
2
= 1, g
3
= 2, g
4
= 4, g
5
= 4, g
6
= 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 J
i
ha cado, basta con hacer i = nU| +1.
Lo unico que resta por hacer, una vez encontrado este ndice, es obtener el valor del
ndice I a simular. Dicho valor sera g
i
+ 1 si ya ocurre que U > q
g
i
. En caso contrario
deberemos encontrar el primer ndice j = g
i
1, g
i
2, . . . , 0, para el cual se cumple
U > q
j
y luego hacer I = j + 1.
44 CAP
ITULO 4. M
i=1
(1 + #j /q
j
J
i
) = 1 +
1
n
n
i=1
#j /q
j
J
i
= 1 +
1
n
#j /q
j
[0, 1) = 1 +
n 1
n
< 2.
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)
1+
n
m
. Gracias a este argumento, para variables con un n umero exhorbitante de posibles
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. M
ETODO DE TRUNCAMIENTO 45
4.4. Metodo 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 p
1
, p
2
, . . ., p
n
. En este caso, la funci on de
distribucion de I viene dada por
F (x) =
ix
p
i
.
Supongase, ademas, que tenemos otra variable aleatoria continua, con funcion de dis-
tribucion G(x) y ciertos valores a
0
= < a
1
< a
2
< < a
n1
< a
n
= , tales que
F (i) F (i
) = p
i
= G(a
i
) G(a
i1
), i = 1, 2, . . . , n. Esta ultima condicion viene a
garantizar que la probabilidad de que la variable continua caiga en el intervalo [a
i1
, a
i
)
coincide con la probabilidad con la que la variable discreta original toma el valor i.
Si la distribucion continua es facil de simular, simplemente deberemos generar va-
lores de la misma y luego transformarlos en valores de la variable I.
Algoritmo de simulacion por truncamiento
1. Generar T con distribucion G.
2. Encontrar el valor i tal que a
i1
T < a
i
.
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 a
i
= i, i = 0, 1, . . . , n (o, incluso, innitos valores a
i
de
esta forma). En este caso el algoritmo resulta:
Algoritmo de simulacion por truncamiento a la parte entera
1. Generar T con distribucion G.
2. Hacer I = T| + 1.
46 CAP
ITULO 4. M
_
1 e
(i1)
_
= e
(i1)
e
i
= e
(i1)
_
1 e
_
=
_
1 e
_ _
e
_
i1
= p (1 p)
i1
siempre que tomemos p = 1 e
.
3. Devolver X = T|.
Este es el mismo algoritmo que se obtena anteriormente cuando razonabamos como
calcular directamente el valor de la funcion cuantil para la distribucion geometrica.
Captulo 5
Metodos especcos para la
simulacion de distribuciones
notables
En este captulo se estudiaran algoritmos especcos 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. Distribuciones continuas
5.1.1. La distribucion uniforme
Una vez generada la variable U con distribucion U(0, 1), la variable X con distri-
bucion U(a, b) se obtiene haciendo X = a + (b a)U.
Algoritmo para generar la U(a, b)
1. Generar U U (0, 1).
2. Hacer X = a + (b a)U.
47
48 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
5.1.2. La distribucion normal
Se trata de simular X con distribucion normal estandar, ya que la variable Y
N (, ) , con parametros arbitrarios ( R, > 0), puede simularse mediante Y =
+X.
Metodo de Box-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
2 ln U y W
2
= 2V .
3. Devolver X
1
= W
1
cos W
2
, X
2
= W
1
senW
2
.
Metodo 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 V
1
y V
2
, con distribucion U (1, 1), la distribu-
cion condicionada
_
V
1
2 ln (V
2
1
+V
2
2
)
V
2
1
+V
2
2
, V
2
2 ln (V
2
1
+V
2
2
)
V
2
1
+V
2
2
_
V
2
1
+V
2
2
1
es N
2
__
0
0
_
,
_
1 0
0 1
__
.
Algoritmo polar
1. Generar U
1
, U
2
U (0, 1).
2. Hacer V
1
= 2U
1
1, V
2
= 2U
2
1 y W = V
2
1
+V
2
2
.
3. Si W > 1 entonces volver a 1.
4. Hacer Y =
_
2 ln W
W
.
5. Devolver X
1
= V
1
Y , X
2
= V
2
Y .
5.1. DISTRIBUCIONES CONTINUAS 49
Metodo del Teorema Central del Lmite
Como su propio nombre indica, este metodo se deriva a partir del Teorema Central
del Lmite:
Dadas variables aleatorias T
1
, T
2
, . . ., T
n
, independientes e identicamente distribui-
das, con media
T
y varianza
2
T
nitas, se tiene que
T
T
nN (0, 1) ,
si n es sucientemente 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 T
i
= U
i
U (0, 1) y n = 12 (por simplicidad de
calculo). De esta forma, la variable
U
U
n =
12
i=1
U
i
6
tiene distribucion aproximadamente N (0, 1) .
Algoritmo basado en el TCL
1. Generar U
1
, U
2
, . . . , U
12
U (0, 1).
2. Devolver X = U
1
+U
2
+ +U
12
6.
5.1.3. La distribucion de Cauchy
Esta distribucion puede denirse, de forma general, dependiendo de dos parametros:
el de localizacion y > 0 el de escala. Su funcion de densidad viene dada por
f (x) =
2
+ (x )
2
_, para todo x R.
Un sencillo calculo permite hallar su funcion de distribucion:
F (x) =
1
arctan
_
x
_
+
1
2
,
pudiendose implementar el metodo de inversion.
Algoritmo basado en el metodo de inversion
1. Generar U U (0, 1).
2. Devolver X = tan (U) +.
50 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
5.1.4. La distribucion exponencial
Se simula utilizando el metodo de inversion.
Algoritmo basado en el metodo de inversion
1. Hacer L =
1
.
2. Generar U U (0, 1).
3. Devolver X = L ln U.
5.1.5. La distribucion de Laplace o doble exponencial
Esta distribucion puede denirse, de forma general, dependiendo de dos parametros:
el de localizacion y > 0 el de escala. Su funcion de densidad viene dada por
f (x) =
2
e
|x|
, para todo x R.
Su funcion de distribucion es:
F (x) =
_
1
2
e
(x)
si x <
1
1
2
e
(x)
si x
pudiendose generar por el metodo de inversion.
Algoritmo basado en el metodo de inversion
1. Generar U, V U (0, 1).
2. Hacer T =
ln U
.
3. Si V < 1/2, devolver X = +T. En caso contrario,
hacer X = T.
5.1. DISTRIBUCIONES CONTINUAS 51
5.1.6. Las distribuciones gamma y de Erlang
La distribucion gamma, (a, p), depende de dos parametros: a > 0, parametro de
escala, y p > 0, parametro de forma. La distribucion de Erlang no es mas que la par-
ticularizacion de la gamma al caso en que p N.
La funcion de densidad de una (a, p) viene dada por
f (x) =
_
a
p
(p)
x
p1
e
ax
si x 0
0 si x < 0
donde (p) =
_
0
x
p1
e
x
dx es la llamada funcion gamma de Euler.
Puede demostrarse una relacion recursiva para (p) sin mas que hacer una integra-
cion por partes:
Tomando u = x
p1
y dv = e
x
dx, se tiene,
(p) =
_
0
x
p1
e
x
dx =
_
x
p1
_
e
x
_
0
_
0
(p 1) x
p2
_
e
x
_
dx
= (p 1)
_
0
x
p2
e
x
dx = (p 1) (p 1)
Esto permite reducir el calculo de (p) al caso en que p (0, 1], ya que
(p) = (p 1) (p 2) (p [p]) (p [p])
Dado que (1) =
_
0
e
x
dx = 1, la expresion anterior se simplica cuando p N,
dando lugar a (p) = (p 1)!
Cuando p = 1 la densidad de la gamma es
f (x) =
_
ae
ax
si x 0
0 si x < 0
es decir, (a, 1)
d
= exp (a).
52 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
Una propiedad muy importante de la distribucion gamma es la llamada propiedad
de reproductividad, que arma que si se dispone de dos variables aleatorias indepen-
dientes, X (a, p
1
) e Y (a, p
2
), la suma de ambas tambien es una gamma:
X +Y (a, p
1
+p
2
).
Este resultado se puede generalizar, por induccion, a la suma de cualquier n umero
nito de variables gamma independientes con primer parametro, a, coincidente. En
virtud de ello, si p es entero, dadas X
1
, X
2
, , X
p
variables independientes con dis-
trinucion exp (a) (o, lo que es lo mismo, (a, 1)) se tiene que su suma,
p
i=1
X
i
, tiene
distribucion (a, p).
Como consecuencia, la distribucion de Erlang se puede simular facilmente como
suma de exponeciales:
Algoritmo reproductivo de simulacion de la Erlang
1. Desde i = 1 hasta p hacer
1.1. Generar U
i
U (0, 1).
1.2. Hacer X
i
=
ln U
i
a
.
2. Devolver X =
p
i=1
X
i
.
Este algoritmo puede agilizarse computacionalmente deniendo previamente el va-
lor L =
1
a
y calculando un unico logaritmo (en lugar de p) teniendo en cuenta que
p
i=1
X
i
=
p
i=1
ln U
i
a
=
1
a
ln (
p
i=1
U
i
). As se tiene:
Algoritmo reproductivo de simulacion de la Erlang optimizado
1. Hacer L =
1
a
.
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 ,= 1, la distribucion (a, p) podra generarse a partir de la distribucion
anterior, utilizando para ello la propiedad que arma que si X (1, p) entonces X/a
tiene distribucion (a, p).
El algoritmo de Tadikamalla (1978), que solo es valido si p >
3
4
(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 denirse la funcion
T (x) =
( 1) x
(p 1)
p1
exp
_
x +
[x (p 1)[ + (p 1) ( + 1)
_
.
Algoritmo de Tadikamalla
1. Generar X, doble exponencial con media p1 y parametro de escala
=
1
=
2
1+
4p3
.
2. Si X < 0 entonces volver a 1.
3. Generar U U (0, 1).
4. Si U T (X) entonces devolver X, sino volver a 1.
54 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
Como el anterior, el algoritmo de Cheng-Feast (1979) es un algoritmo de acepta-
cion/rechazo que es valido si p > 1 (a = 1).
Algoritmo de Cheng-Feast
1. Generar U
1
, U
2
, independientemente, con distribucion
U(0, 1) y hacer V =
_
p
1
6p
_
U
1
(p 1)U
2
.
2. Si
2(U
2
1)
p 1
+V +
1
V
2 hacer X = (p 1)V .
En otro caso, si
2 log U
2
p 1
log V +V 1 hacer X = (p 1)V .
3. Volver a 1.
El algoritmo de Best-Ahrens-Dieter (1983) es tambien un algoritmo de acepta-
cion/rechazo que es valido si p < 1 (a = 1).
Algoritmo de Best-Ahrens-Dieter
0. Hacer t = 0,07 + 0,75
1 p y b = 1 +
pe
t
t
.
1. Generar U
1
, U
2
, independientemente, con distribucion
U(0, 1) y hacer V = bU
1
.
2. Si V 1 hacer W = tV
1
p
. En otro caso, ir a 3.
2.1. Si U
2
2 W
2 +W
, ir a 5.
2.2. Si U
2
e
W
, ir a 5.
3. Hacer W = log
_
t(b V )
p
_
e Y =
W
t
.
3.1. Si U
2
(p + (1 p)Y ) 1, ir a 5.
3.2. Si U
2
Y
p1
, ir a 5.
4. Volver a 1.
5. Hacer X = W.
5.1. DISTRIBUCIONES CONTINUAS 55
5.1.7. La distribucion beta
Dadas dos variables aleatorias Y (1, p) y Z (1, q), independientes, se dice
que la variable
X =
Y
Y +Z
tiene distribucion (p, q), beta de parametros p y q.
La funcion de densidad de una (p, q) viene dada por
f (x) =
_
_
_
x
p1
(1 x)
q1
(p, q)
si x [0, 1]
0 en otro caso
siendo (p, q) =
_
1
0
x
p1
(1 x)
q1
dx.
Aunque existen multitud de algoritmos para simular la distribucion (p, q) , pro-
bablemente, el mas sencillo de todos es el que se obtiene, a partir de la distribucion
gamma, como consecuencia de la propia denicion.
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 U
1
, U
2
, . . . , U
p+q1
U (0, 1).
2. Ordenarlos: U
(1)
U
(2)
U
(p+q1)
.
3. Devolver X = U
(p)
.
56 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
Un metodo valido aunque p o q no sean enteros es el dado por el algoritmo de Johnk
(1964).
Algoritmo de Johnk
1. Repetir.
1.1. Generar U, V U (0, 1).
1.2. Hacer Y = U
1
p
, Z = V
1
q
, S = Y +Z.
2. Hasta que S 1.
3. Hacer X =
Y
S
.
Este metodo resulta extremadamente ineciente para p o q mayores que 1. Esto
es debido a que la condicion S 1 del paso 2 puede tardar muchsimo en vericarse.
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 eciente.
Algoritmo de Cheng
1.1. Hacer = p +q.
1.2. Si mn (p, q) 1 entonces hacer =
1
mn(p,q)
, en otro caso hacer =
_
2
2pq
.
1.3. Hacer = p +
1
.
2. Generar U
1
, U
2
U (0, 1).
3. Hacer V = ln
_
U
1
1U
1
_
y W = p e
V
.
4. Si ln
_
q+W
_
+V ln 4 < ln (U
2
1
U
2
) entonces volver a 1.
5. Devolver X =
W
q+W
.
5.1. DISTRIBUCIONES CONTINUAS 57
5.1.8. La distribucion chi-cuadrado de Pearson
Dadas variables aleatorias Z
1
, Z
2
, . . . , Z
n
independientes y con distribucion N (0, 1),
diremos que la variable X =
n
i=1
Z
2
i
tiene distribucion chi-cuadrado con n grados de
libertad (
2
n
).
Su funcion de densidad viene dada por
f (x) =
x
n
2
1
e
x
2
2
n
2
_
n
2
_ , para todo x 0
Es decir,
2
n
d
=
_
1
2
,
n
2
_
y los algoritmos vistos para la distribucion gamma son apli-
cables a este caso (para n grande es recomendable usar el algoritmo de Tadikamalla).
Ademas, debido a la reproductividad de la distribucion gamma, se tiene que
_
1
2
,
n
2
_
d
=
_
1
2
,
_
n
2
_
+
_
1
2
,
1
2
_
, cuando n no sea par, siendo esta ultima distribucion,
_
1
2
,
1
2
_
, 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
1. Hacer m =
_
n
2
.
2. Hacer S = 1.
3. Desde i = 1 hasta m hacer
3.1. Generar U U (0, 1).
3.2. Hacer S = S U.
4. Hacer X = 2 ln S.
5. Si n es impar hacer
6.1. Generar Z N (0, 1).
6.2. Hacer X = X +Z
2
.
7. Devolver X.
58 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
5.1.9. La distribucion F de Fisher-Snedecor
Dadas dos variables aleatorias Y
1
2
m
e Y
2
2
n
independientes, la variable
aleatoria
X =
Y
1
/m
Y
2
/n
tiene distribucion F de Fisher-Snedecor con m y n grados de libertad (F
m,n
).
Su funcion de densidad es
f (x) =
_
n
m
_n
2
_
m
2
,
n
2
_x
m
2
1
_
x +
n
m
_
m+n
2
, para todo x 0
Ademas de poder simularse a traves de algoritmos de simulacion de la chi-cuadrado,
puede simularse mediante el uso de una distribucion beta.
Algoritmo de simulacion de la F a traves de la beta
1. Generar Z
_
m
2
,
n
2
_
.
2. Hacer X =
nZ
m(1Z)
.
5.1.10. La distribucion t de Student
Dadas dos variables independientes Y
1
N (0, 1) e Y
2
2
n
, la variable aleatoria
X =
Y
1
_
Y
2
/n
tiene distribucion t de Student con n grados de libertad (t
n
).
Su funcion de densidad es
f (x) =
_
n+1
2
_
_
n
2
_
n
_
1 +
x
2
n
_
n+1
2
, para todo x R.
La t de Student puede simularse facilmente teniendo en cuenta la relacion entre
esta distribucion y la F de Fisher-Snedecor: t
2
n
d
= F
1,n
.
Algoritmo de simulacion de la t de Student a partir de la F
1. Generar U U (0, 1) y Z F
1,n
.
2. Si U < 0,5 entonces devolver X =
Z, si no devolver X =
Z.
5.1. DISTRIBUCIONES CONTINUAS 59
5.1.11. La distribucion de Weibull
La distribucion de Weibull, W (, ), es una generalizacion de la distribucion exp ().
Su funcion de densidad de probabilidad es
f (x) =
x
1
e
(x)
, para todo x 0
En particular, W (, 1)
d
= exp ().
Puede simularse facilmente mediante el metodo de inversion (ligeramente optimi-
zado).
Algoritmo de inversion para simular la distribucion de Weibull
1. Generar U U (0, 1).
2. Devolver X =
(ln U)
1
.
5.1.12. La distribucion 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 distribucion logstica mediante inversion
1. Generar U U (0, 1).
2. Devolver X = a b ln
_
1
U
1
_
.
60 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
5.1.13. La distribucion de Pareto
Tiene utilidad en ciencias como la Economa, donde en ocasiones sirve para mode-
lizar distribuciones de rentas.
Su densidad viene dada por
f (x) =
_
ab
a
x
a+1
si x b
0 si x < b
Como consecuencia, su funcion de distribucion resulta
F (x) =
_
0 si x < b
1
_
b
x
_
a
si x b
y, por tanto, es simulable mediante inversion. Una version optimizada del algoritmo es:
Algoritmo de inversion para simular la distribucion de Pareto
1. Generar U U (0, 1).
2. Devolver X =
b
U
1
a
.
5.2. Distribuciones discretas
5.2.1. La distribucion uniforme discreta
Dado un conjunto nito de N elementos (que, sin perdida de generalidad, supon-
dremos el conjunto 1, 2, . . . , N) la distribucion uniforme discreta en dicho conjun-
to (o equiprobable sobre dicho conjunto) es la denida por P (X = i) =
1
N
, 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 distribucion uniforme discreta en
1, 2, . . . , N
1. Generar U U (0, 1).
2. Devolver X = [N U] + 1.
5.2. DISTRIBUCIONES DISCRETAS 61
5.2.2. La distribucion binomial
La distribucion binomial de parametros n y p, B(n, p), se dene como el n umero
de exitos en n pruebas independientes, en las que la probabilidad de exito es p.
Su masa de probabilidad es
P (X = i) =
_
n
i
_
p
i
(1 p)
ni
, para i = 0, 1, . . . , n.
Puede simularse a partir de su denicion:
Algoritmo para la generacion de la distribucion B(n, p)
1. Hacer S = 0.
2. Repetir n veces
2.1. Generar U U (0, 1).
2.2. Si U p entonces hacer S = S + 1.
3. Devolver X = S.
Este metodo es extremadamente lento cuando n es grande. Por eso, en ese caso,
resulta mas ventajoso utilizar el metodo de la tabla gua.
5.2.3. La distribucion de Poisson
Una variable aleatoria discreta, X, tiene distribucion de Poisson de parametro > 0
si su masa de probabilidad viene dada por
P (X = i) =
e
i
i!
, para i = 0, 1, . . .
La distribucion de Poisson puede simularse mediante el metodo de la transformacion
cuantil con b usqueda secuencial.
62 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
Tambien puede simularse haciendo uso de la relacion que guarda con la distribucion
exponencial. As, dadas variables aleatorias T
1
, T
2
, . . ., T
n
, . . . independientes y con
distribucion exp (), la variable aleatoria entera, X, que verica
X
i=1
T
i
1 <
X+1
i=1
T
i
(deniendo X = 0 si T
1
> 1) tiene distribucion Pois().
Las variables aleatorias T
i
pueden simularse, utilizando valores U
i
de una uniforme,
mediante T
i
=
ln U
i
i=1
T
i
1 <
X+1
i=1
T
i
X
i=1
ln U
i
1 <
X+1
i=1
ln U
i
ln
_
X
i=1
U
i
_
1 <
ln
_
X+1
i=1
U
i
_
ln
_
X
i=1
U
i
_
> ln
_
X+1
i=1
U
i
_
i=1
U
i
e
>
X+1
i=1
U
i
.
As, puede utilizarse el siguiente algoritmo:
Algoritmo de simulacion de la Poisson a traves de la exponencial
1. Hacer p = 1 y S = 1.
2. Repetir
2.1. Generar U U (0, 1).
2.2. Hacer p = p U y S = S + 1.
3. Hasta que p < e
.
4. Hacer X = S.
Tanto este algoritmo como el de la transformacion cuantil tienen el inconveniente
de ser muy inecientes cuando es grande. En ese caso, aunque la distribucion de
Poisson tiene un n umero innito de posibles resultados, es perfectamente aplicable el
metodo de la tabla gua desembocando en una b usqueda secuencial cuando el intervalo
elegido sea el ultimo de la tabla. Esto mejora muy considerablemente la eciencia del
metodo.
5.2. DISTRIBUCIONES DISCRETAS 63
5.2.4. La distribucion geometrica
Su masa de probabilidad es
P (X = i) = p (1 p)
i
, para i = 0, 1, . . .
Ademas de poder simularse a partir de su denicion (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 distribucion geometrica
0. Hacer L =
1
ln (1 p)
.
1. Generar U U (0, 1).
2. Hacer T = L ln U.
3. Devolver X = [T].
5.2.5. La distribucion binomial negativa
La distribucion binomial negativa, BN (r, p) , generaliza a la geometrica, pudiendo
interpretarse como el n umero de fracasos antes del r-esimo exito.
Su funcion de masa de probabilidad es
P (X = i) =
_
i +r 1
i
_
p
r
(1 p)
i
, para i = 0, 1, . . .
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 especco basado en la propiedad
X[
Y
Pois (Y ) , Y
_
p
1 p
, r
_
X BN (r, p) .
Algoritmo condicional para simular la binomial negativa
1. Simular L
_
p
1 p
, r
_
.
2. Simular X Pois(L).
3. Devolver X.
64 CAP
ITULO 5. SIMULACI
ON DE DISTRIBUCIONES NOTABLES
Captulo 6
Simulacion de distribuciones
multidimensionales
La simulacion de vectores aleatorios X = (X
1
, X
2
, . . . , X
d
)
.
Es inmediato comprobar que el metodo anteriormente expuesto es igualmente valido
si las variables X
i
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 X
1
y las distribuciones condicionadas del
tipo X
i
[X
1
, X
2
, . . . , X
i1
para i = 2, 3, . . . , d.
65
66CAP
ITULO 6. SIMULACI
ON DE DISTRIBUCIONES MULTIDIMENSIONALES
Ejemplo 6.1.1 (Algoritmo para simular la distribucion normal bidimensio-
nal por el metodo de las distribuciones condicionadas) Consideremos una
N
2
__
1
2
_
,
_
2
1
12
12
2
2
__
,
por las propiedades de la distribucion normal, bastara saber simular la distribucion
N
2
__
0
0
_
,
_
2
1
12
12
2
2
__
y luego sumarle el vector
_
1
2
_
.
Dado que X
1
N (0,
1
), se tiene que
f
1
(x
1
) =
1
2
exp
_
x
2
1
2
2
1
_
Ademas
f (x
1
, x
2
) = f (x) =
1
2
_
det ()
exp
_
1
2
x
1
x
_
Como
1
=
1
det ()
_
2
2
12
12
2
1
_
=
1
2
1
2
2
2
12
_
2
2
12
12
2
1
_
se tiene que
1
2
x
1
x =
2
2
x
2
1
2
12
x
1
x
2
+
2
1
x
2
2
2 (
2
1
2
2
2
12
)
y, por tanto,
f
2
(x
2
[x
1
) =
f (x
1
, x
2
)
f
1
(x
1
)
=
1
2
2
_
2
1
2
2
2
12
exp
_
2
2
x
2
1
2
12
x
1
x
2
+
2
1
x
2
2
2 (
2
1
2
2
2
12
)
x
2
1
2
2
1
__
=
1
2
_
2
1
2
2
2
12
2
1
exp
_
2
1
2
2
x
2
1
2
2
1
12
x
1
x
2
+
4
1
x
2
2
(
2
1
2
2
2
12
) x
2
1
2
2
1
(
2
1
2
2
2
12
)
_
=
1
2
_
2
1
2
2
2
12
2
1
exp
_
2
2
1
12
x
1
x
2
+
4
1
x
2
2
+
2
12
x
2
1
2
2
1
(
2
1
2
2
2
12
)
_
=
1
2
_
2
1
2
2
2
12
2
1
exp
_
_
2
12
x
1
x
2
2
1
+x
2
2
+
2
12
x
2
1
4
1
2
2
1
2
2
2
12
2
1
_
_
=
1
2
_
2
1
2
2
2
12
2
1
exp
_
_
_
_
x
2
12
x
1
2
1
_
2
2
2
1
2
2
2
12
2
1
_
_
_
que es la densidad de una N
_
12
2
1
x
1
,
2
1
2
2
2
12
2
1
_
.
6.1. M
12
2
2
__
entonces X
1
N (0,
2
1
) y X
2
[X
1
N
_
12
2
1
X
1
,
_
2
1
2
2
2
12
2
1
_
. As, el algoritmo de simu-
lacion consistira en los siguientes pasos:
1. Simular Z
1
, Z
2
N (0, 1) independientes.
2. Hacer Y
1
=
1
Z
1
.
3. Hacer Y
2
=
12
2
1
Y
1
+Z
2
_
2
1
2
2
2
12
2
1
.
4. Hacer X
1
= Y
1
+
1
, X
2
= Y
2
+
2
.
5. Devolver
X = (X
1
, X
2
)
t
.
Ejemplo 6.1.2 (La distribucion uniforme en el crculo unitario). Se trata de
la distribucion bidimensional continua cuya densidad es constante en dicho crculo
C = (x
1
, x
2
)
R
2
/x
2
1
+x
2
2
1.
Su funcion de densidad viene dada por
f (x
1
, x
2
) =
_
1
si (x
1
, x
2
)
C
0 si (x
1
, x
2
) / / C
La densidad marginal de la primera variable resulta
f
1
(x
1
) =
_
+
1x
2
1
1x
2
1
1
dx
2
=
2
_
1 x
2
1
si x
1
[1, 1]
es decir,
f
1
(x
1
) =
_
2
_
1 x
2
1
si x
1
[1, 1]
0 si x
1
/ [1, 1]
Ademas
f
2
(x
2
[x
1
) =
f (x
1
, x
2
)
f
1
(x
1
)
=
1
1x
2
1
=
1
2
_
1 x
2
1
, si x
2
_
_
1 x
2
1
,
_
1 x
2
1
_
valiendo cero en otro caso.
Se tiene entonces que
X
2
[X
1
U
_
_
1 X
2
1
,
_
1 X
2
1
_
,
siempre que X
1
[1, 1].
Finalmente, el algoritmo resulta:
1. Simular X
1
con densidad f
1
.
2. Simular X
2
con densidad U
_
_
1 X
2
1
,
_
1 X
2
1
_
.
3. Devolver X = (X
1
, X
2
)
.
Para el paso 1 puede utilizarse, por ejemplo, el metodo de aceptacion/rechazo, pues
se trata de una densidad acotada denida en un intervalo acotado.
68CAP
ITULO 6. SIMULACI
ON DE DISTRIBUCIONES MULTIDIMENSIONALES
6.2. El metodo de aceptacion/rechazo
La idea general del metodo de aceptacion/rechazo es aplicable para simular variables
aleatorias denidas en cualquier espacio (no solo en R). En particular puede usarse para
simular vectores aleatorios de R
d
. 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
eciencia razonables cuando la dimension es elevada.
Ejemplo 6.2.1 (Simulacion de puntos uniformemente distribudos sobre la
esfera unitaria d-dimensional C
d
)
C
d
=
_
(x
1
, x
2
, . . . , x
d
)
R
d
/x
2
1
+x
2
2
+ +x
2
d
1
_
Denotando por V
d
(1), el volumen (la medida) de la esfera d-dimensional de radio 1
(en general, la de radio r verica V
d
(r) = r
d
V
d
(1)), se tiene:
f (x
1
, x
2
, . . . , x
d
) =
_
1
V
d
(1)
si (x
1
, x
2
, . . . , x
d
)
C
d
0 si (x
1
, x
2
, . . . , x
d
)
/ C
d
Para simular valores en R
d
, con densidad f, podemos utilizar como densidad auxiliar
la de una U
_
[1, 1] [1, 1]
d
[1, 1]
_
= U
_
[1, 1]
d
_
, dada por
g (x
1
, x
2
, . . . , x
d
) =
_
1
2
d
si x
i
[1, 1], para todo i = 1, 2, . . . , d
0 en otro caso
La constante c optima para la utilizacion del metodo de aceptacion/rechazo es
c = max
x /g(x)>0
f (x)
g (x)
=
1
V
d
(1)
1
2
d
=
2
d
V
d
(1)
y la condicion de aceptacion cUg (T) f (T) se convierte en
2
d
V
d
(1)
U
1
2
d
1
[1,1]
d (T)
1
V
d
(1)
1
C
d
(T)
o, lo que es lo mismo, U1
[1,1]
d (T) 1
C
d
(T). Esta condicion equivale a que T C
d
,
es decir, que se verique
T
2
1
+T
2
2
+ +T
2
d
1
Por otra parte, la simulacion de T U
_
[1, 1]
d
_
puede hacerse trivialmente me-
diante T
i
U ([1, 1]) para cada i = 1, 2, . . . , d, ya que las componentes son indepen-
dientes. Como el valor de U es superuo en este caso, el algoritmo queda:
1. Simular V
1
, V
2
, . . . , V
d
U (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer T
i
= 2V
i
1.
3. Si T
2
1
+T
2
2
+ +T
2
d
> 1 entonces volver al paso 1.
4. Devolver X = (T
1
, T
2
, . . . , T
d
)
.
6.3. M
ETODOS DE CODIFICACI
ON O ETIQUETADO 69
Usando las formulas del volumen de una esfera d-dimensional:
V
d
(r) =
_
d/2
r
d
(d/2)!
si d es par
2
d
2
|
+1
d
2
|
r
d
1 3 5 d
si d es impar
puede verse que el n umero medio de repeticiones de los pasos 1-3 del algoritmo, que
viene dado por la constante c =
2
d
V
d
(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. Metodos de codicacion 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 codicacion y la idea basica consiste en construir una funcion h que
codique 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
(X
1
, X
2
)
ITULO 6. SIMULACI
ON DE DISTRIBUCIONES MULTIDIMENSIONALES
Consideremos k Z
+
, el valor (i, j) = h
1
(k) debe vericar
h(i, j) = k
(i +j) (i +j + 1)
2
+i = k
Denotando ahora n = i + j, para encontrar (i, j) = h
1
(k) basta con hallar n e i,
enteros positivos, con n i tales que
n(n + 1)
2
+i = k
Debemos entonces encontrar el unico n que cumple
n(n + 1)
2
k
n(n + 1)
2
+n <
n(n + 1) + 2 (n + 1)
2
=
(n + 1) (n + 2)
2
Como ademas n
2
< n(n + 1) y (n + 1) (n + 2) < (n + 2)
2
, se tiene que ese valor n ha
de vericar
n
2
< 2k < (n + 2)
2
,
es decir
_
2k
_
2 < n
_
2k
_
.
Dicho de otro modo, se tiene que n ha de ser igual a
_
2k
_
1 o
_
2k
_
.
Basta entonces con calcular la expresion
n(n+1)
2
para esos posibles valores de n y
comparar el resultado con 2k. As, si
_
2k
_ __
2k
_
+ 1
_
> 2k entonces n =
_
2k
_
1 y, en caso contrario, n =
_
2k
_
. Finalmente se calcula
i = k
n(n + 1)
2
y j = n i
El calculo de h
1
(k) es muy rapido y el resto del algoritmo se reduce a la simulacion
de la variable unidimensional C.
Ejemplo 6.3.2 Calculemos por el procedimiento anterior el valor h
1
(16). Calcula-
mos primeramente n =
_
2 16
_
=
_
2 16
_
=
_
32
_
= 5. 656 854 2| = 5. Luego
calculamos 5 (5 + 1) = 30 32 = 2 16, con lo cual n = 5. Ademas i = 16
56
2
= 1 y
j = 5 1 = 4. As pues se obtiene h
1
(16) = (1, 4).
Aunque no entraremos con detalle en ello, conviene resaltar que es posible genera-
lizar este tipo de funciones de codicacion a (Z
+
)
d
. Tambien es factible encontrar la
inversa de tal funcion generalizada (llamada funcion de decodicacion) que se puede
calcular ecientemente.
Cuando la variable aleatoria X
2
toma un n umero nito de valores (supongamos
comprendidos entre 0 y M), otra posible funcion de codicacion, mas sencilla es
h(i, j) = (M + 1) i +j
cuya inversa viene dada por
h
1
(k) =
__
k
M + 1
_
, kmod (M + 1)
_
.
Estas funciones de codicacion y decodicacion son generalizables a (Z
+
)
d
y aplicables
al caso en que el vector aleatorio X tome un n umero nito de valores.
6.4. M
ONNORMAL MULTIVARIANTE71
6.4. Metodos para simular la distribucion normal
multivariante
Dado un vector = (
1
,
1
, . . . ,
d
)
R
d
y una matriz denida 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 N
d
( , ), es
la que tiene densidad dada por
f (x ) = (2)
d/2
det ()
1/2
exp
_
1
2
(x )
1
(x )
_
Cuando es diagonal
=
_
_
_
_
_
2
1
0 0
0
2
2
0
.
.
.
.
.
.
.
.
.
.
.
.
0 0
2
d
_
_
_
_
_
,
se obtiene facilmente
f (x ) = (2)
d/2
_
d
i=1
2
i
_
1/2
exp
_
_
_
_
_
_
1
2
(x )
_
_
_
_
_
_
1
2
1
0 0
0
1
2
2
0
.
.
.
.
.
.
.
.
.
.
.
.
0 0
1
2
d
_
_
_
_
_
_
(x )
_
_
_
_
_
_
= (2)
d/2
_
d
i=1
1
i
_
exp
_
1
2
d
i=
(x
i
i
)
2
2
i
_
=
d
i=1
_
1
2
exp
_
(x
i
i
)
2
2
2
i
__
=
d
i=1
1
,
i
(x
i
)
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 N
d
( , ) mediante el siguiente algoritmo:
1. Simular Z
1
, Z
2
, . . . , Z
d
N (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer X
i
=
i
+
i
Z
i
.
3. Devolver X = (X
1
, X
2
, . . . , X
d
)
.
72CAP
ITULO 6. SIMULACI
ON DE DISTRIBUCIONES MULTIDIMENSIONALES
Una propiedad que resulta muy util para simular la distribucion N
d
( , ) con
arbitraria es la siguiente.
Proposicion 6.4.1 Si X N
d
( , ) y A es una matriz de dimension pd, de rango
maximo, con p d, entonces Y = AX N
p
(A , AA
).
Dada una variable aleatoria X N
d
( , ), Y = X N
d
(0 , ).
Si es una matriz denida positiva, existe una matriz ortogonal H (es decir, tal
que H
1
= H
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 inde-
pendientes (y de modulo unitario) de la matriz , es decir, d vectores linealmente
independientes, x
1
, x
2
, . . . , x
d
, tales que x
i
x
i
= 1 para todo i = 1, 2, . . . , n y con
x
i
x
j
= 0 si i ,= j, vericando ademas que
i
R tal que x
i
=
i
x
i
(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 N
d
(0, I) (facilmente simulable a partir de Z
1
, Z
2
,
. . ., Z
d
N (0, 1) independientes), se tiene que
1/2
Z N
d
(0, ), siendo
1/2
=
_
_
_
_
_
1/2
1
0 0
0
1/2
2
0
.
.
.
.
.
.
.
.
.
.
.
.
0 0
1/2
d
_
_
_
_
_
.
Multiplicando por la izquierda por la matriz H, se tiene
H
1/2
Z N
d
(0, HH
) N
d
(0, )
Finalmente, basta sumar el vector para obtener
X = +H
1/2
Z N
d
( , )
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 Z
1
, Z
2
, . . . , Z
d
N (0, 1) independientes.
2. Para i = 1, 2, . . . , d hacer Y
i
=
i
Z
i
.
3. Devolver X = +HY.
6.4. M
ONNORMAL MULTIVARIANTE73
Ejemplo 6.4.1 Dar un algoritmo para simular la distribucion
N
2
__
1
3
_
,
_
2,36 0,48
0,48 2,64
__
Para encontrar los autovalores y autovectores de resolvemos det (I) = 0,
es decir,
2,36 0,48
0,48 2,64
2
5 + 6 = 0 =
5
5
2
6 4
2
que ofrece como soluciones
1
= 3 y
2
= 2.
Para encontrar autovectores de modulo 1 correspondientes a esos autovalores no
tenemos mas que resolver los sistemas (
i
I) = 0 para i = 1, 2 imponiendo la
condicion de modulo igual a 1, es decir x
2
1
+x
2
2
= 1. As, resulta
1
I =
_
-0.64 -0.48
-0.48 -0.36
_
= -0.04
_
16 12
12 9
_
, luego
(
1
I) x = 0 x
2
=
4
3
x
1
, pero como x
2
1
+x
2
2
= 1, se tiene
25
9
x
2
1
= 1, luego x
1
=
3
5
y x
2
=
4
5
(tambien es solucion si cambiamos ambos de signo);
2
I =
_
0.36 -0.48
-0.48 0.64
_
= 0.04
_
9 12
12 16
_
, luego
(
2
I) x = 0 x
2
=
3
4
x
1
, pero como x
2
1
+x
2
2
= 1, se tiene
25
16
x
2
1
= 1, luego x
1
=
4
5
y x
2
=
3
5
De esta forma, la matriz H resulta, entre otras posibilidades,
H =
_
3/5 4/5
4/5 3/5
_
=
_
0.6 0.8
-0.8 0.6
_
.
Ahora
Y =
1/2
Z =
_
3 0
0
2
__
Z
1
Z
2
_
=
_
3Z
1
2Z
2
_
y nalmente,
X = +HY =
_
1 + 0.6Y
1
+ 0.8Y
2
3 0.8Y
1
+ 0.6Y
2
_
As, el algoritmo resultara
1. Simular Z
1
, Z
2
N (0, 1) independientes.
2. Hacer Y
1
=
3Z
1
e Y
2
=
2Z
2
.
3. Obtener X
1
= 1 + 0.6Y
1
+ 0.8Y
2
y X
2
= 3 0.8Y
1
+ 0.6Y
2
.
4. Devolver X = (X
1
, X
2
)
.
74CAP
ITULO 6. SIMULACI
ON DE DISTRIBUCIONES MULTIDIMENSIONALES
Captulo 7
Dise no de experimentos de
simulacion
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 experimenta-
cion 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 experi-
mentacion articial (estimacion, intervalos de conanza, contrastes de hipotesis, etc.).
Por todo ello, puede armarse 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
conanza 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
76 CAP
ITULO 7. DISE
NO DE EXPERIMENTOS DE SIMULACI
ON
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 experimenta-
cion real.
3. Una peculiaridad de la simulacion es que casi siempre es posible comparar dis-
tintas estrategias sobre las mismas muestras simuladas (simplemente utilizando
la misma semilla en la simulacion, convenientemente planicada).
7.2. Simulacion estatica y dinamica
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 com-
probar el comportamiento comparativo de diversos metodos estadsticos alternativos
para tama nos muestrales nitos (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 simulacion continua, en la que
se supone que el sistema cambia de estado constantemente, y la simulacion discreta,
para la cual los cambios se producen en ciertos instantes de tiempo singulares.
7.3. Simulacion por eventos y por cuantos
Con el nombre de simulacion por eventos, o asncrona, designamos el tipo de si-
mulacion din amica 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 lisofa totalmente diferente. Se trata de
examinar el sistema (que evoluciona en el tiempo) dejando pasar peque nos intervalos
de tiempo de longitud , ja, (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
ultima es muchas veces la unica posibilidad factible en la simulacion dinamica continua.
7.4. T
ECNICAS DE REDUCCI
ON DE LA VARIANZA 77
7.4. Tecnicas de reduccion de la varianza
Existen multitud de tecnicas encaminadas a reducir la varianza en un estudio de si-
mulacion o bien a tratar de estimarla. Algunas de ellas son el uso de n umeros aleatorios
comunes, la utilizacion de variables antiteticas, la estraticacion, 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 re-
peticiones (o trials) de un experimento de simulacion, de las cuales se han obtenido
los valores numericos de las variables de salida X
1
, X
2
, . . . , X
N
, para la primera, e Y
1
,
Y
2
, . . ., Y
N
, 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 =
1
N
N
i=1
(X
i
Y
i
), cuya varianza viene dada por
V ar
_
X Y
_
=
1
N
2
N
i=1
V ar (X
i
Y
i
) =
1
N
V ar (X
1
Y
1
)
=
1
N
(V ar (X
1
) +V ar (Y
1
) 2Cov (X
1
, Y
1
))
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 (X
i
, Y
i
) > 0 y,
por tanto,
V ar
_
X Y
_
1
N
(V ar (X
1
) +V ar (Y
1
))
que es la varianza que tendra X Y en caso de haber usado muestras independientes
para cada estrategia.
78 CAP
ITULO 7. DISE
NO DE EXPERIMENTOS DE SIMULACI
ON
7.4.2. Variables antiteticas
Supongase ahora que se desea evaluar el resultado de una unica estrategia (sin
compararla con ninguna otra alternativa). Despues de N repeticiones de la simulacion,
tendremos N valores numericos de las variables X
1
, X
2
, . . ., X
N
, procediendo a esti-
mar la media E (X) teorica mediante X =
1
N
N
i=1
X
i
. Dado que este es un estimador
insesgado, su precision puede medirse mediante V ar
_
X
_
.
Si las variables son independientes, la V ar
_
X
_
=
1
N
2
N
i=1
V ar (X
i
), mientras que,
en general, se tiene
V ar
_
X
_
=
1
N
2
_
N
i=1
V ar (X
i
) + 2
i<j
Cov (X
i
, X
j
)
_
Una forma de utilizar esta ultima 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 X
i
consiste en tomar un valor U U (0, 1) para simular X
2i1
y el
valor 1 U para simular X
2i
, su variable antitetica, para i = 1, 2, . . . ,
N
2
(si N es par).
El procedimiento es mas complicado con otros metodos de simulacion distintos del de
inversion.
7.4.3. Estraticacion
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 estraticado de una exponencial) Supongase que, da-
da una muestra de tama no 10 de una poblacion con distribucion exp (1) , se desea es-
timar la media poblacional.
Si pretendemos evitar que, por puro azar, exista alguna zona, en la que la exponen-
cial toma valores, no representada en la muestra de 10 datos, podemos proceder de 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 distribucion.
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.
7.4. T
ECNICAS DE REDUCCI
ON DE LA VARIANZA 79
Dado que, en principio, no hay nada que nos garantice que, simulando diez valores
U
1
, U
2
, . . . , U
10
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
es lo mismo que simular 4 valores de U[
U[0,6,1)
d
= U[0,6, 1) para el primer estrato, 5
valores de U[
U[0,1,0,6)
d
= U[0,1, 0,6) para el segundo y uno de U[
U[0,0,1)
d
= U[0, 0,1) para
el tercero.
El algoritmo con esta estraticacion sera como sigue:
1. Generar U
i
U (0, 1) para i = 1, 2, . . . , 10.
2. Si i 4 entonces hacer U
i
= 0,4 U
i
+ 0,6.
3. Si 4 < i 9 entonces hacer U
i
= 0,5 U
i
+ 0,1.
4. Si i = 10 entonces hacer U
i
= 0,1 U
i
.
5. Desde i = 1 hasta 10 devolver X
i
= ln U
i
.
No es difcil probar que V ar (X
i
) = 0,0214644 si i = 1, 2, 3, 4, V ar (X
i
) = 0,229504
si i = 5, 6, 7, 8, 9 y V ar (X
10
) = 1. Como consecuencia,
V ar
_
X
_
=
1
10
2
10
i=1
V ar (X
i
) = 0,022338
que es bastante menor que 0.1, la varianza en el caso de muestreo aleatorio simple no
estraticado.
80 CAP
ITULO 7. DISE
NO DE EXPERIMENTOS DE SIMULACI
ON
7.5. Problemas de estabilizacion y dependencia
Ambas cuestiones suelen plantearse en la simulacion dinamica. Los problemas de
estabilizacion estan relacionados con el hecho de que, en ocasiones, el sistema evolu-
ciona en el tiempo de tal forma que tiene una distribucion estacionaria que se 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 obte-
nidos para las variables de salida son ignorados y cuyo unico objeto es conseguir que
se estabilice la distribucion de probabilidad.
Ejemplo 7.5.1 Supongamos el siguiente modelo de simulacion:
X
t
= 10 + 0,7 (X
t1
10) +
t
para explicar la temperatura, X
t
, 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 X
0
correspondiente al origen de tiempos. En
otras palabras, tomando para X
0
un valor muy lejano a aquellos mas probables bajo la
distribucion estacionaria (por ejemplo, X
0
= 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 sucesion de valores:
X
0
= 100, X
1
= 73, X
2
= 54,1, X
3
= 40,87, X
4
= 31,7, X
5
= 25,4, . . . El perodo de
estabilizacion sera mucho menor si se partiese de un valor inicial mas cercano a 10.
Los problemas de dependencia son aquellos derivados del hecho de que frecuente-
mente (de nuevo en modelos de simulacion dinamica) las distintas variables de salida
de la simulacion son dependientes. En el ejemplo anterior es obvio que cada valor X
t
depende de X
t1
(incluso de X
t2
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.