Está en la página 1de 10

Capı́tulo 6

Simulación de Variables Aleatorias

Competencia de la Unidad: Estima parámetros de variables aleatorias, a través de su modelación de


manera fundamentada.

6.1. Método de la Transformada Inversa


Resultado de aprendizaje: Simula una variable aleatoria discreta o continua que representa el resul-
tado de un experimento, a través del método de la transformada inversa.

6.1.1. Variables aleatorias discretas


Consideremos que deseamos generar el valor de una variable aleatoria discreta X con rango RX =
{x0 , x1 , x2 , ...} y con función masa de probabilidad P [X = xj ] = pj para j = 0, 1, 2, .... Notar que
X
pj = 1.
j

El método de la transformada inversa consiste en generar un número aleatorio U con distribución uni-
forme (0, 1) y posteriormente simular el valor de la variable X de acuerdo a la siguiente regla:
8
>
> x0 U < p 0
>
>
>
> x1 p 0  U < p 0 + p 1
>
>
>
> .
>
<..
X= j 1 j
>
> X X
>
> x p  U < pi
>
>
j i
>
> i=0 i=0
>
>
:...
>

en otras palabras estamos definiendo una regla para simular de acuerdo a la función de distribución acumu-
lada de X pues la regla anterior se puede escribir de la siguiente forma
8
>
> x0 U < F (x0 )
>
>
>
> x1 F (x0 )  U < F (x1 )
>
>
<.
X = ..
>
>
>
> xj F (xj 1 )  U < F (xj )
>
>
>
:..
>
.

Notemos que bajo esta regla


"j 1 j
#
X X
P [X = xj ] = P pi  U < pi = pj
i=0 i=0

123
124 CAPÍTULO 6. SIMULACIÓN DE VARIABLES ALEATORIAS

por lo que X obtenida a través de la simulación tiene la distribución deseada.


Ejemplo 6.1.1. Determina la regla de correspondencia para simular una variable aleatoria con función
masa de probabilidad P (X = 1) = 0.20, P (X = 2) = 0.15, P (X = 3) = 0.25 y P (X = 4) = 0.40.
Solución: Calculemos primero la función de distribución acumulada de la variable X:
8
>
> 0 x<1
>
>
>
>
<0.20 1  x < 2
F (x) = 0.35 2  x < 3
>
>
>0.60 3  x < 4
>
>
>
:
1 x 4

Luego la regla para simular dependiendo del valor U es


8
>
> 1 U < 0.20
>
<2 0.20  U < 0.35
X=
>
> 3 0.35  U < 0.60
>
:
4 U 0.60


Observación 6.1.2. Para efectos de programar, el algoritmo se puede expresar como un si anidado de la
siguiente forma:
Si U < 0.20, hacemos X = 1 y se detiene el proceso,
Si U < 0.35 hacemos X = 2 y se detiene el proceso,
Si U < 0.60 se fija X = 3 y se detiene
En otro caso, X = 4.
Ejemplo 6.1.3. Determina la regla de correspondencia para simular una variable aleatoria uniforme discreta
con recorrido {1, 2, 3, ..., n}.
Solución: Sabemos que la función masa de probabilidad de la variable es
1
P (X = j) = para j = 1, 2, ..., n
n
Luego la función de distribución para j es
j
X
F (j) = P (X = i)
i=1
j
X 1
=
i=1
n
j
1X
= 1
n i=1
j
=
n
Luego la regla de simulación indicarı́a que debemos simular
j 1 j
X = j si U <
n n
equivalentemente
X = j si j 1  nU < j
es decir, X = JnU K + 1 donde JxK representa la parte entera de x.
Observación 6.1.4. Como podemos ver en el ejemplo anterior, en esta ocasión encontramos una expresión
explı́cita para la regla de simulación.
6.2. MÉTODO DE ACEPTACIÓN - RECHAZO 125

6.1.2. Variables aleatorias Continuas


Para simular valores de una variable aleatoria continua con función de distribución F usaremos el método
de la transformada inversa que se basa en la siguiente proposición.

Proposición 6.1.5. Sea U una variable aleatoria uniforme (0, 1). Para cualquier variable continua con
función de distribución F , la variable aleatoria X definida por
1
X=F (U )

tiene distribución F .

Demostración: Supongamos que FX es la función de distribución de X. Luego

