Está en la página 1de 10

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) esta 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) u

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 esta 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):
ln(1 u) . Si u es uniforme entre 0 y 1, entonces 1-u tambin esta distribuida uniformemente entre 0 y 1. Por lo tanto podemos generar variables aleatorias exponenciales generando u y despus calculando

Sea X exponencial con f(x) = e-x . La FDA es F(x) = 1 - e-x = u o x =

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) 64 128 512 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

Probabilidad 0.7 0.1 0.2

y la inversa esta dada por:


64 0 < u 0.7 F ( u) = 128 0.7 < u 0.8 512 0.8 < u 1
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 0 64 128 192 256 320 384 448 512 576 x

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 x

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
3.2

0 x1

2.4

f(x) 1.6

Beta (2,4)
0.8

Rechace

Acepte
0 0 0.25 0.5 x 0.75 1

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)
i =1

pi 0,

p
i =1

=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)
i =1

pi 0,

p
i =1

=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 0 x 1 2

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 mas 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 se 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
2 Es sabido que B 2 = Z12 + Z 2 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 esta 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 )
2 y para obtener normales con parmetros ( 1 , 12 ) y ( 2 , 2 ) 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 cual 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 densida 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 caracterizacion

No

Existe una funcin limitante?

Si

Use rechazo

No
Use inversin empirica

Prof. Herbert Hoeger

Simulacin

VI-8

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. El mtodo Bootstrap trabaja como sigue: Se tiene un conjunto de muestra aleatoria (el cual se trabaja con reemplazo) de tamao n, en donde x = ( x1 , x2 ,..., xn ) son los valores observados de dicha muestra. Se crea una nueva muestra del mismo tamao muestreando aleatoriamente n veces con reemplazo de la muestra original ( x1 , x2 ,..., xn ), donde la probabilidad de escoger cualquier punto de los datos es

1/ n . 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
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 1 b B y a partir de esta podemos calcular, por ejemplo, intervalos de confianza para la media. distribucin de Mtodo Bootstrap para Generar Variables Aleatorias Continuas Este mecanismo es particularmente til cuando los datos no siguen una distribucin conocida o cuando simplemente no se quiere hacer el analisi para establecer si estos se ajustan a una distribucin particular. Para generar variables aleatorias continuas usando la tcnica Bootstrap se deben seguir los pasos que se presentan en el siguiente algoritmo:

Algoritmo: Entrada: una muestra aleatoria x1 , x2 ,..., xn Salida: una variable aleatoria continua que sigue la distribucin de los datos muestrales Prof. Herbert Hoeger Simulacin VI-9

1: escoger el parmetro suavizador h Para calcular el h se plantea la siguiente formula: h = (k )1.364 1 / 5 n donde la constante (k ) es 0.776 para un kernel Gaussiano, denota la desviacin estndar y n es el tamao de la muestra. La formula queda descrita por: h = 1.06 1 / 5 n 2: generar un entero aleatorio i uniforme en [1,n], (i = 1,..., n) 3: generar una variable aleatoria W de la distribucin kernel K (u ) El W que se presenta es la densidad de la distribucin de ruido aleatoria y es llamada Kernel. Esta debe ser una funcin de densidad y siempre se asume que es simtrica alrededor de cero. Para la eleccin de esta funcin de densidad se va a utilizar una de las funciones kernel ms conocidas: la Normal de parmetros (0,1): 1 x2 / 2 Normal e 2 4: devolver boot = xi + hW boot = xi + hNormal (0,1) La Normal(0,1) se genera usando por ejemplo el mtodo descrito anteriormente (hay otras formas de generarla como se ver en las prximas notas: Distribuciones Comnmente Utilizadas).

Prof. Herbert Hoeger

Simulacin

VI-10

También podría gustarte