Teoría de Modelos y Simulación Generación de Números Aleatorios

Anuncio
Teoría de Modelos y Simulación
Enrique Eduardo Tarifa
Facultad de Ingeniería - Universidad Nacional de Jujuy
Generación de Números Aleatorios
Introducción
Este capítulo trata sobre la generación de números aleatorios. La misma es necesaria para la
simulación de sistemas estocásticos como se verá en los siguientes capítulos. En primer lugar
se definirá qué se entiende por número aleatorio. A continuación se estudiarán las pruebas a
que debe ser sometido un generador de número aleatorios antes de ser aceptado. Finalmente,
se presentarán métodos para generar variables que siguen distribuciones de frecuente
aplicación.
Propiedades de números aleatorios
Una secuencia de números aleatorios R1, R2, ..., debe tener dos importantes propiedades
estadísticas: uniformidad e independencia. Cada número aleatorio Ri es una muestra
independiente tomada de una distribución continua uniforme entre cero y uno. Esto es, la
función de densidad de probabilidad es:
1 0 ≤ x ≤ 1
f ( x) = 
(1)
0 otherwise
Esta función es graficada en la Figura 1. El valor esperado de cada número Ri es dado por:
1
x2
1
E ( R) = ∫ x dx =
=
0
2 0 2
1
(2)
y la varianza es dada por:
1
1
V ( R ) = ∫ x 2 dx − [E ( R )]2 =
0
2
x3
1 1 1 1
−  = − =
3 0  2  3 4 12
(3)
Como consecuencia de las propiedades de uniformidad e independencia se tiene:
1. Si el intervalo (0, 1) es dividido en n clases, o subintervalos de longitudes iguales, el
número esperado de observaciones en cada intervalo es N/n, donde N es el número
total de observaciones.
2. La probabilidad de observar un valor en un intervalo en particular es independiente de
los valores previamente observados.
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
1
f(x)
1
0
1
x
Figura 1: Distribución uniforme.
Generación de números pseudos aleatorios
La palabra “pseudos” refiere a que los números generados por los métodos a estudiar no son
completamente aleatorios puesto que se conoce el modo de generarlos, y esta secuencia puede
ser reproducida cuantas veces sea necesaria. Realizada esta observación, el objetivo de
cualquier generador de números aleatorios es producir una secuencia de números entre cero y
uno que tenga las propiedades ideales de uniformidad e independencia. A esto se agrega la
necesidad de contar con una longitud de ciclo suficientemente grande. La longitud de ciclo, o
periodo, representa la longitud de la secuencia de números aleatorios que el generador
siempre repite.
Método de congruencia lineal
El método de congruencia lineal es ampliamente utilizado. Este método produce una
secuencia de números enteros, X1, X2, ... entre cero y m-1 de acuerdo a la siguiente relación
recursiva:
X i +1 = (a X i + c) mod m
(4)
El valor inicial X0 se llama semilla, a es la constante multiplicativa, c es el incremento, y m es
el módulo. Si c ≠ 0, se tiene el método de congruencia mixta. Cuando c = 0, se tiene el método
de congruencia multiplicativa. La selección de los valores a, c, m, y X0 afecta fuertemente a
las propiedades estadísticas y la longitud de ciclo del generador.
Como ejemplo del método de congruencia lineal se generará una secuencia para a = 17,
c = 43, m = 100 y X0 = 27. En este caso, el entero generado estará entre 0 y 99 debido al valor
del módulo. Note también, que si se necesita generar una secuencia de números aleatorios
entre 0 y 1, esta puede ser generada por:
X
Ri = i
(5)
m
Con esto, las secuencias generadas son:
i
X
R
0
27
---
1
2
3
2
0.02
77
0.77
52
0.52
Como puede deducirse de este ejemplo, debido a que Xi es un entero del conjunto {0, 1, 2, ...,
(m-1)}, los números aleatorios Ri generados con este método sólo pueden asumir valores del
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
2
conjunto finito I = {0, 1/m, 2/m, ..., (m-1)/m}. Esto significa que se tiene una distribución
discreta en lugar de una continua. Ésta será una buena aproximación cuando el módulo sea
grande. Cuando esto ocurra, no existirán grandes huecos (gaps) entre los números generados,
y se tendrá una máxima densidad.
Para obtener la máxima densidad y evitar los ciclos (recurrencia de la misma secuencia de
números ya generados) el generador debería tener el periodo más grande posible. El máximo
periodo puede lograrse eligiendo apropiadamente los valores de los parámetros del generador,
por ejemplo (Banks et al., 1996):
• Para m = 2b y c ≠ 0, el máximo periodo es P = m, y puede lograrse con un valor de c
que sea un número primo relativo a m (esto es, que el máximo factor común entre
ambos sea 1), y a = 1+4k. k y b son enteros.
• Para m = 2b y c = 0, el máximo periodo es P = m/4, y puede lograrse con un valor
impar para la semilla X0, y a = 3+8k, o a = 5+8k. k y b son enteros.
• Para m número primo y c = 0, el máximo periodo es P = m-1, y puede lograrse con un
valor de a tal que el menor entero k que hace que a k-1sea divisible por m es k = m-1.
La Tabla 1 muestra la determinación del periodo de un generador congruencial multiplicativo
para a = 13, m = 26 = 64, X0 = 1, 2, 3, 4. Se puede ver que el máximo periodo, 16, se alcanza
para las semillas impares, y éste es igual al máximo teórico P = m/4 ya que a = 5+8k con
k = 1.
Tabla 1: Periodo de un generador.
i
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
X i Xi X i X i
1
2
3
4
13 26 39 52
41 18 59 36
21 42 63 20
17 34 51
4
29 58 23
57 50 43
37 10 47
33
2 35
45
7
9
27
53
31
49
19
61
55
25
11
5
15
1
3
Cuando la semilla es 1, la secuencia generada asume valores del conjunto {1, 5, 9, 13, ..., 53,
57, 61}. Los huecos entre los números aleatorios Ri son grandes (5/64-1/64 = 0.0625,
densidad insuficiente), el periodo es demasiado corto; por lo tanto, no se recomienda la
utilización de este generador.
Un generador bastante utilizado en la práctica tiene los siguientes parámetros a = 75 = 16807,
m = 231-1 = 2147483647 (un número primo) y c = 0. Estos valores aseguran un periodo
P = m-1. Para una semilla igual a 123457, los valores generados son:
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
3
i
X
R
0
123457
---
1
2074941799
0.9662
2
559872160
0.2607
3
1645535613
0.7662
Generadores combinados
Cuando la aplicación requiere de un periodo mayor al que se puede alcanzar con un generador
simple, se recurre a los generadores combinados de congruencia lineal. Para generar la
secuencia de Xi y Ri requerida, este generador necesita las salidas Xi,j, j = 1..k, de k diferentes
generadores de congruencia multiplicativa cuyos parámetros tienen los valores apropiados
para asegurar un periodo mj-1. El generador j produce la salida Xi,j entera uniformemente
distribuida de 1 a mj-1. La combinación se calcula mediante las siguientes fórmulas:
 k