FX (x) = P (X  x)
1
= P (F (U )  x)

Como F es una función de distribución de una variable aleatoria continua entonces es creciente, por lo tanto
tiene inversa ası́ que
1
FX (x) = P (F (U )  x)
= P (U  F (x))
= F (x)

ya que U es uniforme en el intervalo (0, 1). ⇤

Ejemplo 6.1.6. Sea X una variable aleatoria con función de distribución


8
>
<0 x0
F (x) = xn 0 < x < 1
>
:
1 x 1

Determina una regla para simular X.

Solución: Sea u = F (x) = xn , luego x = u1/n , entonces X puede ser simulado a partir de U mediante
la relación X = U 1/n . ⌅

6.2. Método de aceptación - rechazo


Resultado de aprendizaje: Simula una variable aleatoria discreta o continua que representa el resul-
tado de un experimento, a través del método de aceptación y rechazo.
El método de aceptación - rechazo es una técnica que se utiliza para simular una variable aleatorias X
a partir de la simulación de una variable aleatoria Y que tiene el mismo recorrido que X.

6.2.1. Variables aleatorias discretas


En ocasiones será necesario simular una variable aleatoria X con función masa de probabilidad

P (X = j) = pj para j = 0, 1, ...

a partir de una variable aleatoria Y con función masa de probabilidad P (Y = j) = qj . El método que se usa
es conocido como aceptación-rechazo y se realiza de acuerdo a lo siguiente:
pj
1. Se determina un valor c (de preferencia el más pequeño) tal que  c para toda j que cumple pj > 0
qj
2. Se simula un valor de Y
3. Se genera un número aleatorio U
pY
4. Si U < se establce X = Y , de lo contrario se regresa al paso 2.
cqY
La razón por la que este método funciona se explica en el siguiente teorema.

Teorema 6.2.1. El algoritmo de aceptación-rechazo genera una variable aleatoria X tal que
126 CAPÍTULO 6. SIMULACIÓN DE VARIABLES ALEATORIAS

P (X = j) = pj para j = 0, 1, ...

Demostración: Definamos el evento A : el valor simulado en una iteración es aceptado, luego


X
P (A) = P (A|Y = j)P (Y = j)
j
X ✓ ◆
pj
= P U< qj
j
cqj
X ✓ pj ◆
= qj
j
cqj
X⇣p ⌘ j
=
j
c
1X
= pj
c j
1
=
c
1
Como cada iteración independientemente es aceptado con probabilidad , la variable aleatoria N que re-
c
presenta el número de iteraciones requeridas para aceptar la simulación tiene distribución geométrica con
1
parámetro . Luego si definimos el evento B: el valor simulado es j tenemos que
c
P (X = j) = P (B)
X1
= P (B|N = i)P (N = n)
n=1
X1
= P (Y = j)P (A|Y = j)P (N = n)
n=1
X1 ✓
◆✓ ◆n 1
pj 1
= (qj ) 1
n=1
cqj c
1 ⇣ ✓ ◆
X pj ⌘
n 1
1
= 1
n=1
c c
1 ✓ ◆
pj X
n 1
1
= 1
c n=1 c
pj 1
= 1
c 1 (1 c
)
= pj


Veamos un ejemplo de cómo se aplica este algoritmo.

Ejemplo 6.2.2. Supongamos que queremos simular el valor de una variable aleatoria X, la cual toma los
valores 1,2,...,10 con las siguientes probabilidades respectivamente: .11, .12, .09, .08, .12, .10, .09, .09, .10, .10
. Supongamos que ya tenemos un algoritmo para simular la variable aleatoria discreta uniforme en 1,2,...,10.
A manera de referencia consideremos el algoritmo del ejemplo 6.1.3. Utiliza el método de aceptación-rechazo
para simular la variable X.
1
Solución: Sea Y la variable uniforme discreta en 1,2,...,10 con probabilidad qj = 10
para j = 1, ..., 10.
podemos ver que c

pj
c = max
qj
= 1.2

Entonces el algoritmo es el siguiente:


1. Generar un número aleatorio U1 y hacer Y = J10U1 K + 1.
6.2. MÉTODO DE ACEPTACIÓN - RECHAZO 127

2. Generar otro número aleatorio U2 .


