You are on page 1of 11

GENERACION DE VARIABLES ALEATORIAS

Hay una variedad de mtodos para generar variables aleatorias. Cada mtodo se aplica solo a un
subconjunto de distribuciones y para una distribucin en particular un mtodo puede ser ms eficiente que
otro.
I. TRANSFORMACIN INVERSA
Si la variable aleatoria X tiene una FDA F(x), entonces la variable u = F(x) est distribuida
uniformemente entre 0 y 1. Por lo tanto, X se puede obtener generando nmeros uniformes y calculando x =
F-1 (u).

1.0
FDA
F(x)

Prueba:
Sea u = g(x) tal que x = g-1 (u):

FU ( u) P(U u) P( X g 1 ( u)) FX ( g 1 ( u))


Seleccionemos g( ) de forma que g(x) = FX (x), o u = FX (x), y que u sea una variable aleatoria
entre 0 y 1 con distribucin dada por

FU ( u) FX ( g 1 ( u)) FX ( FX1 ( u)) u


y

f ( u) dF du 1
o sea que u est distribuida uniformemente entre 0 y 1.

Prof. Herbert Hoeger

Simulacin

VI-1

Este mtodo nos permite generar variables aleatorias siempre que se pueda determinar F-1 (x)
analticamente o empricamente.
Ejemplo (determinacin analtica):
Sea X exponencial con f(x) = e-x . La FDA es F(x) = 1 - e-x = u o x

ln(1 u) . Si u es

uniforme entre 0 y 1, entonces 1-u tambin est distribuida uniformemente entre 0 y 1. Por lo
tanto podemos generar variables aleatorias exponenciales generando u y despus calculando
x

ln( u) .

Ejemplo (determinacin emprica):


El tamao de los paquetes en una red fueron medidos y encontrados trimodales con las siguientes
probabilidades:
Tamao (bytes)

Probabilidad

64

0.7

128

0.1

512

0.2

La FDA viene dada por:

0.0 0 x 64
0.7 64 x 128

F ( x)
0.8 128 x 512
1.0 512 x
y la inversa est dada por:
64 0 u 0.7

F ( u) 128 0.7 u 0.8


512 0.8 u 1

Prof. Herbert Hoeger

Simulacin

VI-2

1
0.9
0.8
0.7
0.6
f(x) 0.5
0.4
0.3
0.2
0.1
0

1
0.9
0.8
0.7
0.6
F(x) 0.5
0.4
0.3
0.2
0.1
0
0

64 128 192 256 320 384 448 512 576

64 128 192 256 320 384 448 512 576

II. MTODO DEL RECHAZO

Esta tcnica se puede usar si existe otra funcin de densidad g(x) tal que cg(x) supera la funcin de
densidad f(x), es decir, cg(x) > f(x) para todos los valores de x. Si esta funcin existe, entonces se pueden
aplicar los siguientes pasos:
1. Genere x con la densidad g(x).
2. Genere y uniforme en [0, cg(x)].
3. Si y f (x), devuelva x y retorne. De lo contrario repita desde el paso 1.
El algoritmo permanece rechazando las variables x y y hasta que la condicin y f (x) sea satisfecha.
Ejemplo:

Consideremos la funcin de densidad beta(2,4):

f ( x ) 20x (1 x ) 3

0 x1

3.2

2.4

f(x) 1.6

Rechace

Beta (2,4)
0.8

Acepte
0
0

0.25

0.5

0.75

Esta funcin se muestra en la figura y puede ser limitada por el rectngulo de altura 2,11. Por lo
tanto podemos usar c = 2,11 y g(x) = 1 para 0 x 1. La variables beta (2,4) pueden ser
generadas como sigue:
Prof. Herbert Hoeger

Simulacin

VI-3

1. Genere x uniforme en [0, 1].


2. Genere y uniforme en [0, 2,11].
3. Si y 20x(1-x)3 , devuelva x y retorne. De lo contrario vuelva al paso 1.
Los pasos 1 y 2 generan un punto (x, y) distribuido uniformemente en el rectngulo en la figura.
Si el punto cae sobre la densidad f (x), entonces el paso 3 rechaza x.
La eficiencia del mtodo depende de que tan bien g(x) limita a f (x). Si hay una brecha muy grande entre
cg(x) y f (x), entonces un gran nmero de puntos generados en los pasos 1 y 2 sern rechazados.
Similarmente, si la generacin de variables aleatorias con g(x) es compleja, entonces el mtodo puede ser
ineficiente.
III. COMPOSICIN

