Вы находитесь на странице: 1из 80

Simulacion estadstica

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

UMEROS UNIFORMES EN (0. 1)


Ademas de estas propiedades de tipo estadstico existen otros requisitos computa-
cionales. 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. Metodo de los cuadrados medios
Es debido a von Neumann y tiene fundamentalmente solo interes historico.
1. Se toma un n umero entero inicial, x
0
, 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 x
1
el n umero entero formado por las 2n cifras centrales.
4. Se eleva al cuadrado x
1
y se repite el proceso anterior tantas veces como sea
preciso.
5. Finalmente se consideran los n umeros u
i
=
x
i
10
2n
, ya en el intervalo (0. 1).
Ejemplo 2.2.1 Tomese n = 2 y x
0
= 4122. Resulta:
x
0
= 4122 x
2
0
= 16[9908[84 x
1
= 9908 x
2
1
= 98[1684[64
x
2
= 1684 x
2
2
= 02[8358[56 x
3
= 8358 x
2
3
= 69[8561[64
x
4
= 8561 x
2
4
= 73[2907[21 x
5
= 2907 x
2
5
= 08[4506[49
De esta forma, los n umeros pseudoaleatorios en (0. 1) son
u
0
= 0. 4122 u
1
= 0. 9908 u
2
= 0. 1684 u
3
= 0. 8385
u
4
= 0. 8561 u
5
= 0. 2907
Siguiendo, de nuevo, con n = 2, pero tomando como semilla x
0
= 3708, se obtiene
x
0
= 3708 x
2
0
= 13[7492[64 x
1
= 7292 x
2
1
= 56[1300[64
x
2
= 1300 x
2
2
= 01[6900[00 x
3
= 6900 x
2
3
= 47[6100[00
x
4
= 6100 x
2
4
= 37[2100[00 x
5
= 2100 x
2
5
= 04[4100[00
x
6
= 4100 x
2
6
= 16[8100[00 x
7
= 8100 x
2
7
= 65[6100[00
x
8
= 6100
As pues, como x
8
= x
4
, los valores u
4,
u
5
, u
6
, u
7
se repetiran cclicamente de forma
indenida. Este tipo de fenomenos de ciclo corto son su mayor inconveniente.
2.3. M

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

UMEROS UNIFORMES EN (0. 1)


2.4. Metodos congruenciales
Se basan en la idea de considerar una combinacion lineal de los ultimos k enteros
generados y calcular su resto al dividir por un entero jo 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 x
0
, un valor entero inicial que cumpla 0 x
0
< m.
3. Obtener de forma recurrente
x
n
= (ax
n1
+c) mod m
para n = 1, 2, . . .
4. Devolver los valores u
n
=
x
n
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:
x
n
= (5x
n1
+ 4) mod 8
Tomando como semilla los valores 5 o 2 se obtiene:
x
0
= 5 x
1
= 5 x
2
= 5
x
0
= 2 x
1
= 6 x
2
= 2 x
3
= 6
que presentan ciclos de longitud 1 y 2 respectivamente.
Cambiando el valor de c a 2 se tiene x
n
= (5x
n1
+ 2) mod 8 y as,
x
0
= 5 x
1
= 3 x
2
= 1 x
3
= 7 x
4
= 5
x
0
= 2 x
1
= 4 x
2
= 6 x
3
= 0 x
4
= 2
donde ambos ciclos son de longitud cuatro.
Finalmente dejando el mismo valor de m pero eligiendo a = 5 y c = 5, se tiene
x
n
= (5x
n1
+ 5) mod 8, que conduce a
x
0
= 5 x
1
= 6 x
2
= 3 x
3
= 4 x
4
= 1
x
5
= 2 x
6
= 7 x
7
= 0 x
8
= 5
x
0
= 2 x
1
= 7 x
2
= 0 x
3
= 5 x
4
= 6
x
5
= 3 x
6
= 4 x
7
= 1 x
8
= 2
con ciclo de longitud 8, que es el maximo valor posible.
2.4. M

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

UMEROS UNIFORMES EN (0. 1)


2.4.2. Generadores congruenciales de algunos lenguajes y bi-
bliotecas 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 unico 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 ultimo, de nuevo
por ser el 2 el unico 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 = 2
35
a = 2
7
+ 1 c = 1
m = 2
35
a = 5
15
c = 1
Todos ellos tienen tienen perodo maximo (e igual a 2
35
3,44 10
10
).
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 = 2
31
a = 314159269 c = 453805245
m = 2
31
1 a = 16807 c = 0 APL, IMSL y SIMPL/I
m = 2
31
1 a = 630360016 c = 0 Algunos FORTRAN
m = 2
32
a = 663608941 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 pseudoa-
leatorios de 48 bits: el drand48. Sus parametros son m = 2
48
, 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 signicativos de x
0
(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 modicar 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 ESTAD

ISTICAS DE LA CALIDAD DE UN GENERADOR 13


2.4.3. Otros generadores congruenciales
Generador congruencial lineal m ultiple
x
n
= (a
1
x
n1
+a
2
x
n2
+ +a
k
x
nk
+c) mod m
Generadores congruenciales no lineales
x
n
= g(x
n1
) mod m
Knuth(1981): x
n
= g(x
n1
) mod m, con g(x) = ax
2
+bx +c.
Generadores congruenciales matriciales
x
n
= (Ax
n1
+C) mod m
con x
n
un vector ddimensional y A y C matrices dd. Los elementos de los vectores
y de las matrices son enteros entre 1 y m1.
2.5. Medidas estadsticas de la calidad de un gene-
rador 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, e
i
, de ciertas modalidades, con las
observadas, o
i
, mediante el estadstico
D =
k

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

UMEROS UNIFORMES EN (0. 1)


cuya distribucion aproximada es la de una
2
k1
, siempre que la distribucion especicada
sea la correcta.
Comentarios:
1. Es muy corriente aplicar el test chi-cuadrado a un en casos en los que la dis-
tribucion de la variable no esta totalmente especicada sino que depende de alg un
parametro que, por tanto, habra de ser estimado (por ejemplo el caso en que se supon-
ga que la variable en concreto sigue una distribucion de Poisson y resta por especicar
su parametro ). En estos casos la distribucion aproximada del test ha de ser corregida
para incorporar esta informacion pasando a ser una
2
kr1
, siendo r el n umero de
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 distribucion U[a, b], realizando
el contraste chi-cuadrado.
En primer lugar se estiman por maxima verosimilitud los parametros de la distribu-
cion uniforme, obteniendose respectivamente el mnimo y el maximo muestral: a = 25
y

b = 55. Dividiendo el intervalo [25, 55] en cuatro clases de igual longitud se obtiene
la siguiente tabla:
clases n
i
e
i
(n
i
e
i
)
2
/e
i
[25, 32

5) 3 5 0

8
[32

5, 40) 5 5 0
[40. 47

5) 8 5 1

8
[47

5, 55] 4 5 0

2
Total 20 20 2

8
En este caso el valor del estadstico es Q = 2

8, que corresponde a un nivel crtico


de p = 0

09426, para una distribucion chi-cuadrado con 421 = 1 grado de libertad,


con lo cual aunque puede aceptarse la hipotesis de que la distribucion poblacional es
uniforme con = 0

01 o = 0

05, no se aceptara con = 0

1.
2.5. MEDIDAS ESTAD

ISTICAS DE LA CALIDAD DE UN GENERADOR 15


2.5.2. Contraste de Kolmogorov-Smirnov
A diferencia del procedimiento anterior, el test de Kolmogorov-Smirnov esta espe-
cialmente dise nado para el contraste de ajuste a distribuciones continuas.
El contraste de Kolmogorov-Smirnov esta basado en la distribucion del estadstico
D
n
:
D
n
= sup
xR
[F
n
(x) F(x)[
que representa la maxima discrepancia, en vertical, entre la funcion de distribucion
emprica
F
n
(x) =
N umero de observaciones X
i
x
n
y la teorica (F).
D
n
= max
i=1,2,...,n
D
n,i
= max[F
n
(x
(i)
) F(x
(i)
)[, [F

n
(x
(i)
) F(x
(i)
)[
Ejemplo 2.5.2 Contrastar que la muestra de datos de ocupacion de disco provenga 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

45221, cuyo nivel crtico es p < 0

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.
Metodos gracos
Como paso previo a la utilizacion de metodos cuantitativos siempre sera ilustrativo
representar gracamente los datos frente al tiempo, es decir, secuencialmente seg un su
orden de recogida (X
i
frente al ndice i).
16 CAP

ITULO 2. GENERACI

ON DE N

UMEROS UNIFORMES EN (0. 1)


Las situaciones de dependencia se corresponden con gracas 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 identicaran
mediante gracas moderadamente cambiantes.
Otro tipo de gracas que tambien permite detectar situaciones de dependencia son
las gracas en las que se representa cada valor de la muestra frente al valor anterior-
mente observado (X
i+1
frente a X
i
).
Otra forma de estudiar si hay dependencia en la muestra es mediante el calculo de
los coecientes de autocorrelacion. Del mismo modo que el coeciente de correlacion
lineal mide, de alguna forma, la presencia o ausencia de dependencia entre las variables
en cuestion, pueden denirse toda una serie de coecientes de autocorrelacion
que, en ese mismo sentido, miden la dependencia entre los datos observados con cierto
n umero de instantes de diferencia.
Dada una muestra X
1
, X
2
, . . . , X
n
, se dene el coeciente de autocorrelacion mues-
tral de orden uno como el valor
r(1) =

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/

n del eje horizontal, de manera que se consideraran siginicativamente 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
varianza de r(k) es
1 +

k1
j=1

2
j
n
.
2.5. MEDIDAS ESTAD

ISTICAS 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).
Denicion 2.5.1 Una racha es una sucesion de valores consecutivos repetidos que
este anqueada 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 va-
riable, 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 po-
sibles resultados, de manera que existen n
1
observaciones de un tipo y n
2
iguales al
otro valor de la variable en cuestion (n
1
+ n
2
= 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 n
1
y n
2
de elementos de cada tipo):
E(R) = 1 +
2n
1
n
2
n
V ar(R) =
2n
1
n
2
(2n
1
n
2
n)
n
2
(n 1)
Cuando el tama no muestral n tiende a innito, de forma que ademas n
1
/n tienda a
una constante, la distribucion de la variable R se puede aproximar por la distribucion
N
_
E(R),
_
V ar(R)
_
.
Aunque originalmente el test de las rachas esta dise nado para una distribucion con
solo dos posibles valores, suele aplicarse a aquellos casos en los que la distribucion en
cuestion es continua codicando las observaciones con los valores + o , seg un el dato
en cuestion quede por arriba o por abajo de la mediana muestral.
18 CAP

ITULO 2. GENERACI

ON DE N

UMEROS 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 ascen-
dente 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 peque-
nos (normalmente para n < 25), mientras que, cuando el n umero de datos, n, ex-
cede de los valores tabulados, puede usarse una aproximacion por la distribucion
N
_
(2n 1)/3,
_
(16n 29)/90
_
.
El contraste de Ljung-Box
Existen distintos procedimientos para contrastar la independencia mediante la rea-
lizacion de un contraste sobre si los primeros m coecientes de autocorrelacion son
cero. Uno de los mas utilizados a tal efecto es el de Ljung-Box, que utiliza para ello el
estadstico
Q = n(n + 2)
m

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

256. Por tanto, se acepta la independencia.


2.5. MEDIDAS ESTAD

ISTICAS 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
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 = 0

051. Este valor plantea serias dudas


sobre la hipotesis de independencia: tendramos una aceptacion muy justa de dicha
hipotesis con nivel = 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

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 jar un entero positivo, M, y discretizar los valores
generados, X
1
, X
2
, . . . , X
n
, de la forma M X
i
|+1, donde x| 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.
20 CAP

ITULO 2. GENERACI

ON DE N

UMEROS UNIFORMES EN (0. 1)


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, X
i
, si se cumple X
i
, 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 p
j
= 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:
1
T!
. 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 ESTAD

ISTICAS 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 e
i
5 llevara a
que 0. 0001
n
5
5, es decir, n 250 000.
Poker 2
Algo tambien bastante habitual es usar conjuntos de cinco enteros (como en el caso
anterior) pero deniendo 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 CAP

ITULO 2. GENERACI

ON DE N

UMEROS UNIFORMES EN (0. 1)


2.5.8. El contraste de pares seriados
La idea consiste en jar un entero M 2 y considerar los enteros M X
i
| + 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
n
2
1
M
2
. La elecciones mas frecuentes son M = 3, 10 o 20.
2.5.9. Chi-cuadrado sobre chi-cuadrado
Todos los contrastes anteriores se han planteado desde la perspectiva de la realiza-
cion de una unica prueba. Es decir, se toma un 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 re-
chaza 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 jado (normalmente = 0. 01 o = 0. 05), o mas precisamente aplican-
do, de nuevo, el contraste chi cuadrado para comprobar el ajuste de la distribucion del
estadstico a la chi-cuadrado especicada bajo la hipotesis nula.
Captulo 3
Metodos universales para la
simulacion de variables continuas
En lo que sigue se expondran dos de los metodos generales para simular distribucio-
nes continuas: el metodo de inversion y el de aceptacion/rechazo. Ambos son aplicables
a gran n umero de contextos siempre que la distribucion que se desea simular tenga cier-
tas caractersticas. En ambos casos la herramienta indispensable es alg un metodo de
generacion de n umeros pseudoaleatorios uniformes en (0,1).
3.1. El metodo de inversion
Es el metodo universal por antonomasia para simular distribuciones continuas. Tam-
bien a veces se denota metodo de Montecarlo. Esta basado en el siguiente resultado
teorico.
Teorema 3.1.1 (de inversion) Sea X una variable aleatoria con funcion de distribu-
cion F, continua e invertible. Entonces, la variable aleatoria U = F (X), transformada
de la original mediante su propia funcion de distribucion, tiene distribucion U(0, 1

).
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

ETODOS 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 (metodo de inversion)
1. Generar U U (0, 1).
2. Devolver X = F
1
(U).
Ejemplo 3.1.1 Dar un algoritmo, basado en el metodo de inversion, para simular la
distribucion exponencial de parametro > 0.
La funcion de densidad de una exp () es
f (x) =
_
e
x
si x 0
0 si x < 0
y su funcion de distribucion:
F (x) =
_
1 e
x
si x 0
0 si x < 0
que es continua e invertible en el intervalo [0. ). Observese que
x = F
1
(u) F (x) = u 1 e
x
= u
1 u = e
x
x =
ln (1 u)

.
Como consecuencia, el algoritmo 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

ETODOS UNIVERSALES PARA VARIABLES CONTINUAS


Distribucion triangular en (0. a)
Funcion de densidad: f(x) =
2
a
_
1
x
a
_
, 0 < x < a.
Funcion de distribucion: F(x) =
2
a
_
x
x
2
2a
_
, 0 < x < a.
Inversa de la distribucion: F
1
(u) = a
_
1

1 u
_
.
Forma simplificada de la inversa: S(u) = a (1

u) .
Distribucion de Pareto (a > 0 , b > 0)
Funcion de densidad: f(x) =
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

ETODOS UNIVERSALES PARA VARIABLES CONTINUAS


3.2. El metodo de aceptacion/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 fun-
cion de densidad f y sea U otra variable aleatoria, independiente de la anterior, con
distribucion 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) R
2
/0 y cf (x)
Recprocamente, si dada una funcion de densidad f, un vector aleatorio (X, Y )
tiene distribucion uniforme sobre el conjunto A, entonces, su primera componente, X,
es una variable aleatoria unidimensional con funcion de densidad f.
El teorema anterior establece la equivalencia entre la simulacion de densidades uni-
dimensionales y la simulacion de variables bidimensionales con distribucion uniforme
sobre el hipografo de c f (x) (el conjunto de puntos del plano que quedan por debajo
de la graca 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, A
f
A
cg
, donde
A
f
= (x, y) /0 y f (x) ,
A
cg
= (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 A
cg
. Aceptando tan solo los valores de (T, Y )
que pertenezcan a A
f
se tendra una variable bidimensional con distribucion uniforme
sobre A
f
. Tecnicamente hablando estamos armando que la distribucion condicionada
(T, Y ) [
(T,Y )A
f
es uniforme sobre A
f
. 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 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

ETODOS UNIVERSALES PARA VARIABLES CONTINUAS


3.2.1. Eciencia del algoritmo de aceptacion/rechazo
Dado que el algoritmo de aceptacion/rechazo repite los pasos 1-2 un n umero alea-
torio de veces, sera importante medir, de alguna forma, la eciencia 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
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
p =
area (A
f
)
area (A
cg
)
=
_
f (x) dx
_
c g (x) dx
=
1
c
.
De esta se obtiene la probabilidad de rechazo: q =
c1
c
. El ujo del algoritmo es
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
p
= c
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 eciente sera el algoritmo.
3.2.2. Eleccion de c
Una vez jada la densidad g es obvio que el mejor valor de c (que denotaremos por
c
opt
) se obtiene al encontrar el mas peque no n umero real c que verica f (x) c g (x),
es decir
c
f (x)
g (x)
, para todo x del soporte de g (que ha de contener al de f).
De esta forma, ha de cumplirse que f (x) ,= 0 g (x) ,= 0 y ademas
c max
x/g(x)>0
f (x)
g (x)
.
As pues, el menor valor posible que cumple esta condicion es
c
opt
= max
x/g(x)>0
f (x)
g (x)
.
3.2. EL 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

ETODOS UNIVERSALES PARA VARIABLES CONTINUAS


3.2.3. Eleccion de la densidad auxiliar g
Como se ha comentado anteriormente, un aspecto importante que inuye en la
eciencia 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
eciente posible, sin embargo es obvio que algunas densidades auxiliares seran mejores
candidatas que otras para conseguir un metodo eciente.
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 graca 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, 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

alcanza su maximo absoluto en los puntos x = , siendo dicho valor maximo

() =

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

> 0, luego = 1 es un punto de mnimo.


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

ITULO 3. M

ETODOS UNIVERSALES PARA VARIABLES CONTINUAS


3.2.4. El metodo de aceptacion/rechazo squeeze
Esta variante del metodo de aceptacion/rechazo es de gran utilidad en aquellas si-
tuaciones donde, para llevar a cabo la comprobacion de la condicion cUg (T) f (T) ,
tiene un elavado coste computacional evaluar f(T).
La idea del metodo consiste en encontrar dos funciones h
1
y h
2
, faciles de evaluar,
que aprietena f (i.e. h
1
(x) f(x) h
2
(x), x), de manera que reduzcamos consi-
derablemente el n umero de evaluaciones de esta. As se conseguira un algoritmo mas
eciente, pues reemplazaramos las evaluaciones de f por evaluaciones de h
1
o de h
2
(mucho menos costosas computacionalmente).
Algoritmo de aceptacion/rechazo squeeze
1. Generar U U (0, 1) y T con densidad g.
2. 2.1 Si c U g (T) h
1
(T) , hacer X = T. (Aceptacion rapida)
2.2 Si c U g (T) > h
2
(T) , volver a 1. (Rechazo rapido)
3. Si no se verifica ninguna de las condiciones del paso 2, comprobar
la condicion c U g (T) f (T) .
Si c U g (T) f (T) , hacer X = T. Si no, volver a 1.
Ejemplo 3.2.4 (Simulacion squeezede la distribucion normal) Utilizando el
teorema de Taylor, puede comprobarse que la funcionn de densidad de la normal estandar
f (x) =
1

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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


De la misma forma, dada una variable U U (0, 1), tampoco puede ser cierto que
F
1
(U) tenga la misma distribucion que X. De hecho F
1
no esta denida de forma
unica 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 nito (o innito 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 denirse la llamada funcion cuantil (o inversa generalidada)
de una distribucion cualquiera F a partir de
Q(u) =nf x R/F (x) u , u (0, 1) .
Es obvio que esta funcion siempre esta denida y que cuando F sea invertible,
Q = F
1
.
El siguiente teorema da un resultado que generaliza al teorema de inversion a si-
tuaciones en las que F no es invertible.
Teorema 4.1.1 (de inversion generalizada) Sea X una variable aleatoria con fun-
cion de distribucion F y con funcion cuantil Q. Si U es una variable aleatoria con
distribucion U (0, 1), la variable Q(U) tiene la misma distribucion que X.
Demostracion: Sea G la funcion de distribucion de Q(U). Dado x R, se tiene
G(x) = P (Q(U) x) = P (nf y R/F (y) U x)
= P (F (x) U) =
_
F(x)
0
du = F (x) .
A partir del teorema de inversion generalizada puede obtenerse un algoritmo general
para simular cualquier distribucion de probabilidad discreta. Es el llamado algoritmo
de transformacion cuantil o de inversion generalizada.
Algoritmo de transformacion cuantil
1. Generar U U (0, 1).
2. Devolver X = Q(U).
La mayor dicultad en la implementacion del algoritmo radica en el calculo de
Q(U) = nf x R/F (x) U =nf
_
x
j
_
j

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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


4.1.1. Eciencia 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 eciencia del mismo sera el n umero
medio de comparaciones del paso 3, es decir,
E (I) =
_
n
j=1
jp
j
si X toma un n umero nito (n) de valores

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

) es sensiblemente inferior a E (I) y, por tanto, el segundo


etiquetado proporciona un algoritmo mas eciente 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 de-
creciente de probabilidad.
Cuando la variable a simular tiene un n umero nito de valores: x
1
, x
2
, . . ., x
n
, al
implementar el metodo de la transformacion cuantil con b usqueda secuencial directa,
una vez comprobado que U >

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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


Ejemplo 4.1.5 (la distribucion geometrica) La distribucion geometrica represen-
ta 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 funcion de distribucion viene dada por
F (j) =
j

i=0
p (1 p)
i
=
p (1 p)
j+1
p
1 p 1
= 1 (1 p)
j+1
.
Como consecuencia se tiene
F (k) U > F (k 1) 1 (1 p)
k+1
U > 1 (1 p)
k
(1 p)
k
> 1 U (1 p)
k+1
k ln (1 p) > ln (1 U) (k + 1) ln (1 p)
k <
ln (1 U)
ln (1 p)
k + 1
condicion que equivale a
k =
_
ln (1 U)
ln (1 p)
_
.
El algoritmo 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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


Para la generacion de una variable aleatoria discreta, X, con funcion de masa de
probabilidad
P(X = x
i
) = p
i
, 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 d
i
, i = 1, 2, . . . , n, de manera que
n

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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


Algoritmo de simulacion mediante una tabla gua
1. Generar U U (0, 1).
2. Hacer i = nU| + 1.
3. Hacer j = g
i
.
4. Mientras U q
j
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 calculo de la tabla gua
1. Desde i = 1 hasta n 1 hacer g
i
= 0.
2. Hacer S = 0.
3. Desde i = 1 hasta n 1 hacer
3.1. S = S +p
i
3.2. j = nS| + 1
3.3. g
j
= i
4. Desde i = 2 hasta n hacer g
i
= max (g
i1
, g
i
).
4.3.1. Eciencia del algoritmo
Cuando el valor U cae en el intervalo J
i
, es obvio que el n umero medio de compa-
raciones en el paso 4 del algoritmo es menor o igual que 1 mas el n umero de valores
q
j
pertenecientes al intervalo J
i
. Utilizando este hecho, la esperanza del n umero de
comparaciones (N) puede acotarse mediante
E (N)
1
n
n

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

ETODOS UNIVERSALES PARA VARIABLES DISCRETAS


Ejemplo 4.4.1 (simulacion de la geometrica por truncamiento) La masa de pro-
babilidad de la distribucion geometrica es
P (X = j) = P (I = j + 1) = p (1 p)
j
, j = 0, 1, . . .
Considerese como variable aleatoria continua auxiliar la exponencial, que tiene funcion
de distribucion dada por
G(x) =
_
1 e
x
si x 0
0 si x < 0
Ahora bien,
G(i) G(i 1) = 1 e
i

_
1 e
(i1)
_
= e
(i1)
e
i
= e
(i1)
_
1 e

_
=
_
1 e

_ _
e

_
i1
= p (1 p)
i1
siempre que tomemos p = 1 e

. De esta forma se tiene


G(i) G(i 1) = P (X = i 1) = P (I = i) = p
i
y el algoritmo resultara:
0. Hacer = ln (1 p).
1. Generar U U (0, 1).
2. Hacer T =
ln U

.
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

2Esen2U son variables independientes con distribucion N (0, 1) .


Algoritmo de Box-Muller
1. Generar U, V U (0, 1).
2. Hacer W
1
=

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

. En virtud de ello, se tiene


X

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
)

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 X
i
con la distribucion marginal deseada
(F
i
) 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. Metodo de las distribuciones condicionadas
Supongase un vector aleatorio d-dimensional, con distribucion continua. Denotese
por f (x
1
, x
2
, . . . , x
n
) su funcion de densidad conjunta y considerese la primera densidad
marginal, f
1
(x
1
), y las sucesivas densidades condicionales f
2
(x
2
[x
1
), f
3
(x
3
[x
1
, x
2
), . . .,
f
d
(x
d
[x
1
, x
2
, . . . , x
d1
). Gracias a la regla del producto, generalizada a funciones de
densidad, se tiene
f (x
1
, x
2
, . . . , x
n
) = f
1
(x
1
) f
2
(x
2
[x
1
) f
3
(x
3
[x
1
, x
2
) f
d
(x
d
[x
1
, x
2
, . . . , x
d1
)
y, como consecuencia, puede darse el siguiente algoritmo general:
1. Generar X
1
con densidad f
1
.
2. Desde i = 2 hasta d generar X
i
con densidad f
i
([X
1
, X
2
, . . . , X
i1
).
3. Devolver 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

ETODO DE LAS DISTRIBUCIONES CONDICIONADAS 67


En resumen, se tiene que si
_
X
1
X
2
_
N
2
__
0
0
_
,
_

2
1

12

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
)

cada una de cuyas componentes toma valores enteros no negativos).


El subconjunto de R
2
en el que toma valores el vector aleatorio es
Z
+
Z
+
=
_
Z
+
_
2
= (i, j) /i, j 0, 1, 2, . . .
Se tratara de denir una funcion biyectiva, h : Z
+
Z
+
Z
+
, que permita
etiquetar los pares de enteros.
De esta forma, h induce sobre la variable transformada, C = h(X
1
, X
2
), una masa
de probabilidad
p
(C)
k
:= P (C = k) = P (h(X
1
, X
2
) = k) = P
_
(X
1
, X
2
) = h
1
(k)
_
=: p
(X
1
,X
2
)
h
1
(k)
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 (X
1
, X
2
).
De todas formas, debemos tener en cuenta que para que esto sea calculable en la practica
en un tiempo razonable, la funcion h debe poder invertirse de forma rapida.
As pues para simular la variable (X
1
, X
2
) podemos proceder mediante uno de los
algoritmos posibles para simular C calculando en tantos pasos como sean necesarios
los valores de la forma h
1
(k).
Una posibilidad sencilla consiste en utilizar
h(i, j) =
(i +j) (i +j + 1)
2
+i
70CAP

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

ETODOS PARASIMULAR LADISTRIBUCI

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

) de forma que la matriz = 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

ETODOS PARASIMULAR LADISTRIBUCI

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

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


2
= 0

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.

Вам также может понравиться