py
3. Si U2  , entonces X = Y y termina, en otro caso regresar al paso 1.
.12

Observación 6.2.3. El método de aceptación y rechazo requiere que las variables X y Y tengan el mismo
recorrido.

6.2.2. Variables aleatorias continuas


Para el caso de variables aleatorias continuas tenemos un resultado análogo al método de aceptación-
rechazo: consideremos que tenemos un método para simular la variable aleatoria Y con densidad g(x).
Podemos usar como base esta función de densidad para simular una variable aleatoria X con función de
densidad f (x) a través de los siguientes pasos:
f (x)
1. Determinar un valor c (usualmente el mı́nimo) tal que  c.
g(x)
2. Simular un valor de la variable Y con densidad g.
3. Simular un número aleatorio U
f (y)
4. Si U  establecer X = Y , de lo contrario regresamos al paso 2.
cg(y)
La razón por la que este método funciona para variables aleatorias continuas es análogo a lo demostrado
en el teorema 6.2.1 para variables discretas, más aún, sigue conservando las propiedades como que el número
de simulaciones que se tienen que hacer para obtener un valor simulado tiene distribución geométrica de
1
parámetro .
c
Ejemplo 6.2.4. Usando el método de aceptación y rechazo, describe un algoritmo para simular una variable
aleatoria con función de densidad

f (x) = 20x(1 x)3 , 0 < x < 1

a partir de la densidad de una variable aleatoria uniforme en el intervalo (0,1).

Solución: La función de densidad de la variable uniforme (0, 1) es

g(x) = 1 para 0 < x < 1


f (x)
Para determinar la constante más pequeña c que satisface  c, usamos cálculo para obtener el valor
g(x)
máximo
f (x)
= 20x(1 x)3
g(x)
Derivando obtenemos
✓ ◆
d f (x)
= 20(1 x)3 60x(1 x)2
dx g(x)
= 20(1 x)2 (1 4x)

Ası́ el valor máximo satisface la ecuación 20(1 x)2 (1 4x) = 0 y como 0 < x < 1 obtenemos x = 1
4
. De
esta manera

f (1/4)
c =
g(1/4)
✓ ◆ ✓ ◆3
1 3
= 20
4 4
135
=
64
Por lo tanto
128 CAPÍTULO 6. SIMULACIÓN DE VARIABLES ALEATORIAS

f (x) 256
= x(1 x)3
cg(x) 27

y el procedimiento para simular es el siguiente:


1. Generar números aleatorios U1 y U2 .
256
2. Si U2  U1 (1 U1 )3 , se termina y X = U1 , en otro caso, regresa al paso 1.
27

6.3. Simulación de Vectores Aleatorios


Resultado de aprendizaje: Simula vectores que representan fenómenos aleatorios, considerando la
función de distribución conjunta.
Un vector aleatorio X1 , . . . , Xn puede ser simulado generando secuencialmente las Xi . Es decir, primero
se genera X1 ; luego se genera X2 de la distribución condicional dado el valor generado de X1 ; después se
genera X3 de la distribución condicional dados los valores generados de X1 y X2 ; y ası́ sucesivamente.

6.3.1. Vector multinomial


Considera n ensayosP independientes, que pueden tomar los valores 1, 2, ..., r con probabilidad p1 , p2 , ..., pr
respectivamente tal que ri=1 pi = 1. Si Xi denota el número de ensayos que son iguales a i, entonces el vector
aleatorio (X1 , . . . , Xr ) se dice que es un vector aleatorio multinomial. Esta función masa de probabilidad
conjunta está por:
n!
P [Xi = xi , i = 1, . . . , r] = px1 · · · pxr r
x1 ! · · · xr ! 1
Pr
donde i=1 xi = n.
La mejor manera para simular un vector aleatorio depende de la relación en el tamaño de r y n.
1. Caso 1: si r es grande en relación a n; entonces muchos de los resultados no ocurren en alguno de los
ensayos, entonces probablemente lo mejor es simular las variables aleatorias generando los resultados
de los n ensayos, esto es, primero generar variables aleatorias independientes Yi , . . . , Yn , tales que
P [Yj = i] = pi para i = 1, ..., r y j = 1, ..., n
y luego definimos Xi como el número de j tal que Yj = i, es decir, el valor generado de Yj representa
el resultado del ensayo j, y Xi es el número de ensayos que obtuvieron como resultado i.
2. Caso 2: si n es más grande en relación a r, entonces X1 , . . . , Xr puede ser simulado en secuencia.
Esto es, primero generar X1 , luego X2 , después X3 y ası́ sucesivamente. Para simular X1 recordamos
que X1 ⇠ Bin(n, p1 ); una vez que ya se tenga el valor de x1 , entonces el número de ensayos que
faltan por determinar es n x1 , de esta forma X2 |X1 = x1 ⇠ Bin(n x1 , p2 ): de manera análoga
X3 |X1 = x1 , X2 = x2 ⇠ Bin(n x1 x2 , p3 ). Procediendo de manera análoga simulamos el resto de
las variables del vector.