Este mtodo se puede usar si la FDA F(x) deseada se puede expresar como una suma ponderada de otras n
FDA F1 (x), ..., Fn (x):
F ( x)

pi Fi ( x)

pi 0,

i 1

i =1

El nmero de funciones n puede ser finito o infinito, y las n FDA son compuestas para formar la FDA
deseada; de aqu el nombre de la tcnica. Esto tambin se puede ver como que la FDA deseada es
descompuesta en otras n FDA; por esto la tcnica a veces es llamada descomposicin.
La tcnica tambin se puede usar si la funcin de densidad f (x) puede ser descompuesta como una suma
ponderada de otras n densidades:
f ( x)

pi f i ( x)

pi 0,

i 1

i =1

En cualquier caso, los pasos a seguir so:


1. Genere un entero aleatorio I tal que P(I = i ) = pi . Esto puede ser hecho con el mtodo de
transformacin inversa.
2. Genere x con la i-esima densidad fi (x) y retorne.
Ejemplo:

Consideremos la densidad de Laplace dada por


f ( x)

1 xa
e
2a

- < x <

La siguiente figura muestra la densidad para a = 2.

Prof. Herbert Hoeger

Simulacin

VI-4

0.4

0.3

f(x) 0.2

0.1

0
-2

-1

Esta densidad es una composicin de dos densidades exponenciales. La probabilidad de que x sea
positiva es 1/2, y de que sea negativa tambin es 1/2. Usando la tcnica de composicin podemos
generar variables de Laplace de la siguiente forma:
1. Genere u1 U(0,1), y u2 U(0,1).
2. Si u1 < 0.5, retorne x = -a ln u2 , de lo contrario retorne x = a ln u2.
Es de hacer notar que estas variables se pueden generar ms eficientemente usando la tcnica de
transformacin inversa.

IV. CONVOLUCIN

Esta tcnica puede ser usada si la variable aleatoria x puede ser expresada como la suma de n variables
aleatorias y1 , ..., yn que puedan ser generadas fcilmente:
x y1 y2 ... yn

En este caso x se puede generar generando n variables aleatorias y1 , ..., yn y sumndolas. Si x es la suma
de dos variables aleatorias y1 y y2 , entonces la densidad de x puede ser obtenida analticamente por la
convolucin de las densidades de y1 y y2 ; de aqu el nombre de la tcnica a pesar de que la convolucin no
es necesaria para la generacin de nmeros aleatorios.
Ntese la diferencia entre composicin y convolucin. La primera se usa cuando la densidad o FDA
puede ser expresada como la suma de otras densidades o FDA. La segunda se usa cuando la variable misma
puede ser expresada como la suma de otras variables.
A continuacin se dan unos ejemplos de aplicacin de esta tcnica:
Una variable Erlang-k es la suma de k exponenciales.
Una variable Binomial de parmetros n y p es la suma de n variable Bernulli con probabilidad de
xito p.
La chi-cuadrado con v grados de libertad es la suma de cuadrados de v normales N(0,1).

Prof. Herbert Hoeger

Simulacin

VI-5

La suma de un gran nmero de variables de determinada distribucin tiene una distribucin


normal. Este hecho es usado para generar variables normales a partir de la suma de nmeros
U(0,1) adecuados.
Una variable Pascal es la suma de m geomtricas.
La suma de dos uniformes tiene una densidad triangular.

V. CARACTERIZACIN

Caractersticas especiales de ciertas distribuciones permiten generar sus variables usando algoritmos
especialmente ajustados para ellas. Todos estos algoritmos estn clasificados bajo una tcnica llamada
caracterizacin.
Ejemplos de variables generadas usando caracterizacin son:
Si los tiempos entre llegadas son exponenciales con media 1/, el nmero de llegadas n en cierto
intervalo T es Poisson con parmetro T. Por lo tanto una Poisson puede ser obtenida generando
exponenciales hasta que su suma supere T y devolviendo el nmero de exponenciales usadas.
El a-esimo menor nmero en una secuencia de a + b + 1 variables U(0,1) tiene distribucin beta(a
, b ).
La razn de dos normales estndar en Cauchy(0,1).
Una chi-cuadrado con un nmero par de grados de libertad 2(v) es un gamma (2,v/2).
Si x1 y x2 son dos gammas (a , b ) y (a , c ) respectivamente, la razn x1 / (x1 + x2 ) es beta(b,c).

Distribucin Normal

Considere dos distribuciones normales estndar Z1 y Z2 graficadas en el plano tal como se muestra en la
figura:

siendo su representacin en coordenadas polares la siguiente:

Prof. Herbert Hoeger

Simulacin

VI-6

Z1 B cos
Z 2 Bsen
Es sabido que B 2 Z12 Z 22 tiene distribucin chi-cuadrado con 2 grados de libertad que es equivalente a
una distribucin exponencial con media 2:
x ( 2 2) / 2e x / 2
f ( x) 2 / 2
2 (2 / 2)

1 x2
e
x0
2

por lo tanto el radio B lo podemos generar por transformacin inversa usando

B 2 2 ln(u ) o B 2 ln(u )
Por simetra de la distribucin normal, es razonable suponer que el ngulo est distribuido
uniformemente entre 0 y 2. Igualmente se puede considerar que el radio B y el ngulo son independientes.
Con esto podemos generar dos variables aleatorias normales estndar independientes Z1 y Z2 a partir de dos
nmeros uniformes u1 y u2 (ntese que si u es uniforme entre 0 y 1, entonces 2u es uniforme entre 0 y 2):
Z1 2 ln(u1 ) cos( 2u 2 )
Z 2 2 ln(u1 ) sen(2u 2 )

y para obtener normales con parmetros ( 1 , 12 ) y ( 2 , 22 ) usamos las transformaciones:

X 1 1 1Z1
X 2 2 2Z2
Por ejemplo, asumamos que queremos generar dos variables aleatorias normales independientes con
parmetros (8,4) y que nuestro generador de nmeros aleatorios nos proporciona u1 = 0.2375 y u2 = 0.8561.
Aplicando las ecuaciones anteriores nos da:

Z 1 2 ln(0.2375) cos(2 0.8561) 1.0485


Z 2 2 ln(0.2375) sen(2 0.8561) 1.3326
X 1 8 4(1.0485) 12.1940
X 2 8 4(1.3326) 2.6696

Prof. Herbert Hoeger

Simulacin

VI-7

A continuacin se presenta un diagrama de flujo que ayuda a decidir cul de las tcnicas anteriores se
debe usar:

Es la FDA
invertible?

Si

Use inversin

No

Es la FDA una
suma de FDA?

Si

Use composicin

No

Es la densidad una
suma de densidades?

Si

Use composicin

No

Es la variable una
suma de variables?

Si

Use convolucin

No

Esta la variable
relacionada a otras
variables?

Si

Use caracterizacin

No

Existe una
funcin limitante?

Si

Use rechazo

No
Use inversin emprica

Prof. Herbert Hoeger

Simulacin

VI-8

VI. BOOTSTRAP

El bootstrap es un mtodo estadstico creado para facilitar los clculos que no se pueden hacer con
frmulas simples (por medio de las tcnicas estadsticas clsicas) teniendo como herramienta importante la
ayuda del computador.
Este mtodo consiste bsicamente en sustituir la distribucin terica por la muestral y estudiar las
propiedades del estimador remuestreando de esa nueva poblacin en las mismas condiciones en que se
obtuvo la muestra original. Se basa en el muestreo de muestras.
El mtodo bootstrap trabaja como sigue:
1. Se tiene un conjunto de muestra aleatoria (el cual se trabaja con reemplazo) de tamao n, en donde
x {x1 , x 2 ,..., x n } son los valores observados de dicha muestra.
2. Se crea una nueva muestra del mismo tamao muestreando aleatoriamente n veces con reemplazo de
la muestra original {x1 , x 2 ,..., x n } , donde la probabilidad de escoger cualquier punto de los datos es
1/ n .
3. Luego se calcula el estadstico de inters para cada una de las muestras bootstrap, a partir de la
remuestra obtenida, dando as * . (donde b 1,2,..., B ).
b
4. Se repiten los puntos 2 y 3 B veces, donde B es un nmero grande que representa la cantidad de
remuestras hechas. La magnitud de B en la prctica depende de las pruebas que se van aplicar a los
datos. En general, B debera ser de entre 50 a 200 para estimar el error estndar de , y al menos de
1000 para estimar intervalos de confianza en un punto o alrededor de .
1 n
Por ejemplo, supongamos que es la media o xi , que es el estimador de la media poblacional .Si
n i 1

remuestreamos B veces, cada una es una muestras de tamao n con reemplazo de la muestra original,
obtenemos * * que son las medias de cada demuestra. La distribucin emprica de los * estima la
b
1
B
distribucin de y a partir de esta podemos calcular, por ejemplo, intervalos de confianza para la media.
Mtodo bootstrap para Generar Variables Aleatorias