X i =  ∑ ( −1) j −1 X i , j  mod ( m1 − 1)
(6)
 j =1

 Xi
 m
Ri =  1
m −1
 1
 m1
El periodo máximo posible es:
P=
Xi > 0
Xi = 0
( m1 − 1) ( m2 − 1)K ( mk − 1)
2 k −1
(7)
(8)
Para computadoras de 32 bits se sugiere combinar dos generadores k = 2 con m1 =
2147483563, a 1 = 40014, m2 = 2147483399 y a2 = 40692. La semilla del primer generador se
toma del intervalo [1, 2147483562], y la semilla del segundo generador se toma del intervalo
[1, 2147483398]. El periodo es (m1-1) (m2-1)/2 ≈ 2x1018.
Pruebas para números aleatorios
Antes de aceptar un generador se debe probar cuán bien satisface las propiedades ideales de
uniformidad e independencia. Algunas pruebas desarrolladas en tal sentido son:
• Prueba de frecuencia: Usa el método de Kolmogorov-Smirnov o el método chicuadrado para comparar una distribución uniforme con la secuencia generada.
• Prueba de corridas o rachas (runs test): Utiliza el chi-cuadrado para determinar la
presencia anormal de grupos de números ascendentes, descendentes, por encima del
promedio, o por debajo del promedio.
• Prueba de autocorrelación: Compara la correlación existente entre los elementos de
una secuencia con la correlación nula esperada.
• Prueba de huecos (gap test): Cuenta los números de dígitos entre dos sucesivas
repeticiones y utiliza la prueba de Kolmogorov-Smirnov para comparar esta cantidad
con el valor esperado.
• Prueba de poker: Controla que la frecuencia de aparición de dígitos en una serie de
números sea la esperada.
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
4
Técnica de la transformada inversa
Hasta aquí se han estudiado los números aleatorios y la forma de generarlos. Sin embargo,
generalmente en las simulaciones de sistemas estocásticos es necesario generar variables
aleatorias, las cuales tienen una distribución distinta de la uniforme. La trasformada inversa
es uno de los métodos utilizados para este fin.
La Figura 2 muestra en forma gráfica el principio de este método. Primero, se grafica la curva
de distribución acumulada F(X) correspondiente a la distribución deseada. Luego, se genera
un número aleatorio R, con el cual se ingresa por la ordenada y se intercepta la curva F(X), el
número X correspondiente a la abscisa del punto interceptado es un número aleatorio que
tiene la distribución deseada.
F(X)
1
R
0
A
X
B
Figura 2: Método gráfico.
Analíticamente, el método se representa como:
F ( x) = ∫
x
−∞
f (t ) dt
X = F −1 ( R )
(9)
(10)
donde f(x) es la función de densidad de probabilidad de la distribución deseada. Para ver
porqué el X generado con este método en realidad tiene la distribución deseada, tome un valor
x0 y compute la probabilidad acumulada:
P( X ≤ x0 ) = P( R ≤ F ( x0 )) = F ( x0 )
(11)
Puesto que F(x0) pertenece al intervalo [0,1], la segunda igualdad plantea que R es un número
uniformemente distribuido en dicho intervalo, y como F(x) es la función de probabilidad
acumulada de X, se concluye que esta variable tendrá la distribución deseada.
Distribución exponencial
Utilizando el método de la transformada inversa a continuación se desarrolla un generador de
variables aleatorias con distribución exponencial. La función de densidad de probabilidad es:
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
5
λ e− λ x
f ( x) = 
 0
