Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Generación de Variables Aleatorias
Generación de Variables Aleatorias
5.1.- Introduccin
Buscamos mtodos que nos permitan obtener valores de variables aleatorias que sigan
determinadas distribuciones de probabilidad a partir de los nmeros aleatorios generados, que siguen
la distribucin Uniforme en el intervalo (0,1).
Hay cuatro mtodos generales de generacin de variables aleatorias y una serie de mtodos
particulares de las distintas distribuciones.
La facilidad de aplicacin de dichos mtodos, as como el coste computacional asociado a los
mismos, vara mucho segn la familia de variables aleatorias a las que se apliquen.
Normalmente existen varios algoritmos que se pueden utilizar para generar valores de una
determinada distribucin, y diferentes factores que se pueden considerar para determinar qu
algoritmo utilizar en un caso particular. Desafortunadamente dichos factores suelen entrar en conflicto
unos con otros y a veces se ha de llegar a una solucin de compromiso.
Algunos de estos factores son los siguientes:
Exactitud: se han de obtener valores de una variable con una precisin dada. A veces
se tiene suficiente con obtener una aproximacin y otras no.
0 F(x) 1 x.
lim F ( x) = 1 y
x
lim F ( x ) = 0
Una variable aleatoria X se dice que es discreta si puede tomar unos valores determinados, no
pudiendo tomar ningn valor comprendido entre dos consecutivos. As la variable slo puede tomar un
conjunto finito de valores x1 , x2, ..., xn . La probabilidad de que la variable aleatoria X tome el valor xi
es dado por:
p( x ) = 1
i
i =1
donde la sumatoria significa la suma de todas las probabilidades p(x 1 ), p(x2 ),... Todas las
probabilidades acerca de X se pueden calcular desde p(x), a la cual se le llama funcin de probabilidad
para la variable discreta X. Si I=[a,b], donde a y b son nmeros reales tales que ab, entonces
78
P( X I ) =
p( x )
a xi b
F ( x) =
p (x )
xi x
< x<
F(x)
u
xi x
Al ser discreta no hay frmula de su inversa y puede ocurrir que dado un u no se encuentre
imagen x de la funcin, sino que este valor est entre dos valores posibles.
79
F(x)
x
Lo que se va a hacer en este caso es que dado un u se va obtener como salida un xj tal que
j 1
p
i =1
Generar u U(0,1)
SI u<p1
ENTONCES salida x1
SI NO
SI u<p1+p2
ENTONCES salida x2
.
Este mtodo es un mtodo sencillo de aplicar, siempre y cuando la funcin de distribucin no
tenga una frmula complicada y utiliza slo un nmero aleatorio para calcular un valor de la variable
aleatoria.
c = t ( x)dx
f ( x)dx = 1
pero la funcin r(x)=t(x)/c, si es claramente una funcin de densidad. (Suponemos que t es tal
que c<). Debemos de poder generar (esperamos que de forma fcil y rpida) un valor de la variable
aleatoria que sigue la funcin r(x). El algoritmo general queda como sigue:
80
f ( x)
, entonces devolver x si no volver a repetir el algoritmo
t (x )
Si u
funcin.
un
Cada uno de los fragmentos se puede expresara como producto de un funcin de distribucin y
peso t i ( x ) = f i ( x )wi y la funcin de distribucin global la podemos obtener
n
como f ( x ) = w1 f 1 ( x ) con
i =1
=1.
i =1
El mtodo consiste en generar dos nmeros aleatorios, uno sirve para seleccionar un trozo y el
otro se utiliza para generar un valor de una variable que sigue la distribucin de dicho trozo. El valor
de la variable obtenida es el valor buscado.
El algoritmo general queda como sigue:
Generar u 1,u2~U(0,1)
Si u1=w1 entonces generar x~f1(x)
Si no
Si u 1=w1+w2 entonces generar x~f2(x)
81
En este mtodo se necesita generar k nmeros aleatorios (u 1 ,u2 ,...,uk) para generar (x1,x2 ,...xk)
variables aleatorias usando alguno de los mtodos anteriores y as poder obtener un valor de la
variable que se desea obtener por convolucin.
Ejemplos de aplicacin de este mtodo los veremos cuando veamos mtodos particulares de
cada una de las distribuciones ms utilizadas.
si a x b
f ( x) = b a
0 en otro caso
0 si x < a
x a
F ( x) =
si a x b
b a
1 x>b
La media de la distribucin es ( x) =
a +b
(b a) 2
y la varianza 2 ( x) =
2
12
Como los nmeros aleatorios que generamos siguen la distribucin uniforme en el intervalo
(0,1), para generar valores de una distribucin uniforme en cualquier intervalo (a,b) slo tenemos que
hacer un cambio de intervalo:
Generar u (sigue U(0,1))
xa+(b-1)u
salida x
La distribucin uniforme es usada como modelo en primera aproximacin, para cantidades
aleatorias que vara entre a y b.
82
La variable aleatoria normal posee una funcin de densidad caracterizada por dos parmetros,
su media y su varianza ( y 2 respectivamente). La media mide la ubicacin de la distribucin y la
desviacin estndar mide su dispersin.
La distribucin Normal tiene como funcin de densidad la siguiente:
f ( x) =
1
2 2
1 x
< x < +
y
es una variable aleatoria normal con media 0 y varianza 1.
83
Convolucin:
Vamos a ver una serie de propiedades de la distribucin normal y un teorema que nos van a
servir para generar valores mediante este mtodo.
Propiedad: Si tenemos una variable X que sigue una N(,), entonces aX+b sigue una
N (a + b, a )
Teorema del Lmite Central : si X es una variable aleatoria con media y varianza 2 , entonces la
media X , para una muestra de tamao n (si n es lo suficientemente grande), sigue una distribucin
Normal de meida y varianza 2 /n.
n
X=
x
i =1
sigue N ( , / n )
1 x /
, x0
e
f (x ) =
0, en otro caso
1 e x / , x 0
F ( x) =
0, en otro caso
La media de la distribucin es , y su varianza 1/2.
84
La distribucin exponencial se usa para modelar intervalos de tiempo entre sucesos. Ejemplos
de procesos que han sido modelados mediante distribuciones exponenciales: la duracin de
conversaciones telefnicas, el tiempo entre fallos en ciertos elementos, tiempo entre interrupciones en
la CPU de un ordenador.
Es muy usada para simular el tiempo entre llegadas cuando las llegadas son completamente
aleatorias y para modelar tiempo de servicio, en los sistemas de colas. En estos casos es la
proporcin de llegadas o de servicios por unidad de tiempo.
Para obtener valores de esta distribucin se puede utilizar el mtodo de inversin.
x 1e x /
x>0
f ( x ) = ( )
0 en otro caso
donde ( ) =
x 1e x dx
Para generar valores de gamma con 0<<1 y >1 han sido propuestos varios algoritmos. Por
ejemplo Aherns y Deiter proponen un algoritmo basado en el mtodo de aceptacin-rechazo para
valores de <1; Tadikamalla presenta tambin una serie de mtodos para volores >1 y otros
algoritmos estn propuestos por Fishman o por Cheng y Feast.
x 1 1 (1 x) 2 1
0 < x <1
f ( x ) = ( 1 , 2 )
0 en otro caso
donde ( 1 , 2 ) =
Su media E ( x ) =
x
1
1 1
(1 x) 2 1 dx
1
1 2
y su varianza Var( x) =
1 + 2
( + )( + + 1)
1
2 1
2
Esta distribucin se usa a menudo para representar variables aleatorias que estn restringidas
al intervalo (0,1).
Se utiliza para generar entradas cuando no tenemos datos (por ejemplo el tiempo que tarda en
estropearse un aparato, el tiempo que tarda en suceder algo,...). Cuando en proyectos PERT se ha de
aproximar el tiempo que se le da a las distintas actividades, se usa esta distribucin. En general suele
usarse como modelo en primera aproximacin en ausencia de datos experimentales.
La funcin de densidad de esta variable puede adoptar una gran variedad de formas
dependiendo de los parmetros de la distribucin. Una de los ms comunes y simples mtodos de
generacin de valores de la distribucin beta es usar las relaciones que existen entre sta y la
distribucin gamma:
Si X1 es una gamma( 1 ,1) y X2 es una gamma( 2 ,1), entonces y = X 1 /( X 1 + X 2 )
es una
beta( 1 , 2 ).
Este algoritmo es fcil de implementar pero debido a que los mtodos de generacin de
gammas pueden ser ineficientes, se han desarrollado mtodos de generacin basados en el mtodo de
aceptacin-rechazo (Ahrens and Deiter).
Se puede observar que una distribucin U(0,1) y una beta(1,1) son la misma distribucin.
Una variable X que sigue una beta(1 , 2 ) en [0,1] puede reescalarse y desplazarse para
obtener una variable beta(1 , 2 ) en [a,b] con los mismos parmetros de forma mediante la
transformacin a+(b-a)X.
Si X sigue una beta( 1 , 2 ) en [0,1], entonces (1-X) sigue una beta( 2, 1 ) en [0,1].
86
x 1 1 (1 x) 0
f (x ) =
( 1 ,1)
f (x ) =
( 1 ,1) = x
1 1
x
1
(1 x) dx = = ,
0
0
entonces
x 1 1 (1 x) 0
= 1 x 1 1 . Su funcin de distribucin es
1
1
x
F ( x) = f (t ) dt = 1t
1
u = F ( x ) = x , entonces x = u
1 1
1
1
dt = 1 t
0
1 1
t 1
dt = 1 = x 1 .
1 0
Si
suponemos
que
X =
i =1
ln ui =
ln( u i )
m
m
i =1
Segn lo anterior, al estar los u i s en el intervalo (0,1), cuantos ms elementos haya para hacer
el producto ms pequeos son los valores que se van a obtener y el logaritmo va a conseguir valores
grandes negativos que se van a convertir en positivos al multiplicar por -/m. Por tanto cuanto mayor
es el nmero m de elementos vamos a obtener un valor ms alto como variable de salida y a la inversa.
Esto tiene sentido ya que cuanto mayor es el nmero m mayor debe dar el tiempo entre un suceso y ese
m-simo que es lo que mide la variable.
87
1 p si x = 0
Su distribucin de probabilidad es p ( x ) = p si x = 1
0 en otro caso
y su distribucin de
0 si x < 0
probabilidad acumulada F ( x) = 1 p si 0 x 1
1 si x 1
Su distribucin de probabilidad es p ( x ) = b a + 1
x {a, a + 1,..., b}
en otro caso
0 si x < a
x a + 1
Su distribucin de probabilidad acumulada es F ( x) =
si a x b
b a +1
1 si x > b
Los parmetros a y b son enteros siendo a el parmetro de posicin. Su media es
a +b
(b a + 1) 2 1
E (x ) =
y su varianza Var ( x ) =
.
12
2
Para generar valores de una variable que siga esta distribucin podemos utilizar el siguiente
algoritmo:
Generar u~U(0,1)
Dar como salida X a + ( b a + 1)u , donde x es el operador que trunca
si x {0,1,...}
y su distribucin de
0
en
otro
caso
p (1 p ) x
Su distribucin de probabilidad es p ( x ) =
1 (1 p ) x1 si x 0
probabilidad acumulada F ( x) =
0 en otro caso
La media de la distribucin es
E (x ) =
1 p
1 p
y su varianza Var ( x ) = 2
p
p
n x
p (1 p ) n x si x {0,1,2,..., n}
Su distribucin de probabilidad es p ( x ) = x
y su
0 en otro caso
0 si x < 0
x n
distribucin de probabilidad acumulada F ( x) = p i (1 p ) n i si 0 x n
i= 0 i
1 si x > n
La media de la distribucin es E ( x ) = np y su varianza Var ( x ) = np(1 p )
Se pueden obtener valores de una distribucin binomial(n,p) mediante los siguientes mtodos:
1) Si n es pequeo:
Mediante el mtodo de inversin de variables discretas
89
n
p j ( x = j ) = p j (1 p ) n j de forma que
j
Generar u~U(0,1)
Si u<p0 Entonces salida X=0
Si u<p0+p1 Entonces salida X=1
Si u<p0+p2+p3 Entonces salida X=2
...
Mediante convolucin de bernouilli
E0
PARA i=1 HASTA n
Genera u~U(0,1)
SI u<=p
ENTONCES EE+1
FIN_PARA
DEVOLVER E
2) Si n es grande, se pueden hacer aproximaciones de la binomial mediante otras
distibuciones:
Cuando p es pequeo se puede aproximar mediante una Poisson. Si p0 y n de forma tal
que la media =np permanece constante, entonces se puede aproximar una B(n,p) por una P().
Cuando p no es pequeo se puede aproximar mediante una Normal. Si X representa el nmero
de xitos en n experimentos independientes, donde p es la probabilidad de xito, entonces la
proporcin de xitos X/n sigue una distribucin aproximadamente normal con media =p y desviacin
tpica =
p (1 p )
, si n es lo suficientemente grande. Esto equivale a considerar que una B(n,p)
n
, n
2
1
Si NO x max x ,0
2
ENTONCES x min x +
DEVOLVER x
90
e x
si x {0,1,...} y su distribucin de
Su distribucin de probabilidad es p ( x ) = x!
0 en otro caso
0 si x < 0
i
probabilidad acumulada F ( x) = x
e
si x 0
i=0 i!
La media de la distribucin es E(x)= y su varianza Var(x)=.
Propiedades de la distribucin:
Si X1 ~P(1 ) y X2 ~P(2 ) entonces X1 +X2 ~P(1 +2 ).
El parmetro de la distribucin de Poisson, que es su media, es el inverso de la media de una
distribucin exponencial.
Formas de generar valores de una P():
1) Cuando n es pequeo:
Se puede utilizar el mtodo de inversin para variables discretas, sabiendo que
pi =
i
e
i!
i = 0,1,...
Generar u~U(0,1)
Y-ln(u) (con =1/)
tt+Y
SI t>T
ENTONCES finVERDAD
SI NO XX+1
FIN_MIENTRAS
DEVOLVER X
X es la variable que sigue una P(), en cada momento se va generando mediante una
exponencial Y el tiempo en el que ocurre el siguiente suceso. T es la cantidad de tiempo en la
que se quieren contar los sucesos ocurridos.
2) Cuando n es grande se puede aproximar una P() mediante una Normal de media y
varianza , N ( , ) ., se debe de aplicar un factor de correccin ya que se pasa de
un valor continuo de la distribucin Normal a aproximar un valor discreto de la
distribucin de Poisson.
92