6.3.2. Vector Normal Multivariado


Supongamos que queremos simular un vector normal multivariado X ~ = (X1 , . . . , Xn ) con vector de
medias µ y matriz de covarianzas ⇤. En el teorema 2.2.10 vimos que
~ +µ
X = ⇤1/2 Z (6.1)
~ formado por entradas de variables aleatorias normal estándar independientes. Esta relación es útil
con Z
porque nos indica que para generar un vector aleatorio normal multivariado realizamos lo siguiente:
1. Determinar la matriz ⇤1/2
2. Simular variables Z1 , ..., Zn independientes normales estándar
~
3. Utilizar la ecuación (??) para determinar los valores de X.
6.3. SIMULACIÓN DE VECTORES ALEATORIOS 129

Otra forma de simular un vector normal multivariado, es utilizar la descomposición de Choleski que
establece que para alguna matriz ⇤ de nxn simétrica y definida positiva, hay una matriz triangular inferior
A tal que ⇤ = AAt . Luego se puede utilizar la relación
~ +µ
X = AZ (6.2)

para simular el vector X.


✓ 2

~ 2 N (µ, ⇤) con ⇤ = 1 c ~
Ejemplo 6.3.1. Sea X 2 . Determina un algoritmo para simular X.
c 2

Solución: Usemos a descomposición de Choleski, sea


✓ ◆
a11 0
A=
a21 a22

Entonces necesitamos resolver la ecuación


✓ ◆✓ ◆ ✓ 2

a11 0 a11 a21 1 c
= 2
a21 a22 0 a22 c 2

Esto es, ✓ ◆ ✓ ◆
a211 a11 a21 2
1 c
=
a11 a21 a221 + a222 c 2
2

Lo que nos indica que

a211 = 2
1

a11 a21 = c
a221 + a222 = 2
2

c
Definiendo la correlación entre X1 y X2 como ⇢ = entonces las ecuaciones anteriores originan los
1 2
siguientes resultados:

a11 = 1

c
a21 =
a11
c
=
1
= ⇢ 2

y
q
2
a22 = 2 a221
q
2 2
= 2 ⇢2 2
p
= 2 1 ⇢2

Por lo tanto ✓ ◆
A=
1
p0
⇢ 2 2 1 ⇢2
Luego el algoritmo para simular es el siguiente:
1. Simular variables aleatorias Z1 y Z2 normales estándar independientes
~ = AZ
2. Usar la relación X ~ + µ para determinar una simulación de X,
~ es decir,

X1 = 1 Z1 + µ1
p
X2 = ⇢ 2 Z1 + 2 1 ⇢ 2 Z2 + µ2


130 CAPÍTULO 6. SIMULACIÓN DE VARIABLES ALEATORIAS

6.3.3. Cópulas
Para simular variables aleatorias relacionadas a través de una cópula C, recordemos la proposición 5.2.5
que nos dice que

C(x, y) = H(F ( 1)
(x), G( 1)
(y))

donde H es la distribución conjunta con marginales F y G. Para el caso donde F y G tienen inversa tenemos
que
1 1
C(x, y) = H(F (x), G (y))
1 1
= P (X  F (x), Y  G (y))
= P (F (X)  x, G(Y )  y)

lo que nos dice que la cópula C es la función de distribución conjunta de las variables F (X) y G(Y ).
De esta forma si queremos generar un vector aleatorio X ~ = (X1 , ..., Xn ) con distribuciones marginales
F1 , ..., Fn y cópula C, lo que tenemos que hacer es lo siguiente:
1. Generar un vector aleatorio (y1 , y2 , ..., yn ) que tenga la distribución C.
2. Para toda i, resolvemos la ecuación la ecuación Fi (xi ) = yi , es decir, xi = Fi 1 (yi ), entonces el vector
simulado es ~x = (x1 , ..., xn ).