x≥0
(12)
x<0
Entonces, la función de distribución acumulada es:
x
1 − e−λ x
F ( x) = ∫ f (t ) dt = 
−∞
 0
x≥0
x<0
(13)
Esta distribución generalmente se utiliza para modelar los tiempos entre llegadas de clientes.
En ese caso, el parámetro λ puede ser interpretado como el número medio de arribos por
unidad de tiempo, y 1/λ sería el tiempo medio entre arribos.
Aplicando el método de la transformada inversa, se tiene:
F ( X ) = 1 − e− λ X = R
F −1 ( R) =
−1
ln(1 − R ) = X
λ
(14)
(15)
Dado que R está uniformemente distribuido en el intervalo [0,1], entonces (1-R) también lo
está; por lo tanto se puede hacer la siguiente simplificación:
−1
X=
ln( R)
(16)
λ
Distribución uniforme
Para generar una variable X con distribución uniforme en el intervalo [a, b], la función de
densidad de probabilidad es:
 1

a≤ x≤b
f ( x) =  b − a
(17)
 0
otherwise
La función de probabilidad acumulada es entonces:
 0
x<a
x −a
F ( x) = 
a≤ x≤b
b − a
x>b
 1
De acuerdo al método de la trasformada inversa:
X −a
F( X ) =
=R
b−a
Despejando, se tiene el generador correspondiente:
X = a + (b − a ) R
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
(18)
(19)
(20)
6
Distribución de Weibull
Esta distribución se utiliza para modelar el tiempo entre fallas de maquinarias o componentes
electrónicos. Cuando el parámetro de localización es nulo (ν = 0), la función de densidad de
probabilidad es:
 β β −1 −( x / α )

x e
x≥0
f ( x) =  α β
(21)

0
otherwise
β
El método de la transformada inversa plantea que:
β
F ( X ) = 1 − e−( X / α ) = R
Resolviendo, se tiene el generador correspondiente:
X = α [− ln(1 − R)]1 / β
(22)
(23)
Simplificando, se obtiene:
X = α [ − ln( R )]1 / β
(24)
Distribución triangular
Considere que la distribución deseada es una distribución triangular con la siguiente función
de densidad de probabilidad:
0 ≤ x ≤1
 x