En este caso usamos la muestra {x1 , x 2 ,..., x n } para generar una variable aleatoria que siga la distribucin
de la misma. Consideremos dos caso, cuando la variable es discreta y cuando es continua.
Caso variables aleatorias discretas
Suponga un cruce en donde los carros tienen la opcin de cruzar a la derecha (D), cruzar a la izquierda (I)
o seguir recto (R), tal como se muestra en el diagrama a continuacin:

Prof. Herbert Hoeger

Simulacin

VI-9

Cruzar a la Izquierda (I)

Seguir Recto (R)

Cruzar a la Derecha (D)

Supongamos que observamos el cruce y obtenemos una muestra:

{x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 } {I , R, R, I , D, R, D, R, I , R}
Analizando la muestra tenemos 3 I, 5 R, y 2 D. Es decir, si la muestra es representativa, la densidad
aproximada de la direccin que puede tomar un carro es:

0.3 si

f ( x) 0.5 si
0.2 si

xI
xR
xD

y para generar la direccin que tomar el carro por mtodos clsicos podemos usar la inversa emprica:

I 0 u 0.3

F (u ) R 0.3 u 0.8
D 0.8 u 1

con u ~ unif (0,1)

Ahora, si no analizamos la muestra (no determinamos f(x)) y simplemente generamos un valor uniforme i
entre 1 y 10, y devolvemos xi, la densidad del valor devuelto (xi) sigue precisamente f(x), es decir, ser I con
probabilidad 0.3, R con probabilidad 0.5 y D con probabilidad 0.2. Esta es la base del mtodo bootstrap, y en
resume el mtodo se reduce a:
1. Genere i uniforme entre 1 y n (el tamao de la muestra).
2. Devuelva X = xi como el valor de la varaible aleatoria requerida.
Debe ser obvio, que si la muestra es representativa, los valores de xi generados siguen la densidad
correcta.
Caso variables aleatorias continuas
Supongamos que observamos la estatura de una poblacin y obtenemos la siguiente muestra:

{x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10} {1.78, 1.63, 1.82, 1.72, 1.60, 1.67, 1.77, 1.81, 1.73, 1.59}

Prof. Herbert Hoeger

Simulacin

VI-10

Los pasos que se describieron anteriormente se pueden utilizar cuando lidiamos con distribuciones
discretas, pero para el caso de variables aleatorias continuas, este procedimiento no el ms adecuado debido
a que solo se podran generar los puntos que se encuentran en la muestra original (para el ejemplo, solo
habra 10 valores posibles). Si aplicamos el mtodo anterior para generar estaturas, queda claro que jams se
podr generar valores intermedios o ms all del mnimo y mximo de la muestra. Es decir, nunca se podr
generar, por ejemplo, un 1.64, o un 1.57, o un 1.87. Esto causa inquietud.
Para generar variables aleatorias continuas usando la tcnica bootstrap se agrega un "ruido" al valor
muestreado de la muestra:
X xi ruido
Esto nos permite generar valores fuera de los que estn explcitamente en la muestra. La ecuacin seria:
X xi hK (u )
donde h se denomina parmetro suavizador, y K(u) el kernel, que es la distribucin del ruido aleatorio y
debe ser simtrico alrededor de cero.
Algoritmo:

Entrada: una muestra aleatoria {x1 , x 2 ,..., x n }


Salida: una variable aleatoria continua que sigue la distribucin de los datos mustrales
1. Escoger el parmetro suavizador h
Para calcular el h se plantea la siguiente frmula: h (k )1.364

n1 / 5
donde la constante (k ) es 0.776 para un kernel Gaussiano (Normal), denota la desviacin

estndar de la muestra y n su tamao. La formula queda descrita por: h = 1.06 1 / 5


n
2. Generar i (entero) uniforme en [1,n]

3. Generar W segn la distribucin kernel K (u )


En este caso, la eleccin es una de las funciones kernel ms conocidas, la Normal(0,1):
1 x2 / 2
f ( x)
e
x
2

4. Devolver X xi hW o X xi 1.06 1 Normal (0,1)


n 5

Cuando los datos no siguen una distribucin conocida no es posible generarla por mtodos clsicos. En
este caso bootstrap se vuelve particularmente til para generar este tipo de variables. Recuerde que boostrap
no requiere analizar la muestra para descubrir que distribucin se podra atribuir a los datos, usa la muestra
directamente.

Prof. Herbert Hoeger

Simulacin

VI-11