Está en la página 1de 8

GENERACION DE VARIABLES ALEATORIAS

Hay una variedad de métodos para generar variables aleatorias. Cada método se aplica solo a un subconjunto de distribuciones y para una distribución en particular un método puede ser más eficiente que otro. I. TRANSFORMACIÓN 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 números uniformes y calculando x = F-1 (u).

1.0 FDA F(x) u

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

x

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 distribución dada por FU ( u) = FX ( g −1 ( u)) = FX ( FX−1 ( u)) = u y
f ( u) = dF du = 1

o sea que u esta distribuida uniformemente entre 0 y 1.

Prof. Herbert Hoeger

Simulación

VI-1

Este método nos permite generar variables aleatorias siempre que se pueda determinar F-1 (x) analíticamente o empíricamente.7  F ( u) = 128 0. Si u es uniforme entre 0 y 1. entonces 1-u también esta distribuida uniformemente entre 0 y 1.0 0 ≤ x < 64 0.7 < u ≤ 0.1 0. La FDA es F(x) = 1 .7 64 ≤ x < 128  F ( x) =   0.2  64 0 < u ≤ 0. λ Ejemplo (determinación empírica): El tamaño de los paquetes en una red fueron medidos y encontrados trimodales con las siguientes probabilidades: Tamaño (bytes) 64 128 512 La FDA viene dada por:  0.8 < u ≤ 1  −1 Prof.0 512 ≤ x  y la inversa esta dada por: Probabilidad 0.7 0. Por lo tanto podemos generar variables aleatorias exponenciales generando u y después calculando 1 x = − ln( u) . Herbert Hoeger Simulación VI-2 . Ejemplo (determinación analítica): Sea X exponencial con f(x) = λe-λx .8 128 ≤ x < 512 1.8 512 0.e-λx = u o x = − 1 λ ln(1 − u) .