f ( x) =  2 − x 1 < x ≤ 2
(25)
 0
otherwise

Esta distribución se denomina distribución triangular con extremos (0, 2) y moda en 1. La
función de probabilidad acumulada es:
0
x≤0


x2
0< x≤1

2
F ( x) = 
(26)
( 2 − x) 2
1 −
1< x ≤ 2
2


1
x>2
Aplicando el método de la transformada inversa y operando se tiene el correspondiente
generador:

2R
0 ≤ R ≤ 12
X =
(27)
 2 − 2 (1 − R ) 12 < R ≤ 1
La fórmula general para una distribución triangular es:
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
7
 2 ( x − a)
 (b − a ) (c − a )

 2 (c − x )
f ( x) = 
 (c − b ) (c − a )
0


a≤x<b
b≤x≤c
(28)
otherwise

( x − a) 2

(b − a ) (c − a )
F ( x) = 
2
b − a + ( x − b)
 c − a (c − b) (c − a )
a≤ x<b
(29)
b≤ x ≤c
Aplicando el método de la transformada inversa se obtiene el siguiente generador:
b−a

a + (b − a ) (c − a ) R
0≤R<

c−a
X =
b−a
 b + [(c − a ) R − (b − a )]( c − b )
≤ R ≤1

c−a
(30)
Distribución empírica
Cuando no es posible encontrar una distribución teórica para modelar los datos, entonces se
utiliza una distribución empírica. Esta puede estar expresada como una tabla de frecuencias o
directamente una tabla de datos sin procesar. En el primer caso se cuenta con intervalos y la
frecuencia de cada uno de ellos. Se calcula la frecuencia relativa y luego la acumulada, como
se muestra en el siguiente ejemplo.
Tabla 2: Tabla de frecuencias.
Intervalo
0.25 ≤ x ≤ 0.5
0.5 < x ≤ 1.0
1.0 < x ≤ 1.5
1.5 < x ≤ 2.0
Frecuencia
31
10
25
34
Frecuencia relativa
0.31
0.10
0.25
0.34
Frecuencia acumulada
0.31
0.41
0.66
1.00
Para generar la variable aleatoria correspondiente se realiza interpolación lineal en la Tabla 3,
la cual representa la función inversa de la probabilidad acumulada calculada con en la Tabla
2. Note que para facilitar el cálculo, la pendiente ai de cada intervalo i se calcula de antemano
y se almacena en la tabla.
Tabla 3: Función inversa de la probabilidad acumulada.
i
1
2
3
4
5
Entrada
ri
0.00
0.31
0.41
0.66
1.00
Salida
xi
0.25
0.50
1.00
1.50
2.00
Pendiente
ai
0.81
5.00
2.00
1.47
---
A modo de ejemplo, cuando R = 0.33, el X correspondiente se calcula como:
X = 0.50 + 5 .00 (0.33 − 0 .31) = 0.60
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
(31)
8
Cuando se tienen pocos datos no es posible construir una tabla de frecuencias; en su lugar, se
construye una tabla de datos atribuyendo la misma probabilidad a cada uno de ellos. Suponga
que los siguientes 5 datos son los únicos disponibles: 2.76, 1.83, 0.80, 1.45 y 1.24. Primero, se
los ordena en forma creciente y se asigna la probabilidad 1/5 a cada uno de ellos. Luego, se
calcula la probabilidad acumulada y las pendientes. Como resultado se obtiene las siguientes
tablas:
Tabla 4: Tabla de datos.
Intervalo
Probabilidad
0.00 ≤ x ≤ 0.80
0.80 < x ≤ 1.24
1.24 < x ≤ 1.45
1.45 < x ≤ 1.83
1.83 < x ≤ 2.76
0.2
0.2
0.2
0.2
0.2
Probabilidad
acumulada
0.2
0.4
0.6
0.8
1.0
Tabla 5: Función inversa de la probabilidad acumulada.
i
1
2
3
4
5
6
Entrada
ri
0.0
0.2
0.4
0.6
0.8
1.0
Salida
xi
0.00
0.80
1.24
1.45
1.83
2.76
Pendiente
ai
4.00
2.20
1.05
1.90
4.65
---
Para un R = 0.71, el correspondiente X es:
X = 1.45 + 1.90 (0 .71 − 0 .60 ) = 1 .65
(32)
Distribuciones discretas
Las distribuciones discretas se pueden generar utilizando la transformada inversa de la misma
manera que se utilizó para las distribuciones empíricas, sólo que esta vez no es necesario la
interpolación. Por ejemplo, si se desean generar los números 0, 1 y 2 con las probabilidades
0.50, 0.30 y 0.20 respectivamente, se construye la siguiente tabla donde ya se calculó la
probabilidad acumulada:
Tabla 6: Tabla para una distribución discreta.
i
1
2
3
Entrada
ri
0.50
0.80
1.00
Salida
xi
0
1
2
Con esta tabla, el valor de X se calcula de la siguiente forma:
R ≤ 0 .5
0

