En todo modelo de simulaci¶on estoc¶astico, existen una o varias variables aleatorias interactuando.
Generalmente, estas variables siguen distribuciones de probabilidad te¶oricas o emp¶³ricas diferentes
a la distribuci¶on uniforme. Por consiguiente, para simular este tipo de variables, es necesario contar
con un generador de n¶umeros uniformes y una funci¶on que a trav¶es de un m¶etodo espec¶³¯co,
transforme estos n¶umeros en valores de la distribuci¶on de probabilidad deseada.
1. La generaci¶on de estad¶³sticas simuladas
La generaci¶on de estad¶³sticas simuladas, o sea de valores de las variables aleatorias, tienen una
naturaleza enteramente num¶erica y deben con¯gurarse mediante la aportaci¶on de n¶umeros aleatorios.
Estos n¶umeros se introducen al proceso o sistema bajo estudio (en donde el sistema se representa por
un modelo probabil¶³stico) a ¯n de obtener ciertas cifras (o valores de las variables aleatorias) de las
cuales se obtengan las respuestas. Como regla general, el proceso de simulaci¶on estoc¶astica comprende
una actividad de reemplazo del universo estad¶³stico de elementos que se emplean en el sistema por su
contraparte te¶orica, un universo descrito por una distribuci¶on probabil¶³stica supuesta (por ejemplo,
una distribuci¶on normal), seguido de un muestreo efectuado sobre esta poblaci¶on te¶orica, con la ayuda
de cierto tipo de generador de n¶umeros aleatorios.
Sin embargo, en algunos casos es posible que sea dif¶³cil encontrar una distribuci¶on te¶orica conven-
cional que describa un proceso estoc¶astico particular o alguno de los componentes de dicho proceso.
En estos casos, el proceso estoc¶astico se puede reproducir (o si se quiere simular) tan s¶olo mediante
un muestreo aplicado sobre las distribuciones emp¶³ricas en lugar de considerar algunas de las distribu-
ciones te¶oricas conocidas. Resulta aconsejable el empleo, en primer lugar, de las distribuciones te¶oricas
convencionales y si ninguna de ellas describe adecuadamente el comportamiento del proceso, entonces
deberemos, necesariamente, recurrir a distribuciones emp¶³ricas.
La primera meta de este cap¶³tulo, es proveer un conjunto de t¶ecnicas espec¶³¯cas para generar (con
una computadora) valores de variables aleatorias a partir de las distribuciones de probabilidad m¶as
conocidas, as¶³ como tambi¶en de ciertos m¶etodos generales para generar los citados valores tomados
como base cualquier distribuci¶on emp¶³rica que probablemente se con¯gure al intentar la soluci¶on de
problemas estoc¶asticos.
Al considerar los procesos estoc¶asticos que involucran variables continuas o discretas, pero siempre
de tipo aleatorio, de¯nimos una funci¶on FX (x) llamada funci¶on de distribuci¶on acumulada de x, la cual
denota la probabilidad de que una variable aleatoria X tome un valor menor o igual a x. Si la variable
aleatoria es discreta, entonces x tendr¶a valores espec¶³¯cos y FX (x) ser¶a una funci¶on escalonada. Si
FX (x) es continua en el dominio de x, entonces esta funci¶on es podr¶a diferenciar, para lo cual se de¯ne
fX (x) = d FX (x) =dx. La derivada fX (x) recibe el nombre de funci¶on de densidad de probabilidad.
La funci¶on de distribuci¶on acumulada se puede proponer matem¶aticamente como sigue:
FX (x) = P (X · x) =
Z x
¡1
fX (t) dt (1)
donde FX (x) se de¯ne en el intervalo 0 · FX (x) · 1 y fX (t) representa el valor de la funci¶on de
densidad de probabilidad de la variable aleatoria X cuando X = t.
Los valores de tales variables uniformemente distribuidas en el intervalo (0; 1) juegan un papel muy
importante en la generaci¶on de los valores de variables aleatorias, obtenidas a partir de otros tipos de
distribuci¶on de probabilidad.
Se tienen tres m¶etodos b¶asicos para generar los valores de variables aleatorias a partir de las
distribuciones de probabilidad: el m¶etodo de la transformada inversa, el de rechazo y el de composici¶on.
Estos m¶etodos o alguna de sus variantes respectivas, proporcionan la base general para simular la
mayor¶³a de las distribuciones.
2. El m¶etodo de la transformada inversa
El m¶etodo de la transformada inversa, es el m¶etodo m¶as utilizado en la obtenci¶on de variables
aleatorias para experimentos de simulaci¶on. Para aplicar ¶este m¶etodo suponga que queremos generar
el valor de una variable aleatoria discreta X con funci¶on de masa de probabilidad:
P (X = xj ) = pj
; j = 0; 1; : : : ;
X
j
pj = 1 (2)
Para esto, generamos un n¶umero aleatorio R; es decir, R est¶a distribuido uniformemente en (0; 1),
y sea:
X =
8
<
:
x0 , si R < p0
x1 , si p0 · R < p0 + p1
.
.
.
xj
, si
Pj¡1
i=1
pj · R <
Pj
i=1
pj
.
.
.
(3)
Como P (a · U < b) = b ¡ a para 0 < a < b < 1, tenemos que:
P (X = xj ) = P
Ã
Xj¡1
i=1
pi · R <
Xj
i=1
pi
!
= pj (4)
y entonces X tiene la distribuci¶on deseada.
Para este m¶etodo se pueden realizar ciertas observaciones, por ejemplo, podemos escribir lo anterior
es forma algor¶³tmica.
Algoritmo 2.1 M¶etodo de la transformada inversa para variables aleatorias discretas.
1. Generar un n¶umero aleatorio R.
2. Si R < p0 hacer X = x0 y terminar.
3. Si R < p0 + p1 hacer X = x1 y terminar.
4. Si R <
Pj
i=1
pj hacer X = xj y terminar.
Si los xi
, i ¸ 0, est¶an ordenados de modo que x0 < x1 < x2 < : : : y si F denota la funci¶on de
distribuci¶on de X, entonces FX (xk) =
Pk
i=0
pi y:
X ser¶a igual a xj
, si FX (xj¡1) · R < FX (xj )
En otras palabras, despu¶es de generar un n¶umero aleatorio R determinamos el valor de X hallando
el intervalo (FX (xj¡1) ; FX (xj )) en el que est¶a R (o, de forma equivalente hallando la inversa de
FX (R)). Es por esta raz¶on que el anterior se llama m¶etodo de la transformada inversa discreta para
generar X.
Ejemplo 2.1 Si queremos simular una variable aleatoria X tal que
fX (x) = P (X = x) =
8
<
:
0;20 , si x = 1
0;15 , si x = 2
0;25 , si x = 3
0;40 , si x = 4
entonces si obtenemos la funci¶on de distribuci¶on, tenemos:
FX (x) = P (X < x) =
8
<
:
0;20 , si x · 1
0;35 , si 1 < x · 2
0;60 , si 2 < x · 3
1;00 , si x > 4
Finalmente, las variables aleatorias X se obtienen a trav¶es de:
X =
8
<
:
1 , si R < 0;20
2 , si 0;20 · R < 0;35
3 , si 0;35 · R < 0;60
4 , si 0;60 · R < 1
¥
Ahora consideremos si la variable que se desea generar es una variable aleatoria continua con
funci¶on de distribuci¶on F . El m¶etodo de la transformada inversa para variables continuas, se basa en
la siguiente proposici¶on.
Proposici¶on 2.1 Sea R una variable aleatoria uniforme en (0; 1). Para cualquier funci¶on de dis-
tribuci¶on continua F , invertible, la variable aleatoria X de¯nida como:
X = F
¡1
X (r)
tiene distribuci¶on F . (F
¡1
X se de¯ne como el valor de x tal que FX (x) = r)
La proposici¶on anterior muestra entonces que para generar una variable aleatoria X a partir de
la funci¶on de distribuci¶on continua F , generamos un n¶umero aleatorio R y hacemos entonces X =
F
¡1
X (R).
Ejemplo 2.2 Distribuci¶on triangular. Suponga que queremos generar una variable aleatoria X con
funci¶on continua de probabilidad:
fX (x) =
8
<
:
1 + x , si ¡ 1 · x < 0
1 ¡ x , si 0 · x · 1
Si obtenemos FX (r), tenemos:
FX (x) = P (X < x) =
8
<
:
0 , si x < ¡1
(1+x)
2
2
, si ¡ 1 · x < 0
1 ¡
(1¡x)
2
2
, si 0 · x < 1
1 , si x ¸ 1
Ahora calculando la funci¶on inversa de la funci¶on de distribuci¶on acumulada, tenemos que:
X =
8
<
:
p
2r ¡ 1 , si 0 · r ·
1
2
1 ¡
p
2 ¡ 2r , si
1
2 < r · 1
Por lo tanto, para generar la variable aleatoria X podemos utilizar el siguiente algoritmo.
Algoritmo 2.2 Generaci¶on de variables aleatorias con distribuci¶on triangular.
1. Obtener un numero aleatorio R uniformemente distribuido en (0; 1).
2. Si R ·
1
2
, hacer X =
p
2r ¡ 1. En caso contrario hacer X = 1 ¡
p
2 ¡ 2r.
3. Repetir los pasos 1 y 2, tantas veces como variables aleatorias se desean generar.
Utilizando el algoritmo anterior generamos una muestra aleatoria de tama~no n = 10000, y obteniendo
el histograma con el respectivo ajuste de los datos tenemos (ver ¯gura 1).
1.0
X
Density
Figura 1: Histograma de los datos generados con el algoritmo para obtener variables aleatoria trian-
gular.
¥
Desafortunadamente, para muchas de las distribuciones de probabilidad, resulta imposible o ex-
tremadamente dif¶³cil expresar a x en terminos de la transformaci¶on inversa. Cuando es ¶este el caso, el
¶unico recurso de que se dispone, consiste en obtener una aproximaci¶on num¶erica para la transformaci¶on
inversa, o bien recurrir a alguno de los siguientes dos m¶etodos.
3. El m¶etodo de rechazo
Otro procedimiento para generar valores de variables aleatorias de distribuciones de probabilidad
no uniformes, es el m¶etodo de rechazo. Este m¶etodo consiste primeramente en generar un valor de
la variable aleatoria y en seguida probar que dicho valor simulado proviene de la distribuci¶on de
probabilidad que se est¶a analizando. Para comprender la l¶ogica de este m¶etodo, suponga que f (x)
es una distribuci¶on de probabilidad acotada y con rango ¯nito, es decir, a · x · b. De acuerdo a
esta funci¶on de probabilidad, la aplicaci¶on del m¶etodo de rechazo implica el desarrollo del siguiente
algoritmo:
Algoritmo 3.1 M¶etodo de rechazo.
1. Normalizar el rango de f mediante un factor de escala c tal que:
cf (x) · 1; a · x · b
2. Generar dos n¶umeros uniformes R1 y R2.
3. Determinar el valor de la variable aleatoria x de acuerdo a la siguiente relaci¶on l¶³neal de R1:
x = a + (b ¡ a) R1
4. Evaluar la funci¶on de probabilidad en x = a + (b ¡ a) R1.
5. Determinar si la siguiente desigualdad se cumple:
R2 · cf (a + (b ¡ a) R1)
Se utiliza a x = a + (b ¡ a) R1 si la respuesta es a¯rmativa como un valor simulado de la variable
aleatoria. De lo contrario, es necesario regresar al paso 1 tantas veces como sea necesario.
La teor¶³a sobre la que se apoya este m¶etodo se basa en el hecho de que la probabilidad de que
R2 · cf (x) es exactamente cf (x). Por consiguiente , si un n¶umero es escogido al azar de acuerdo
a x = a + (b ¡ a) R1 y rechazado si R2 > cf (x), entonces la distribuci¶on de probabilidad de las
x
0
s aceptadas ser¶a exactamente f (x). Por otra parte, conviene se~nalar que si todas las x
0
s fueran
aceptadas, entonces x estar¶³a uniformemente distribuida entre a y b.
Finalmente, es necesario mencionar que algunos autores como Tocher, han demostrado que el
n¶umero esperado de intentos para que x sea aceptada como una variable aleatoria que sigue una
distribuci¶on de probabilidad f (x), es 1=c. Esto signi¯ca que este m¶etodo podr¶³a ser un tanto ine¯ciente
para ciertas distribuciones de probabilidad en las cuales la moda sea grande.
Ejemplo 3.1 Distribuci¶on parab¶olica. Se desea generar valores de variables aleatorias que sigan la
siguiente distribuci¶on de probabilidad:
fX (x) =
3
4
¡
1 ¡ x
2
¢
, si ¡ 1 · x · 1
Entonces a = ¡1, b = 1 implica que x = 2R ¡ 1, pero fX (x) esta de¯nida en el intervalo 0 · fX (x) ·
3
4
, si se normaliza haciendo c =
4
3
, se transformar¶a a fX (x) al intervalo unitario. Ahora, para generar
valores de variables aleatoria con distribuci¶on de probabilidad fX (x), tenemos que aplicar el siguiente
algoritmo:
Algoritmo 3.2 Generaci¶on de variables aleatorias con distribuci¶on parab¶olica.
1. Generar dos n¶umeros aleatorios R1 y R2.
2. Calcular x = 2R1 ¡ 1.
3. Si R2 ·
4
3
f (2R1 ¡ 1). Si la respuesta es a¯rmativa, entonces x = 2R1 ¡ 1 es un valor simulado
de la variable aleatoria. De lo contrario, se requiere regresar al paso 1 tantas veces como sea
necesario.
Utilizando el algoritmo anterior generamos una muestra aleatoria de tama~no n = 10000, y obteniendo
el histograma con el respectivo ajuste de los datos tenemos (ver ¯gura 2).
-1.0 -0.5 0.0 0.5 1.0
0.0 0.2 0.4 0.6 0.8
X
Density
Figura 2: Histograma de los datos generados con el algoritmo para obtener variables aleatoria parab¶oli-
cas.