Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Poptex PDF
Poptex PDF
26 de enero de 2009
2
Capı́tulo 1
Introducción
gran lentitud
3
4 CAPÍTULO 1. INTRODUCCIÓN
Razones como esas (y algunas otras) pueden indicar la ventaja de trabajar con un
modelo del sistema real.
Una vez se ha construido un modelo, la primera tentativa debe ser siempre tratar
de resolver analı́ticamente el problema que nos ocupa. En caso de ser esto posible, la
solución es exacta (a menudo la resolución también es rápida).
Ejemplo 1.2.2 Supóngase el siguiente juego: un jugador lanza una moneda (abonando
un euro por cada lanzamiento) hasta que el número de caras supere en tres al número de
cruces obtenidas. En ese momento el jugador recibe 10 unidades monetarias. ¿Resulta
rentable jugar?
De nuevo aquı́ la experimentación real es muy lenta.
La modelización puede realizarse de nuevo gracias a la teorı́a de la probabilidad. En
esta ocasión, sin embargo, la resolución analı́tica serı́a complicada (salvo que se tengan
conocimientos de cadenas de Markov).
Parece, por tanto, conveniente una aproximación mediante simulación. Se tratarı́a
de ir replicando artificialmente el lanzamiento de la moneda simulando un gran número
de posibles partidas y examinando la pérdida o ganancia media.
1.3. VENTAJAS E INCONVENIENTES DE LA SIMULACIÓN 5
Ventajas:
4. Cuando es imposible experimentar sobre el sistema real por ser dicha experimen-
tación destructiva.
Inconvenientes:
Generación de números
pseudoaleatorios uniformes en (0. 1)
2.1. Introducción
Casi todos los métodos de simulación se basan en la posibilidad de generar números
aleatorios con distribución U (0. 1). Hasta el gran desarrollo de los ordenadores los
números aleatorios se obtenı́an por procedimientos experimentales (loterı́as, ruletas) y
se almacenaban en tablas. En la actualidad estos números son generados por ordenador
y se denominan pseudoaleatorios ya que, en realidad, todos los números de la sucesión
que se genera son predecibles a partir del primero, llamado semilla. En cualquier caso,
todo generador de números pseudoaleatorios mı́nimamente aceptable debe comportarse
como si se tratase de una muestra genuina de datos independientes de una U (0. 1).
7
8 CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
De esta forma
xn = (axn−1 + c) mod m
para n = 1, 2, . . .
xn
4. Devolver los valores un = m
, n = 0. 1, . . .
xn = (5xn−1 + 4) mod 8
x0 = 5 x1 = 5 x2 = 5 · · ·
x0 = 2 x1 = 6 x2 = 2 x3 = 6 · · ·
x0 = 5 x1 = 3 x2 = 1 x3 = 7 x4 = 5 · · ·
x0 = 2 x1 = 4 x2 = 6 x3 = 0 x4 = 2 · · ·
x0 =5 x1 =6 x2 =3 x3 =4 x4 = 1
x5 =2 x6 =7 x7 =0 x8 =5 ···
x0 =2 x1 =7 x2 =0 x3 =5 x4 = 6
x5 =3 x6 =4 x7 =1 x8 =2 ···
Un resultado que sirve para caracterizar qué propiedades deben cumplir los paráme-
tros de un generador congruencial para que tenga perı́odo máximo es el teorema de
Knuth (1969).
Teorema 2.4.1 (Knuth) Las siguientes condiciones son necesarias y suficientes para
que un generador congruencial con parámetros m, a y c, tenga perı́odo máximo (i.e.
p = m).
A la luz del teorema de Knuth, es fácil darse cuenta porqué sólo el tercero de los
generadores del ejemplo anterior tenı́a perı́odo óptimo.
12 CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
m = 235 a = 27 + 1 c = 1
m = 235 a = 515 c=1
Todos ellos tienen tienen perı́odo máximo (e igual a 235 ' 3,44 × 1010 ).
Otros generadores congruenciales para enteros (con o sin signo) de 32 bits y algunos
lenguaje o bibliotecas que los usan o los han usado en el pasado son
Aunque sólo el primero tiene perı́odo máximo, los demás lo tienen muy elevado.
El lenguaje C (bajo UNIX) posee un generador congruencial de números pseudoa-
leatorios de 48 bits: el drand48. Sus parámetros son m = 248 , a = 25214903917 y
c = 11. La semilla se establece mediante la sentencia srand48() introduciendo como
argumento un entero de 32 bits que corresponde a los 32 bits más significativos de x0
(entero de 48 bits). Los 16 bits de menor orden se toman siempre coincidentes con el
número (decimal) 13070. Los parámetros a y c se pueden modificar por el usuario desde
otras rutinas del C. Los valores por defecto para estas cantidades ofrecen un generador
de perı́odo máximo ya que m = 2β , con β = 48, c es impar y a = 6 303 725 979 · 4 + 1.
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR 13
xn = g(xn−1 ) mod m
Knuth(1981): xn = g(xn−1 ) mod m, con g(x) = ax2 + bx + c.
xn = (Axn−1 + C) mod m
con xn un vector d−dimensional y A y C matrices d × d. Los elementos de los vectores
y de las matrices son enteros entre 1 y m − 1.
Comentarios:
1. Es muy corriente aplicar el test chi-cuadrado aún en casos en los que la dis-
tribución de la variable no está totalmente especificada sino que depende de algún
parámetro que, por tanto, habrá de ser estimado (por ejemplo el caso en que se supon-
ga que la variable en concreto sigue una distribución de Poisson y resta por especificar
su parámetro λ). En estos casos la distribución aproximada del test ha de ser corregida
para incorporar esta información pasando a ser una χ2k−r−1 , siendo r el número de
parámetros estimados por máxima verosimilitud.
2. El contraste chi-cuadrado se utiliza habitualmente incluso cuando la variable
objeto de estudio es continua. En este caso, dicha variable ha de ser agrupada en
intervalos de clase.
3. Una limitación, bastante recomendable en la práctica, es la de no llevar a cabo
el contraste chi-cuadrado cuando la frecuencia esperada de alguna clase sea menor que
5. Aquellos casos en que esta condición falla pueden tratarse agrupando varios valores
distintos hasta que se cumpla esta restricción.
Ejemplo 2.5.1 Considérese los siguientes datos sobre “espacio de disco (en MBytes)
ocupado por usuario en una estación de trabajo”: 35, 45, 47, 50. 31, 30. 25, 33, 35,
40. 45, 47, 49, 42, 40. 50. 46, 55, 42, 46.
Estúdiese la bondad de ajuste de dichos datos a una distribución U [a, b], realizando
el contraste chi-cuadrado.
En primer lugar se estiman por máxima verosimilitud los parámetros de la distribu-
ción uniforme, obteniéndose respectivamente el mı́nimo y el máximo muestral: â = 25
y b̂ = 55. Dividiendo el intervalo [25, 55] en cuatro clases de igual longitud se obtiene
la siguiente tabla:
Dn = máx Dn,i = máx{|Fn (x(i) ) − F (x(i) )|, |Fn− (x(i) ) − F (x(i) )|}
i=1,2,...,n
Se obtiene Dn = 00 45221, cuyo nivel crı́tico es p < 00 01, que indica un claro rechazo
de la hipótesis establecida.
Métodos gráficos
Como paso previo a la utilización de métodos cuantitativos siempre será ilustrativo
representar gráficamente los datos frente al tiempo, es decir, secuencialmente según su
orden de recogida (Xi frente al ı́ndice i).
16 CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
Otro tipo de gráficas que también permite detectar situaciones de dependencia son
las gráficas en las que se representa cada valor de la muestra frente al valor anterior-
mente observado (Xi+1 frente a Xi ).
que expresa, de alguna manera, la correlación entre cada dato y el observado un ins-
tante antes.
Definición 2.5.1 Una racha es una sucesión de valores consecutivos repetidos que
esté flanqueada por valores adyacentes distintos.
Aunque originalmente el test de las rachas está diseñado para una distribución con
sólo dos posibles valores, suele aplicarse a aquellos casos en los que la distribución en
cuestión es continua codificando las observaciones con los valores + o −, según el dato
en cuestión quede por arriba o por abajo de la mediana muestral.
18 CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
El contraste de Ljung-Box
Existen distintos procedimientos para contrastar la independencia mediante la rea-
lización de un contraste sobre si los primeros m coeficientes de autocorrelación son
cero. Uno de los más utilizados a tal efecto es el de Ljung-Box, que utiliza para ello el
estadı́stico m
X r(k)2
Q = n(n + 2)
k=1
n−k
Ejemplo 2.5.3 Considerénse 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 de Ljung-Box
Tomemos m = 4. Los cuatro primeros coeficientes de autocorrelación son r(1) =
0 52550. r(2) = 00 33034, r(3) = −00 09887 y r(4) = −00 06706.
0
P (Q = M ) , P (Q = M + 1) , . . .
para calcular las frecuencias esperadas de cada clase y confrontarlas con las observadas
vı́a el estadı́stico chi-cuadrado.
20 CAPÍTULO 2. GENERACIÓN DE NÚMEROS UNIFORMES EN (0. 1)
Poker 1
Se toman conjuntos sucesivos de cinco enteros y, para cada uno, se determina cuál
de las siguientes posibilidades se da:
2. Un mismo entero se repite cuatro veces y otro distinto aparece una vez (AAAAB).
4. Un entero se repite tres veces y otros dos distintos aparecen una vez cada uno
(AAABC).
2.5. MEDIDAS ESTADÍSTICAS DE LA CALIDAD DE UN GENERADOR 21
5. Un entero se repite dos veces, otro distinto se repite también dos veces y un tercer
entero diferente aparece una sóla vez (AABBC).
6. Un entero se repite dos veces y otros tres distintos aparecen una vez cada uno
(AABCD).
Bajo la hipótesis de aleatoriedad y ajuste a una U (0. 1), pueden calcularse las
probabilidades de estas modalidades:
Poker 2
Algo también bastante habitual es usar conjuntos de cinco enteros (como en el caso
anterior) pero definiendo las categorı́as según el número de enteros distintos de entre
los cinco observados. Ası́
Poker 3
A menudo se consideran conjuntos de cuatro enteros. En tal caso,
En lo que sigue se expondrán dos de los métodos generales para simular distribucio-
nes continuas: el método de inversión y el de aceptación/rechazo. Ambos son aplicables
a gran número de contextos siempre que la distribución que se desea simular tenga cier-
tas caracterı́sticas. En ambos casos la herramienta indispensable es algún método de
generación de números pseudoaleatorios uniformes en (0,1).
Teorema 3.1.1 (de inversión) Sea X una variable aleatoria con función de distribu-
ción F , continua e invertible. Entonces, la variable aleatoria U = F (X), transformada
˙
de la original mediante su propia función de distribución, tiene distribución U (0, 1).
Recı́procamente, si U ∈ U (0, 1) entonces la variable F −1 (U ) tiene función de dis-
tribución F (la misma distribución que la de X).
23
24 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
λe−λx si x ≥ 0
f (x) =
0 si x < 0
y su función de distribución:
1 − e−λx
si x ≥ 0
F (x) =
0 si x < 0
2. A veces, aún teniendo una expresión explı́cita para F (x), es imposible despejar
x en la ecuación F (x) = u (es decir, encontrar una expresión explı́cita para
F −1 (u)).
3. Aún siendo posible encontrar x = F −1 (u), puede ocurrir que esta expresión sea
complicada y conlleve una gran lentitud de cálculo.
Distribución de Cauchy
1
Función de densidad: f (x) = , x ∈ R.
π (1 + x2 )
1 arctan x
Función de distribución: F (x) = + , x ∈ R.
2 π
Inversa de la distribución: F −1 (u) = tan π u − 12 .
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ÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
Teorema 3.2.1 (de aceptacion/rechazo) Sea X una variable aleatoria con fun-
ción de densidad f y sea U otra variable aleatoria, independiente de la anterior, con
distribución U (0, 1). Entonces, para cada c > 0, la variable aleatoria bidimensional
(X, c · U · f (X)) tiene distribución uniforme en el recinto
A = {(x, y) ∈ R2 /0 ≤ y ≤ cf (x)}
Supóngase que se desea simular una distribución con densidad f y que no es factible
hacerlo por el método de inversión. Considérese otra distribución, con densidad g, fácil
de simular, de forma que exista cierta constante c > 0 tal que
Af = {(x, y) /0 ≤ y ≤ f (x)} ,
Acg = {(x, y) /0 ≤ y ≤ c · g (x)} .
Dado que la densidad g es fácil de simular, puede aplicarse la primera parte del
teorema de aceptación/rechazo para encontrar una variable aleatoria bidimensional,
(T, Y ), con distribución uniforme sobre Acg . Aceptando tan sólo los valores de (T, Y )
que pertenezcan a Af se tendrá una variable bidimensional con distribución uniforme
sobre Af . Técnicamente hablando estamos afirmando que la distribución condicionada
(T, Y ) |(T,Y )∈Af es uniforme sobre Af . Finalmente la segunda parte del teorema permite
obtener una variable con densidad f sin más que tomar la primera componente del par
obtenido.
3.2. EL MÉTODO DE ACEPTACIÓN/RECHAZO 29
Algoritmo de aceptación/rechazo
1. Repetir
1.1. Generar U ∼ U (0, 1) y T con densidad g.
2. Hasta que c · U · g (T ) ≤ f (T ) .
3. Devolver X = T.
3.2.2. Elección de c
Una vez fijada la densidad g es obvio que el mejor valor de c (que denotaremos por
copt ) se obtiene al encontrar el más pequeño número real c que verifica f (x) ≤ c · g (x),
es decir
f (x)
c≥ , para todo x del soporte de g (que ha de contener al de f ).
g (x)
De esta forma, ha de cumplirse que f (x) 6= 0 ⇒ g (x) 6= 0 y además
f (x)
c ≥ máx .
x/g(x)>0 g (x)
2
donde ϕ (x) = − x2 + |x|. Dado que esta función es simétrica, continua en toda la recta
real y diferenciable tantas veces como se desee salvo en x = 0, bastará encontrar su
máximo absoluto en el intervalo [0. ∞]:
1. Repetir
1.1. Generar U, V, W ∼ U (0, 1).
2 T = ln V , sino hacer T = − ln V .
1.2. Si W < 0. 5 hacer
2. Hasta que U · exp T2 − |T | + 21 ≤ 1.
3. Devolver X = T .
La condición que hay que comprobar para decidir si hay aceptación o rechazo surge
de que
r r 2 2
g (T ) 2e π T T 1
c·U · = U exp − |T | = U · exp − |T | + .
f (T ) π 2 2 2 2
Dado que el número medio de repeticiones de los pasos 1-2 hasta que se obtiene un
p π para X es c ' 1. 3155 y la probabilidad de aceptación en el paso 2 es
valor simulado
p = 1/c = 2e = 0. 76017, puede decirse que el algoritmo es bastante eficiente.
32 CAPÍTULO 3. MÉTODOS UNIVERSALES PARA VARIABLES CONTINUAS
f (x)
cθ = máx
x gθ (x)
Ejemplo 3.2.3 Supóngase que se desea utilizar como densidad auxiliar en el método de
aceptación/rechazo, para simular la normal estándar, la doble exponencial de parámetro
λ > 0 (Lap(0,λ) o Lap(λ)) ,
λ −λ|x|
gλ (x) = e , para todo x ∈ R.
2
Si pretendemos encontrar el mejor valor de λ, en términos de eficiencia del algo-
ritmo, debemos calcular
x 2
√1 e− 2
f (x) 2π
cλ0 = mı́n máx = mı́n máx λ −λ|x| .
λ>0 x∈R gλ (x) λ>0 x∈R
2
e
Dada una variable aletoria discreta, su función de distribución viene dada por
X
F (x) = pj , ∀x ∈ R.
xj ≤x
Supondremos (por comodidad) que los valores que toma la variable ya están orde-
nados y nos ceñiremos al caso finito. De esta forma tendrı́amos: x1 < x2 < · · · < xn .
En este caso es obvio que el resultado dado por el teorema de inversión no es cierto
ya que la variable aleatoria F (X) toma sólo los valores p1 , p1 +p2 , . . ., p1 +p2 +· · ·+pn .
Siendo, por tanto, discreta y no pudiendo tener distribución U (0, 1).
35
36 CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
De la misma forma, dada una variable U ∼ U (0, 1), tampoco puede ser cierto que
F (U ) tenga la misma distribución que X. De hecho F −1 no está definida de forma
−1
única pues las funciones de distribución discretas no tienen inversa (para casi todo u ∈
[0, 1] no hay ningún x tal que F (x) = u y para un número finito (o infinito numerable)
de u ∈ [0, 1] se tiene que existe todo un intervalo de valores para x cumpliendo F (x) =
u). A pesar de ello puede definirse la llamada función cuantil (o inversa generalidada)
de una distribución cualquiera F a partir de
Es obvio que esta función siempre está definida y que cuando F sea invertible,
Q = F −1 .
Teorema 4.1.1 (de inversion generalizada) Sea X una variable aleatoria con fun-
ción de distribución F y con función cuantil Q. Si U es una variable aleatoria con
distribución U (0, 1), la variable Q (U ) tiene la misma distribución que X.
Debido a que esta forma de etiquetar los valores de la variable conlleva el desfase
de una unidad en los ı́ndices, es recomendable ajustar el algoritmo para evitar este
efecto.También, para simplificar los cálculos que aparecen en el paso 3.1, es conveniente
calcular las probabilidades de forma recursiva
e−λ λj λ e−λ λj−1 λ
P (X = j) = = = P (X = j − 1) ,
j! j (j − 1)! j
Ası́, el algoritmo optimizado es
Resulta pues evidente que, como no existe una única forma de etiquetar los valores
que toma la variable en cuestión, habrá quizá algún etiquetado que ofrezca un menor
número medio de comparaciones en el paso 3 del algoritmo que el etiquetado original
(que obedece a la idea de ordenar de forma creciente los valores que toma la variable).
Ejemplo 4.1.2 Considérese la variable aleatoria discreta X con distribución dada por
P (X = 3) = 0. 1, P (X = 5) = 0. 3, P (X = 7) = 0. 6
P (I = 1) = 0. 1, P (I = 2) = 0. 3, P (I = 3) = 0. 6
Si, por el contrario, consideramos el etiquetado x01 = 7, x02 = 5, x03 = 3, se tiene que
P (I 0 = 1) = 0. 6, P (I 0 = 2) = 0. 3, P (I 0 = 3) = 0. 1
y ası́ E (I 0 ) = 1 · 0. 6 + 2 · 0. 3 + 3 · 0. 1 = 1. 5.
Como parece deducirse del ejemplo anterior, un etiquetado será tanto mejor cuanto
menores sean las etiquetas que se asignen a los valores que tienen mayor probabilidad.
Dicho de otra forma, el etiquetado que se obtiene al ordenar los valores en orden de-
creciente de probabilidad.
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.
Ejemplo 4.1.4 (la distribución uniforme discreta en {1, 2, . . . , n}) En este caso
la masa de probabilidad viene dada por
1
pj = , para j = 1, 2, . . . n.
n
De esta forma se tiene
k k−1
X X k k−1
pi ≥ U > pi ⇔ ≥U > ⇔ k ≥ nU > k − 1.
i=1 i=1
n n
P (X = j) = p (1 − p)j , j = 0. 1, . . .
0. Hacer a = ln (1 − p).
1. Generar U ∼ U(0, 1).
2. Devolver X = lnaU .
4.2. ALGORITMOS BASADOS EN ÁRBOLES BINARIOS 41
Árbol: Grafo orientado, formado por un sistema de nodos conectados entre sı́ mediante
una serie de arcos.
Nodo raı́z: Nodo del cual parten arcos pero al cual no llegan arcos.
Nodo terminal: Nodo al cual llegan arcos pero del cual no parten arcos.
Árbol binario: Árbol en el que todo nodo, a excepción de los nodos terminales, tiene
dos nodos hijos.
NODO RAÍZ
ARCO
aa
aa
a
c
@
c
@ c
l
l
l
l
NODO TERMINAL
42 CAPÍTULO 4. MÉTODOS UNIVERSALES PARA VARIABLES DISCRETAS
P (X = xi ) = pi , i = 1, 2, . . . , n
se tratará de encontrar un árbol binario con n nodos terminales (uno para cada valor
que se necesite generar), con profundidades di , i = 1, 2, . . . , n, de manera que
n
X
pi di
i=1
sea mı́nima.
1. Agrupar los nodos con menor probabilidad en un solo nodo con probabilidad
igual a la suma de ambos.
Considérese una variable aleatoria discreta con masa de probabilidad dada por pj ,
j = 1, 2, . . . , n y defı́nanse las sumas acumulativas de estas probabilidades
Pj (que no son
otra cosa que los valores que toma la función de distribución), qj = i=1 pi , que, para
evitar cálculos innecesarios, deben calcularse de forma recursiva: q0 = 0, qj = qj−1 + pj ,
j = 1, 2, . . . , n.
es decir, para cada intervalo se considera el valor más alto del ı́ndice entero tal que la
suma acumulada de probabilidades hasta él es menor que el extremo superior de dicho
intervalo.
Ejemplo 4.3.1 Tomemos como ejemplo la distribución discreta dada por p1 = 0. 13,
p2 = 0. 25, p3 = 0. 17, p4 = 0. 1, p5 = 0. 24 y p6 = 0. 11. Se tiene que q1 = 0. 13,
q2 = 0. 38, q3 = 0. 55, q4 = 0. 65, q5 = 0. 89 y q6 = 1. Los valores de la tabla guı́a son
g1 = 1, g2 = 1, g3 = 2, g4 = 4, g5 = 4, g6 = 5.
Por otra parte, los valores de la tabla guı́a pueden calcularse fácilmente de forma
rápida según el siguiente algoritmo:
Supóngase, sin pérdida de generalidad, que se desea simular la variable I, que toma
los valores 1, 2, . . ., n, con probabilidades p1 , p2 , . . ., pn . En este caso, la función de
distribución de I viene dada por
X
F (x) = pi .
i≤x
Supóngase, además, que tenemos otra variable aleatoria continua, con función de dis-
tribución G (x) y ciertos valores a0 = −∞ < a1 < a2 < · · · < an−1 < an = ∞, tales que
F (i) − F (i− ) = pi = G (ai ) − G (ai−1 ), i = 1, 2, . . . , n. Esta última condición viene a
garantizar que la probabilidad de que la variable continua caiga en el intervalo [ai−1 , ai )
coincide con la probabilidad con la que la variable discreta original toma el valor i.
Si la distribución continua es fácil de simular, simplemente deberemos generar va-
lores de la misma y luego transformarlos en valores de la variable I.
P (X = j) = P (I = j + 1) = p (1 − p)j , j = 0, 1, . . .
Considérese como variable aleatoria continua auxiliar la exponencial, que tiene función
de distribución dada por
1 − e−λx si x ≥ 0
G (x) =
0 si x < 0
Ahora bien,
G (i) − G (i − 1) = P (X = i − 1) = P (I = i) = pi
y el algoritmo resultarı́a:
0. Hacer λ = − ln (1 − p).
1. Generar U ∼ U (0, 1).
2. Hacer T = − lnλU .
3. Devolver X = dT e.
47
48 CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Método de Box-Müller
Se basa en la siguiente propiedad:
√ Dadas E ∈ exp
√ (1) y U ∈ U (0, 1) , variables aleatorias independientes, las variables
2E cos 2πU y 2Esen2πU son variables independientes con distribución N (0, 1) .
Algoritmo de Box-Müller
1. Generar U, V√∼ U (0, 1).
2. Hacer W1 = −2 ln U y W2 = 2πV .
3. Devolver X1 = W1 cos W2 , X2 = W1 senW2 .
Método polar
Se basa en una propiedad que da la distribución condicionada a cierto suceso de un
par de variables transformadas de otras uniformes:
0 1 0
es N2 , .
0 0 1
Algoritmo polar
1. Generar U1 , U2 ∼ U (0, 1).
2. Hacer V1 = 2U1 − 1, V2 = 2U2 − 1 y W = V12 + V22 .
3. Si W > 1 entonces
q volver a 1.
−2 ln W
4. Hacer Y = W
.
5. Devolver X1 = V1 Y , X2 = V2 Y .
5.1. DISTRIBUCIONES CONTINUAS 49
T − µT √
n 'N (0, 1) ,
σT
si n es suficientemente grande.
Este teorema puede aplicarse para simular una N (0, 1) tomando variables con otra
distribución más fácil de simular.
12
U − µU √ X
n= Ui − 6
σU i=1
Puede demostrarse una relación recursiva para Γ (p) sin más que hacer una integra-
ción por partes:
Tomando u = xp−1 y dv = e−x dx, se tiene,
Z ∞ Z ∞
p−1 −x −x ∞ −x
p−1 p−2
Γ (p) = x e dx = x −e 0
− (p − 1) x −e dx
0 0
Z ∞
= (p − 1) xp−2 e−x dx = (p − 1) Γ (p − 1)
0
Esto permite reducir el cálculo de Γ (p) al caso en que p ∈ (0, 1], ya que
d
es decir, Γ (a, 1) = exp (a).
52 CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Los algoritmos anteriores sólo son válidos para p entero, siendo además muy lentos
si p es grande. Por contra son muy simples y de fácil implementación. Como alternativa
existen otros algoritmos más complicados que cubren también el caso en que p no sea
entero.
5.1. DISTRIBUCIONES CONTINUAS 53
(θ − 1) x p−1
|x − (p − 1)| + (p − 1) (θ + 1)
T (x) =
exp −x + .
θ (p − 1) θ
Algoritmo de Tadikamalla
1. Generar X, doble exponencial con media p−1 y parámetro de escala
λ = 1θ = 1+√24p−3 .
2. Si X < 0 entonces volver a 1.
3. Generar U ∼ U (0, 1).
4. Si U ≤ T (X) entonces devolver X, sinó volver a 1.
54 CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Algoritmo de Cheng-Feast
1. Generar U1 , U2 , independientemente,
con distribución
1
p − 6p U1
U (0, 1) y hacer V = .
(p − 1)U2
2(U2 − 1) 1
2. Si + V + ≤ 2 hacer X = (p − 1)V .
p−1 V
2 log U2
En otro caso, si − log V + V ≤ 1 hacer X = (p − 1)V .
p−1
3. Volver a 1.
Algoritmo de Best-Ahrens-Dieter
√ pe−t
0. Hacer t = 0,07 + 0,75 1 − p y b = 1 + .
t
1. Generar U1 , U2 , independientemente, con distribución
U (0, 1) y hacer V = bU1 .
1
2. Si V ≤ 1 hacer W = tV p . En otro caso, ir a 3.
2−W
2.1. Si U2 ≤ , ir a 5.
2+W
2.2. Si U2 ≤ e−W , ir a 5.
t(b − V )
3. Hacer W = − log e Y = Wt .
p
3.1. Si U2 (p + (1 − p)Y ) ≤ 1, ir a 5.
3.2. Si U2 ≤ Y p−1 , ir a 5.
4. Volver a 1.
5. Hacer X = W .
5.1. DISTRIBUCIONES CONTINUAS 55
Z 1
siendo β (p, q) = xp−1 (1 − x)q−1 dx.
0
Algoritmo de Fox
1. Generar U1 , U2 , . . . , Up+q−1 ∼ U (0, 1).
2. Ordenarlos: U(1) ≤ U(2) ≤ · · · ≤ U(p+q−1) .
3. Devolver X = U(p) .
56 CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Algoritmo de Jöhnk
1. Repetir.
1.1. Generar U, V ∼ U (0, 1).
1 1
1.2. Hacer Y = U p , Z = V q , S = Y + Z.
2. Hasta que S ≤ 1.
3. Hacer X = YS .
Algoritmo de Cheng
1.1. Hacer α = p + q.
1
1.2. Si mı́n (p, q) ≤ 1 entonces hacer β = mı́n(p,q)
, en otro caso hacer β =
q
α−2
2pq−α
.
1.3. Hacer γ = p + β1 .
2. Generar U1 , U2 ∼U (0,1).
U1
3. Hacer V = β · ln 1−U 1
y W = p · eV .
α
4. Si α · ln q+W + γV − ln 4 < ln (U12 U2 ) entonces volver a 1.
W
5. Devolver X = q+W
.
5.1. DISTRIBUCIONES CONTINUAS 57
d
Es decir, χ2n = Γ 21 , n2 y los algoritmos vistos para la distribución gamma son apli-
1 n d
Además, debido a la reproductividad de la distribución gamma, se tiene que Γ ,
2 2
=
Γ 12 , n2 + Γ 12 , 12 , cuando n no sea par, siendo esta última distribución, Γ 21 , 12 , la
Algoritmo reproductivo
n para simular la chi-cuadrado
1. Hacer m = 2 .
2. Hacer S = 1.
3. Desde i = 1 hasta m hacer
3.1. Generar U ∼ U (0, 1).
3.2. Hacer S = S · U .
4. Hacer X = −2 ln S.
5. Si n es impar hacer
6.1. Generar Z ∼ N (0, 1).
6.2. Hacer X = X + Z 2 .
7. Devolver X.
58 CAPÍTULO 5. SIMULACIÓN DE DISTRIBUCIONES NOTABLES
Su función de densidad es
n
n 2
m
n − m+n
2
f (x) = m
m n
x 2 −1 x+ , para todo x ≥ 0
β ,
2 2
m
Y1
X=p
Y2 /n
Su función de densidad es
n+1
− n+1
Γ x2 2
f (x) = n
2
√ 1+ , para todo x ∈ R.
Γ 2
nπ n
d
En particular, W (λ, 1) = exp (λ).
siendo a ∈ R y b > 0.
y, por tanto, es simulable mediante inversión. Una versión optimizada del algoritmo es:
Su masa de probabilidad es
n i
P (X = i) = p (1 − p)n−i , para i = 0, 1, . . . , n.
i
Este método es extremadamente lento cuando n es grande. Por eso, en ese caso,
resulta más ventajoso utilizar el método de la tabla guı́a.
e−λ λi
P (X = i) = , para i = 0, 1, . . .
i!
También puede simularse haciendo uso de la relación que guarda con la distribución
exponencial. Ası́, dadas variables aleatorias T1 , T2 , . . ., Tn , . . . independientes y con
distribución exp (λ), la variable aleatoria entera, X, que verifica
X
X X+1
X
Ti ≤ 1 < Ti
i=1 i=1
P (X = i) = p · (1 − p)i , para i = 0, 1, . . .
Simulación de distribuciones
multidimensionales
65
66CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
x2
1
f1 (x1 ) = √ exp − 12
σ1 2π 2σ1
Además
11
f (x1 , x2 ) = f (x) = p exp − x0 Σ−1 x
2π det (Σ) 2
Como
−1 1 σ22 −σ12 1 σ22 −σ12
Σ = = 2 2
det (Σ) −σ12 σ12 2
σ1 σ2 − σ12 −σ12 σ12
se tiene que
1 0 −1 σ 2 x2 − 2σ12 x1 x2 + σ12 x22
xΣ x= 2 1
2 2 (σ12 σ22 − σ12
2
)
y, por tanto,
√ 2 2
σ2 x1 − 2σ12 x1 x2 + σ12 x22 x21
f (x1 , x2 ) σ1 2π
f2 (x2 |x1 ) = = exp − − 2
2 (σ12 σ22 − σ12 2
p
f1 (x1 ) 2π σ12 σ22 − σ12
2 ) 2σ1
2 2 2
σ1 σ2 x1 − 2σ1 σ12 x1 x2 + σ1 x2 − (σ12 σ22 − σ12
2 4 2 2
) x21
1
= √ q 2 2 2 exp −
2π
σ1 σ2 −σ12 2σ12 (σ12 σ22 − σ12
2
)
σ12
= √ q 2 2 2 exp − 2 2
σ1 σ2 −σ12 2
σ1 σ2 −σ12
2π 2 σ12
σ12
2
σ12 x1
1 x 2 − σ12
= √ q 2 2 2 exp −
2 2
σ1 σ2 −σ12 2
σ1 σ2 −σ12
2π 2
2 σ2
σ 1 1
σ12 σ 2 σ 2 −σ 2
que es la densidad de una N x , 1 2σ2 12
σ12 1
.
1
6.1. MÉTODO DE LAS DISTRIBUCIONES CONDICIONADAS 67
si (x1 , x2 , . . . , xd )0 ∈ Cd
1
Vd (1)
f (x1 , x2 , . . . , xd ) =
0 si (x1 , x2 , . . . , xd )0 ∈
/ Cd
1
2d
si xi ∈ [−1, 1], para todo i = 1, 2, . . . , d
g (x1 , x2 , . . . , xd ) =
0 en otro caso
2d 1 1
U d 1[−1,1]d (T) ≤ 1C (T) −
Vd (1) 2 Vd (1) d
o, lo que es lo mismo, U 1[−1,1]d (T) ≤ 1Cd (T). Esta condición equivale a que T ∈ Cd ,
es decir, que se verifique
T12 + T22 + · · · + Td2 ≤ 1
Por otra parte, la simulación de T ∼ U [−1, 1]d puede hacerse trivialmente me-
diante Ti ∼ U ([−1, 1]) para cada i = 1, 2, . . . , d, ya que las componentes son indepen-
dientes. Como el valor de U es superfluo en este caso, el algoritmo queda:
(i + j) (i + j + 1)
h (i, j) = +i
2
70CAPÍTULO 6. SIMULACIÓN DE DISTRIBUCIONES MULTIDIMENSIONALES
Cuando Σ es diagonal
σ12 0 ··· 0
0 σ22 ··· 0
Σ= ,
.. .. .. ..
. . . .
0 0 · · · σd2
se obtiene fácilmente
d
!−1/2
−d/2
Y
f (x ) = (2π) σi2
i=1
1
σ12
0 ··· 0
0 σ122 ··· 0
1 0
× exp
− 2 (x − µ ) ..
.. (x − µ
... .. )
. . .
1
0 0 · · · σ2
d
d
! d
!
−d/2
Y 1 X (xi − µi )2
= (2π) σi−1 exp −
i=1
2 i= σi2
d
!! d
Y 1 (xi − µi )2 Y
= √ exp − 2
= φµ1 ,σi (xi )
i=1
σi 2π 2σi i=1
Una propiedad que resulta muy útil para simular la distribución Nd (µ , Σ) con Σ
arbitraria es la siguiente.
Si Σ es una matriz definida positiva, existe una matriz ortogonal H (es decir, tal
que H−1 = H0 ) de forma que la matriz Λ = H0 ΣH es diagonal. De hecho, H es la
matriz de cambio de base para que la matriz asociada a la correspondiente aplicación
lineal sea la matriz diagonal Λ (en lugar de la matriz de partida Σ).
Las columnas de la matriz H son precisamente los autovectores linealmente inde-
pendientes (y de módulo unitario) de la matriz Σ, es decir, d vectores linealmente
independientes, x1 , x2 , . . . , xd , tales que xi 0 xi = 1 para todo i = 1, 2, . . . , n y con
xi 0 xj = 0 si i 6= j, verificando además que ∃λi ∈ R tal que Σxi = λi xi (condición de
ser un autovector). Además, los autovalores λ1 , λ2 , . . ., λd (que son todos positivos)
son precisamente los elementos de la diagonal de la matriz Λ.
Partiendo de una variable Z ∈ Nd (0, I) (fácilmente simulable a partir de Z1 , Z2 ,
. . ., Zd ∼ N (0, 1) independientes), se tiene que Λ1/2 Z ∈ Nd (0, Λ), siendo
1/2
λ1 0 ··· 0
1/2
1/2
0 λ2 ··· 0
Λ = .
.. .. ... ..
. . .
1/2
0 0 · · · λd
X = µ + HΛ1/2 Z ∈ Nd (µ , Σ)
Diseño de experimentos de
simulación
75
76 CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
La simulación estática se usa muy frecuentemente por los estadı́sticos para com-
probar el comportamiento comparativo de diversos métodos estadı́sticos alternativos
para tamaños muestrales finitos (complementando los estudios teóricos, casi siempre
asintóticos).
N
1 X 1
V ar X − Y = 2
V ar (Xi − Yi ) = V ar (X1 − Y1 )
N i=1 N
1
= (V ar (X1 ) + V ar (Y1 ) − 2Cov (X1 , Y1 ))
N
Usando los mismos números aleatorios (es decir, repitiendo los cálculos con la misma
semilla) en las variables de entrada de la simulación, se tiene que Cov (Xi , Yi ) > 0 y,
por tanto,
1
V ar X − Y ≤ (V ar (X1 ) + V ar (Y1 ))
N
que es la varianza que tendrı́a X − Y en caso de haber usado muestras independientes
para cada estrategia.
78 CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
Una forma de utilizar esta última expresión para reducir la varianza del estimador
consiste en hacer que cada variable con ı́ndice impar sea negativamente correlada con
la variable de ı́ndice siguiente (siendo independiente de las demás).
La forma más sencilla de conseguir esto cuando se utiliza el método de inversión
para simular las Xi consiste en tomar un valor U ∼ U (0, 1) para simular X2i−1 y el
valor 1 − U para simular X2i , su variable antitética, para i = 1, 2, . . . , N2 (si N es par).
El procedimiento es más complicado con otros métodos de simulación distintos del de
inversión.
7.4.3. Estratificación
En ocasiones conviene dividir la población en estratos obteniendo, del total de la
muestra, cierto número de observaciones de cada estrato (proporcional a la probabilidad
de cada uno).
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 distribución.
Dado que, en principio, no hay nada que nos garantice que, simulando diez valores
U1 , U2 , . . . , U10 ∼ U (0, 1), las proporciones de los estratos son las deseadas (aunque
sı́ lo sean en media) una forma de proceder consiste en rechazar valores de U que
caigan en uno de esos tres intervalos cuando el cupo de ese estrato esté ya lleno. Esto
d
es lo mismo que simular 4 valores de U |U ∈[0,6,1) = U [0,6, 1) para el primer estrato, 5
d d
valores de U |U ∈[0,1,0,6) = U [0,1, 0,6) para el segundo y uno de U |U ∈[0,0,1) = U [0, 0,1) para
el tercero.
El algoritmo con esta estratificación serı́a como sigue:
que es bastante menor que 0.1, la varianza en el caso de muestreo aleatorio simple no
estratificado.
80 CAPÍTULO 7. DISEÑO DE EXPERIMENTOS DE SIMULACIÓN
Los problemas de dependencia son aquéllos derivados del hecho de que frecuente-
mente (de nuevo en modelos de simulación dinámica) las distintas variables de salida
de la simulación son dependientes. En el ejemplo anterior es obvio que cada valor Xt
depende de Xt−1 (incluso de Xt−2 y de otras anteriores, aunque cada vez en menor
medida). Esto afecta fundamentalmente a la precisión de los estimadores construidos
con observaciones de las mismas. Una forma de atenuar este efecto serı́a considerar
observaciones de las mismas en instantes temporalmente lejanos (donde se supone que
la dependencia es mucho más débil). En ocasiones, más que atenuar este efecto se trata
de estimar la precisión del estimador resultante. Obviamente, para ello ha de tenerse
en cuenta la dependencia.