X = 1 0 .5 < R ≤ 0.8
2 0.8 < R ≤ 1 .0

(33)
Cuando la distribución es uniforme y se desea generar números en el intervalo [a, b]
espaciados por ∆X, se puede utilizar el siguiente generador:
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
9
  b − a 
X = Int R 
+ 1  ∆ X + a

  ∆X
(34)
Para simular un dado se debe hacer a = 1, b = 6 y ∆X = 1.
Transformada directa para la distribución normal
Esta distribución es ampliamente utilizada. La función de densidad de probabilidad es:
−
1
f ( x) =
e
σ 2π
( x −µ ) 2
2σ 2
(35)
Dado que no es posible obtener analíticamente la función inversa de la probabilidad
acumulada, se recurre a métodos alternativos. Uno de los métodos más empleados considera
dos variables con distribución estándar normal Z1 y Z2 (media nula y varianza igual a uno), y
las expresa en coordenadas polares como sigue:
Z 1 = B cos(θ )
(36)
Z 2 = B sin(θ )
Se sabe que B2 = Z12 + Z22 tiene una distribución chi-cuadrado con grado de libertad 2, la cual
es equivalente a una distribución exponencial con media 2. Entonces, el radio B puede ser
generado con:
1/ 2
(37)
B = (− 2 ln( R1 ))
Debido a la simetría de la distribución normal, se supone que θ está uniformemente
distribuido en el intervalo [0, 2π]. Entonces, el ángulo se genera con:
θ = 2π R2
(38)
Finalmente, los valores Z1 y Z2 con distribución normal estándar se obtienen generando B y θ
con las ecuaciones (37) y (38) respectivamente. El valor de X con una distribución normal con
media µ y varianza σ2 se calcula con:
X = µ+σ Z
(39)
Una rutina basada en este método que genera valores Z1 y Z2 con distribución normal estándar
es:
Procedure Polar
Begin
Repeat
Generar R1,R2
v1 := 2*R1 - 1
v2 := 2*R2 - 1
w := v 12 + v22
Until w ≤ 1
u := (-2*ln(w)/w)1/2
Z1 := v1*u
Z2 := v2*u
End.
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
10
Cuando, como en este caso, no es posible obtener analíticamente la función inversa de la
probabilidad acumulada, entonces se puede aproximar esta función ya sea numéricamente o
con expresiones simplificadas. Por ejemplo, se puede utilizar el siguiente generador de
Schmeiser que da una distribución aproximada a la normal estándar:
R 0 .135 − (1 − R) 0 .135
Z=
(40)
0 .1975
Otro generador de distribución normal utiliza el teorema del límite central que plantea: “La
distribución del promedio de n variables aleatorias independientes idénticamente distribuidas
con media µ y varianza σ2 se aproxima a una distribución normal con media µ y varianza
σ2/n”. El generador es:
 12

X = µ +  ∑ Ri − 6 σ
(41)
 i =1

Este generador utiliza la sumatoria de una serie de números aleatorios para obtener la
distribución deseada. En la sección siguiente se estudian otros generadores que utilizan este
mismo principio.
Método de la convolución
La distribución de probabilidad de la suma de dos o más variables aleatorias independientes
se denomina convolución de las distribuciones correspondientes a las variables sumadas. El
método de la convolución suma dos o más variables aleatorias para obtener una nueva con la
distribución deseada. El centro del estudio ya no es la función de probabilidad acumulada de
la distribución deseada, sino su relación con otras distribuciones más fácilmente generables.
Distribución de Erlang
Una variable aleatoria X con distribución Erlang con parámetros (K, θ) puede ser modelada
con la suma de K variables aleatorias independientes Xi con distribución exponencial y media
1/(K θ); esto es:
K
X = ∑ Xi
(42)
i =1
Utilizando el generador de distribución exponencial presentado anteriormente y operando, se
obtiene el generador con la distribución deseada:
K