Ejemplo 6.3.2. Escribe un procedimiento para simular un vector aleatorio X ~ = (X1 , ..., Xn ) que tenga
distribuciones marginales Fi , covarianzas Cov(Xi , Xj ) para i 6= j y cópula Gaussiana definida por
1 1 1
C(x1 , x2 , ..., xn ) = n( (x1 ), (x2 ), ..., (xn ))

donde es la función de distribución de una variable aleatoria normal estándar y n es la función de


distribución de un vector normal multivariado.

Solución: El procedimiento para simular es el siguiente


1. Podemos ver que la distribución de la la cópula C es igual a n , es decir, es igual a la distribución
de un vector normal multivariado. Por lo que comenzamos simulando un vector normal multivariado
con las condiciones descritas, es decir, que tenga covarianzas Cov(Xi , Xj ) para i 6= j. Lo anterior se
puede realizar a través del procedimiento descrito en la subsección de normal multivariada, es decir,
se genera un vector W ~ = (W1 , W2 , ..., Wn ) normal multivariado con vector de medias igual a cero,
varianzas igual a 1 y covarianzas tal que Cov(Wi , Wj ) = Cov(Xi , Xj ) para i 6= j.
2. Calcular los valores (Wi ) para i = 1, 2, ..., n y notemos que la función de distribución conjunta de
( (W1 ), (W2 ), ..., (Wn )) es una cópula Gaussiana.
3. Resolvamos las ecuaciones Fi (Xi ) = (Wi ) para i = 1, 2, ..., n para obtener Xi = Fi 1 ( (Wi )) de
donde se obtiene que el vector simulado es ~x = (x1 , ..., xn ).

6.4. Simulación de Modelos Aleatorios


Resultado de aprendizaje: Simula variables relacionadas con fenómenos aleatorios, a través de mo-
delos matemáticos.
Ahora que ya sabemos simular variables aleatorias discretas, continuas y vectores de probabilidad, pro-
cedemos a simular modelos aleatorios que involucran varias variables.
Consideremos el caso donde se desea simular la variable aleatoria S que está en función (sin pérdida
de generalldad con respecto al número de variables) de las variables X, Y y Z, es decir, S = g(X, Y, Z). El
procedimiento para simular S es el siguiente:
1. Determinar las distribuciones y dependencias de las variables aleatorias X, Y y Z.
2. Para j = 1, ..., n simular xj , yj y zj y después calcular sj a través de la relación sj = g(xj , yj , zj ).
3. La función de distribución acumulada de S puede ser aproximada por Fn (s) que es la función de
distribución empı́rica basada en la muestra s1 , ..., sn .
6.4. SIMULACIÓN DE MODELOS ALEATORIOS 131

4. Calcular cantidades de interés, tales como la media, varianza, percentiles o probabilidades, usando la
función de distribución empı́rica.

Ejemplo 6.4.1. Determinar la prima de una cartera de daños que presenta las siguientes caracerı́sticas:
El número de reclamaciones es una variable aleatoria Poisson con parámetro 25
El monto de cada reclamación es una variable aleatoria exponencial con media 1250.
Los montos de las reclamaciones son independientes entre sı́ e independientes del número de reclama-
ciones.
Considera que a la prima de riesgo se le agrega 12 % para obtener la prima de tarifa.

Solución: Sea S la variable aleatoria que representa la siniestralidad total de la cartera. Entonces
N
X
S= Yi
i=1

donde N ⇠ P oisson(25) y Yi ⇠ exp(1250). El procedimiento para simular S serı́a el siguiente:


1. Smular un valor de la variable N , digamos n.
2. Simular n valores de la variable Y , digamos y1 , y2 , ..., yn
Xn
3. Entonces s = yi
i=1

4. La prima de tarifa serı́a (1.12)s.