8 0.25 0.1 0.9 0.4) pueden ser generadas como sigue: Prof. 3.8 Rechace Acepte 0 0 0. Si esta función existe.5 0. MÉTODO DEL RECHAZO Esta técnica se puede usar si existe otra función de densidad g(x) tal que cg(x) supera la función de densidad f(x). devuelva x y retorne. Genere x con la densidad g(x). cg(x)].1 0 0 64 128 192 256 320 384 448 512 576 x 1 0. Ejemplo: Consideremos la función de densidad beta(2. entonces se pueden aplicar los siguientes pasos: 1. Genere y uniforme en [0.3 0. De lo contrario repita desde el paso 1.2 0.4 f(x) 1.6 Beta (2. El algoritmo permanece rechazando las variables x y y hasta que la condición y ≤ f (x) sea satisfecha.5 0. cg(x) > f(x) para todos los valores de x.2 0≤ x≤1 2. 2.2 0.4) 0.11.4 0.1 0 0 64 128 192 256 320 384 448 512 576 x II.4 0.6 f(x) 0.4): f ( x ) = 20x (1 − x ) 3 3.8 0.6 F(x) 0. La variables beta (2.3 0.7 0. Por lo tanto podemos usar c = 2.5 x 0.11 y g(x) = 1 para 0 ≤ x ≤ 1.7 0.9 0. Herbert Hoeger Simulación VI-3 .75 1 Esta función se muestra en la figura y puede ser limitada por el rectángulo de altura 2. es decir. Si y ≤ f (x).

. 2. Si el punto cae sobre la densidad f (x). devuelva x y retorne. III. Genere x uniforme en [0. Ejemplo: Consideremos la densidad de Laplace dada por f ( x) = 1 −xa e 2a -∞ < x < ∞ La siguiente figura muestra la densidad para a = 2. Herbert Hoeger Simulación VI-4 . COMPOSICIÓN Este método se puede usar si la FDA F(x) deseada se puede expresar como una suma ponderada de otras n FDA F1 (x). entonces el método puede ser ineficiente. Genere x con la i-esima densidad fi (x) y retorne. La eficiencia del método depende de que tan bien g(x) limita a f (x). y) distribuido uniformemente en el rectángulo en la figura. 1]. y las n FDA son compuestas para formar la FDA deseada. Fn (x): F ( x) = ∑ pi Fi ( x) i =1 n pi ≥ 0. Genere un entero aleatorio I tal que P(I = i ) = pi . Los pasos 1 y 2 generan un punto (x. entonces un gran número de puntos generados en los pasos 1 y 2 serán rechazados. Similarmente. Esto puede ser hecho con el método de transformación inversa. los pasos a seguir so: 1. y ∑p i =1 n i =1 El número de funciones n puede ser finito o infinito. Si hay una brecha muy grande entre cg(x) y f (x). y ∑p i =1 n i =1 En cualquier caso.. entonces el paso 3 rechaza x.. La técnica también se puede usar si la función de densidad f (x) puede ser descompuesta como una suma ponderada de otras n densidades: f ( x) = ∑ pi f i ( x) i =1 n pi ≥ 0. por esto la técnica a veces es llamada descomposición. de aquí el nombre de la técnica. si la generación de variables aleatorias con g(x) es compleja. . De lo contrario vuelva al paso 1. 2. 2. Si y ≤ 20x(1-x)3 .1. Prof. Genere y uniforme en [0.11]. Esto también se puede ver como que la FDA deseada es descompuesta en otras n FDA. 3.

4 0. 2. Si x es la suma de dos variables aleatorias y1 y y2 . 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.5. Usando la técnica de composición podemos generar variables de Laplace de la siguiente forma: 1. • Una variable Binomial de parámetros n y p es la suma de n variable Bernulli con probabilidad de éxito p.. . La probabilidad de que x sea positiva es 1/2. yn y sumándolas. CONVOLUCIÓN Esta técnica puede ser usada si la variable aleatoria x puede ser expresada como la suma de n variables aleatorias y1 .1). y de que sea negativa también es 1/2. Prof. de lo contrario retorne x = a ln u2.. IV.0.3 f(x) 0.. Herbert Hoeger Simulación VI-5 ...1). .+ yn En este caso x se puede generar generando n variables aleatorias y1 . de aquí el nombre de la técnica a pesar de que la convolución no es necesaria para la generación de números aleatorios.. Es de hacer notar que estas variables se pueden generar mas eficientemente usando la técnica de transformación inversa. Nótese la diferencia entre composición y convolución. A continuación se dan unos ejemplos de aplicación de esta técnica: • Una variable Erlang-k es la suma de k exponenciales.1).. entonces la densidad de x puede se obtenida analíticamente por la convolución de las densidades de y1 y y2 . Si u1 < 0. yn que puedan ser generadas fácilmente: x = y1 + y2 +.1 0 -2 -1 0 x 1 2 Esta densidad es una composición de dos densidades exponenciales. Genere u1 ∼ U(0. y u2 ∼ U(0.2 0. retorne x = -a ln u2 . • La chi-cuadrado con v grados de libertad es la suma de cuadrados de v normales N(0..

Este hecho es usado para generar variables normales a partir de la suma de números U(0. c ) respectivamente.v/2).1). • La razón de dos normales estándar en Cauchy(0. el número de llegadas n en cierto intervalo T es Poisson con parámetro λT. Herbert Hoeger Simulación VI-6 .• • • La suma de un gran número de variables de determinada distribución tiene una distribución normal. • El a-esimo menor número en una secuencia de a + b + 1 variables U(0. V. Distribución Normal Considere dos distribuciones normales estándar Z1 y Z2 graficadas en el plano tal como se muestra en la figura: siendo su representación en coordenadas polares la siguiente: Prof.c). la razón x1 / (x1 + x2 ) es beta(b.1) adecuados. Ejemplos de variables generadas usando caracterización son: • Si los tiempos entre llegadas son exponenciales con media 1/λ. CARACTERIZACIÓN Características especiales de ciertas distribuciones permiten generar sus variables usando algoritmos especialmente ajustados para ellas. • Una chi-cuadrado con un número par de grados de libertad χ2(v) es un gamma γ(2. • Si x1 y x2 son dos gammas γ(a . Todos estos algoritmos están clasificados bajo una técnica llamada caracterización. Por lo tanto una Poisson puede ser obtenida generando exponenciales hasta que su suma supere T y devolviendo el número de exponenciales usadas.1) tiene distribución beta(a . Una variable Pascal es la suma de m geométricas. La suma de dos uniformes tiene una densidad triangular. b ). b ) y γ(a .

0485 Z 2 = − 2 ln(0. Con esto podemos generar dos variables aleatorias normales estándar independientes Z1 y Z2 a partir de dos números uniformes u1 y u2 (nótese que si u es uniforme entre 0 y 1. σ 2 ) usamos las transformaciones: X 1 = µ1 + σ 1Z1 X 2 = µ2 + σ 2Z2 Por ejemplo.3326) = 2.2375 y u2 = 0. entonces 2πu es uniforme entre 0 y 2π): Z1 = − 2 ln(u1 ) cos(2πu2 ) Z 2 = − 2 ln(u1 ) sen(2πu2 ) 2 y para obtener normales con parámetros ( µ1 .8561) = 1.2375) sen(2π 0.0485) = 12.4) y que nuestro generador de números aleatorios nos proporciona u1 = 0. σ 12 ) y ( µ 2 .3326 X 1 = 8 + 4(1.1940 X 2 = 8 + 4(−1.8561) = −1. Aplicando las ecuaciones anteriores nos da: Z 1 = − 2 ln(0.8561.6696 Prof. asumamos que queremos generar dos variables aleatorias normales independientes con parámetros (8.Z1 = B cosθ Z 2 = Bsenθ 2 Es sabido que B 2 = Z12 + Z 2 tiene distribución chi-cuadrado con 2 grados de libertad que es equivalente a una distribución exponencial con media 2: x ( 2 − 2 ) / 2e − x / 2 f ( x) = 2 / 2 2 Γ ( 2 / 2) = 1 −x2 e x≥0 2 por lo tanto el radio B lo podemos generar por transformación inversa usando B 2 = −2 ln(u ) o B = − 2 ln(u ) Por simetría de la distribución normal. Igualmente se puede considerar que el radio B y el ángulo θ son independientes. es razonable suponer que el ángulo θ esta distribuido uniformemente entre 0 y 2π.2375) cos(2π 0. Herbert Hoeger Simulación VI-7 .

A continuación se presenta un diagrama de flujo que ayuda a decidir cual de las técnicas anteriores se debe usar: ¿Es la FDA invertible? Si Use inversión No ¿Es la FDA una suma de FDA? Si Use composición No ¿Es la densida una suma de densidades? Si Use composición No ¿Es la variable una suma de variables? Si Use convolución No ¿Esta la variable relacionada a otras variables? Si Use caracterizacion No ¿Existe una función limitante? Si Use rechazo No Use inversión empirica Prof. Herbert Hoeger Simulación VI-8 .