−1
−1  K
X =∑
ln( Ri ) =
ln  ∏ Ri 
(43)
K θ  i =1 
i =1 K θ
Como ejemplo, suponga que a un depósito llegan camiones cuyos tiempos entre arribos
siguen una distribución exponencial con media 0.1 h. A la entrada son desviados
alternativamente hacia el sur y hacia el norte. Se desea modelar el arribo de camiones al sector
sur. Los tiempos de llegada entre los camiones que llegan al sector sur serán iguales a la suma
de dos tiempos de arribos sucesivos al depósito; es decir, seguirán una distribución Erlang con
K = 2 y 1/θ = 0.2 h.
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
11
Técnica de aceptación y rechazo
En este método se generan valores aleatorios que son sometidos a una prueba para verificar si
cumplen o no con la distribución deseada. El resultado de esta prueba determina si el nuevo
valor es aceptado o rechazado. Un generador eficiente debe mantener el número de rechazos
lo más bajo posible.
Distribución de Poisson
Una variable N con distribución Poisson puede ser interpretada como el número de arribos por
unidad de tiempo a velocidad α en un proceso Poisson. En este proceso, los tiempos entre
arribos A1, A2, ... están exponencialmente distribuidos con una velocidad α (es el número
medio de arribos por unidad de tiempo). Por lo tanto, se puede construir un generador que
determine n tal que:
A1 + A2 + ... + An ≤ 1 < A1 + ... + An + An +1
(44)
Utilizando el generador exponencial anteriormente presentado, se tiene:
n
n +1
−1
−1
ln( Ri ) ≤ 1 < ∑ ln( Ri )
∑
α
i =1
i =1 α
(45)
Operando:
n +1
n
ln( Ri ) ≥ −α > ∑ ln( Ri )
∑
i =1
i =1
(46)
 n

 n +1 
ln  ∏ Ri  ≥ −α > ln  ∏ Ri 
 i =1 
 i =1 
(47)
n +1
n
Ri ≥ e −α > ∏ Ri
∏
i =1
i =1
(48)
Entonces, el procedimiento para generar N con distribución de Poisson es:
1. Hacer n ← 0, P ← 1.
2. Generar un número aleatorio Rn+1 y hacer P ← P Rn+1 .
3. Si P < e-α, aceptar el nuevo valor N ← n, sino rechazar n, hacer n ← n + 1, y retornar
al paso 2.
Note que en promedio será necesario generar α+1 números con distribución exponencial por
cada valor de N. Cuando α ≥ 15 esta técnica se vuelve ineficiente, y conviene utilizar una
técnica basada en la distribución normal:
N −α
Z=
(49)
α
donde Z tiene una distribución normal estándar. Entonces, para cada valor de Z se puede
calcular N con:
N = Round α + α Z
(50)
(
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
)
12
Distribución gamma
Si el parámetro de forma β tiene un valor entero K, se puede utilizar el método de la
convolución ya que la distribución de Erlang es un caso especial de la distribución gamma.
Por otra parte, el método aceptación y rechazo que se describirá a continuación puede ser
utilizado para generar variables con distribución Erlang cuando K es grande. La rutina
siguiente genera variables con distribución gamma con parámetro de escala θ y parámetro de
forma β; esto es, con media 1/θ y varianza 1/(β θ2):
1. Hacer a ← (2 β-1)1/2, b ← 2 β - ln(4) + 1/a.
2. Generar R1 y R2.
3. Hacer X ← β (R1/(1-R1))a.
4. Hacer c ← b - ln(R12 R2).
5. Si X > c, rechazar X y retornar al paso 2.
6. Si X ≤ c, hacer X ← X/(β θ), aceptar X como la variable deseada.
Teoría de Modelos y Simulación. Generación de Números Aleatorios.
13
Descargar