No es difı́cil convencerse de que cada que vez que simulemos un valor de la variable S, la prima estará
cambiando; todavı́a más, se pueden obtener valores de S muy distantes entre sı́ lo que trae como consecuencia
que la prima que se cobre sea muy diferente. La aseguradora no va a estar cambiando la prima sino que
tendrá que decirle al cliente una única prima, por lo que es necesario determinar un procedimiento que calcule
la prima óptima; para ello será necesario primero determinar el número de simulaciones que se requieren
hacer.
Consideremos que deseamos estimar el valor esperado de la variable S, al ser una estimación tendremos
que definir un lı́mite de error digamos " y una confianza igual a 100(1 ↵) %, sabemos que un estimador de
E[S] es S n , luego queremos entonces que

P ( Sn E[S]|  " 100(1 ↵)

Por nuestro curso de inferencia sabemos que para una muestra aleatoria S1 , S2 , ..., Sn donde la media de
2
las variables es µ y la desviación estándar es , entonces se tiene que E[S n ] = µ y V ar(S n ) = , ası́ que
n
por el teorema lı́mite central tenemos que

100(1 ↵)  P ( Sn E[S]|  "


= P ( Sn µ|  "
0 1
S n µ "
= P@ q  q A
V ar(S n ) V ar(S n )
✓ ◆
Sn µ "
= P p  p
/ n / n
✓ ◆
"
= P |Z|  p
/ n

donde Z tiene una distribución normal estándar. Ası́ que el objetivo es alcanzado cuando
"
p z1 ↵/2
/ n
equivalentemente
132 CAPÍTULO 6. SIMULACIÓN DE VARIABLES ALEATORIAS

"2
2 /n
z12 ↵/2

2 2
z1 ↵/2
"2
n
2 2
z1 ↵/2
n
"2
Hemos encontrado el número mı́nimo de simulaciones para estimar E[S]. Como el valor es desconocido,
lo estimamos a través del estimador insesgado de la varianza
n
X
ˆ2 = 1
(Si S n )2 .
n 1 i=1

6.5. Ejercicios
✓ ◆
1
1. Escribe la regla para simular una variable aleatoria Bin 4, .
4
2. Escribe la regla para simular una variable Binomial negativa con parámetro (1, 1/3).
3. Verifica que una variable aleatoria geométrica con función masa de probabilidad
P (X = i) = pq i 1 para i = 1, 2, ...
s {
Ln(U )
puede ser simulada a través de la expresión X = + 1 donde U se distribuye U nif orme(0, 1).
Lnq
4. Escribe la regla para simular una variable aleatoria Uniforme(a, b).
5. Escribe la regla para simular una variable aleatoria exponencial con media .
6. Usando el✓método
◆ de aceptación y rechazo, escribe el algoritmo para simular una variable aleatoria
1
Binomial 4, a partir de la simulación de una variable Uniforme discreta en {0, 1, 2, 3, 4}
3
7. Usando el método de aceptación y rechazo, escribe el algoritmo para simular una variable aleatoria
con función masa de probabilidad P (X = 1) =0.3, P (X = 2) =0.5 y P (X = 3) =0.2 a partir de la
simulación de una variable Bin(3, 0.4).
8. Usando el método de aceptación y rechazo escribe el algoritmo para simular una variable aleatoria
3
gamma( 32 , 1) a partir de una variable aleatoria exponencial con media .
2
9. Usando el método de aceptación y rechazo escribe el algoritmo para simular una variable aleatoria
con densidad
2 x2
f (x) = p e 2 para x > 0
2⇡
a partir de una variable aleatoria exponencial de media uno.
✓ ◆
3 1
10. Escribe el algoritmo para simular un vector multinomial de parámetros 3, , .
4 4
◆ ✓
1 1 1
11. Escribe el algoritmo para simular un vector multinomial de parámetros 2, , , .
3 2 6
✓ ◆
1 1 5
12. Escribe el algoritmo para simular un vector multinomial de parámetros 5, , , .
3 4 12
13. Utiliza ~ 2 N (µ, ⇤) con µ =
0 1 el resultado
0 de Choleski
1 para escribir el procedimiento para simular X
1 9 4 2
@ 0 A y ⇤ = @4 8 3 A.
1 2 3 7
✓ ◆ ✓ ◆
~ 2 N (µ, ⇤) con µ = 2 y ⇤ = 2
14. Escribe al algoritmo para simular X
2
calculando ⇤1/2 .
1 2 2

También podría gustarte