Top Banner
Generación de variables aleatorias Continuas 1.- Método transformación Inversa: Proposición: Sea U una variable aleatoria uniforme en (0,1). Para cualquier función de distribución continua F, invertible, la variable aleatoria X se definida como X=F -1 (U) tiene distribución F. [F -1 se define como el valor de x tal que F(x) = u.] Demostración Sea F x denota la función de distribución de X = F -1 (U) . Entonces Ahora, como F es una función de distribución, se tiene que F(x) es una función monótona creciente de x y por lo tanto la desigualdad "ab" es equivalente a la desigualdad “F(a) F(b)". Así, de la ecuación (1), vemos que ……(1)
27

Generación VA Continua 2

Dec 29, 2015

Download

Documents

Todd Martinez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Generación VA Continua 2

Generación de variables aleatorias Continuas 1.- Método transformación Inversa:

Proposición:

Sea U una variable aleatoria uniforme en (0,1). Para cualquier función de distribución continua F, invertible, la variable aleatoria X se definida como

X=F-1(U)

tiene distribución F. [F-1 se define como el valor de x tal que F(x) = u.]

Demostración

Sea Fx denota la función de distribución de X = F-1(U) . Entonces

Ahora, como F es una función de distribución, se tiene que F(x) es una función

monótona creciente de x y por lo tanto la desigualdad "a≤ b" es equivalente a la

desigualdad “F(a) ≤ F(b)". Así, de la ecuación (1), vemos que

……(1)

Page 2: Generación VA Continua 2

La proposición anterior muestra entonces que para generar una variable aleatoria

X a partir de la función de distribución continua F, generamos un número aleatorio

U y hacemos entonces X = F-1(U).

Se propone el siguiente algoritmo para esta técnica:

Poso 1 Generar n valores ui ~U(0,1)

Paso 2 Regresar xi=F-1(ui)

También puede usar el siguiente algoritmo

Paso 1 Obtener una expresión para la función de distribución inversa F−1(U).

Paso 2 Genera un número uniforme U.

Paso 3 Entrega la variable aleatoria X deseada, usando X = F−1(U).

Page 3: Generación VA Continua 2

Ejemplo 1

Queremos generar una variable aleatoria X con función de distribución

F(x)=xn , 0<x<1

Solución:

Si hacemos x = F-1(u), entonces

u = F(x) = xn, o, en forma equivalente, x = u1/n

Por lo tanto, para generar dicha variable aleatoria X generamos un número

aleatorio U y luego hacemos X = U1/n.

a.- Simulación en R-project

b.- Simulación en Excel

u<-runif(30)

x<-u^(1/30)

x

inv1<-function(n){u<-runif(n);x<-u^(1/n);x}

Page 4: Generación VA Continua 2

Ejemplo 2

Distribución exponencial

La media de la distribución es , y su varianza 1/ 2.

Page 5: Generación VA Continua 2

Distribución exponencial

La función de distribución acumulada para una variable aleatoria exponencial

con parámetro λ está dada por

Solución

Haciendo

podemos resolver para encontrar x como sigue

Page 6: Generación VA Continua 2

a.- Simulación en R-project

b.- Simulación en Excel

u<-runif(30)

Notando que la cantidad 1− u también se distribuye uniformemente en el intervalo

(0, 1), podemos generar una variable aleatoria exponencial con parámetro λ

usando la transformación

x<--log(u)

x

exp<-function(n,a){u<-runif(n);x<-(-1/a)*log(u);x}

plot(exp(50000,1))

Page 7: Generación VA Continua 2

Se ajustan los parámetros

lambda = 1;

n = 1000;

Se genera los valores aleatorios.

uni = rand(1,n);

X = -log(uni)/lambda;

El siguiente código en R-Project generará una variable aleatoria exponencial

para un λ dado.

A continuación se muestran las gráficas hechas en R para generar 50,000

números aleatorios con una distribución exponencial con parámetro λ=1

plot(exp(50000,1))

hist(exp(50000,1))

Page 8: Generación VA Continua 2

Comparación de números aleatorios generados por el método de la

transformación inversa con la distribución teórica.

Page 9: Generación VA Continua 2

Ejemplo 3

Distribución Weibull. En este caso, se tiene que.

Solución

Si y

Si hacemos x = F-1(u), entonces

Por lo tanto, para generar dicha variable aleatoria X generamos un número

aleatorio U y luego hacemos.

U =

En forma equivalente

Page 10: Generación VA Continua 2

a.- Simulación en R-project

b.- Simulación en Excel

u<-runif(30)

b<-1

c<-1

xb*(-log(u))^(1/c)

x

plot(exp(50000,1,2))

exp<-function(n,b,c){u<-runif(n);x<-(b)*(-log(u))^(1/c);x}

Page 11: Generación VA Continua 2

Se ajustan los parametros

b = 1;

c=2

n = 50000;

Se genera los valores aleatorios.

U<.runif(50000)

xb*(-log(u))^(1/c)

El siguiente código en R-Project generará una variable aleatoria Weibull para

una b y c dada

A continuación se muestran las gráficas hechas en R para generar 50,000

números aleatorios con una distribución Weibull

Page 12: Generación VA Continua 2

Comparación de números aleatorios generados por el método de la

transformación inversa con la distribución teórica.

Page 13: Generación VA Continua 2

a.- Método transformación Inversa función Gamma

Suponga que queremos generar el valor de una variable aleatoria gamma (n,λ).

Como la función de distribución F de tal variable aleatoria está dada

No es posible dar una expresión con forma cerrada para su inversa. Sin embargo

una variable aleatoria gamma X con parámetros (n,λ) se puede considerar como

la suma de n exponenciales independientes, cada con razón λ. Podemos obtener

una variable aleatoria gamma (n,λ) si generamos n números aleatorios

U1,……..Un y hacemos entonces

Por el uso de la identidad

Page 14: Generación VA Continua 2

Generar X y Y, un par de exponenciales independientes e idénticamente

distribuidas con media 1, generando primero X+Y y luego el resultado de que,

dado que X+Y = t, la distribución condicional de X es uniforme en (0,t). Entonces,

se puede utilizar el siguiente algoritmo para generar un par de exponenciales

con media 1.

Paso 1: Generar números aleatorios U1 y U2.

Paso 2: Hacer t = -log(U1U2).

Paso 3: Generar un número aleatorio U3.

Paso 4: X = tU3,Y=t-X.

Al comparar esto con el método directo de generar dos números aleatorio U1 y U2,

y luego hacer X=-logU1, y Y=-logU2, el algoritmo anterior ahora un cálculo

logarítmico, con un costo de dos multiplicaciones y la generación de un número

aleatorio.

También podemos generar k exponenciales independientes con media 1, al

generar primero su suma, digamos con -log(U1,,Uk), y luego generar k-1 números

aleatorios adicionales U1,..,Uk-1, que deben ser ordenados. Si U(1)<U(2)<,...,<Uk-1

son sus valores ordenados, y si -log(U1,…,Uk) = t, entonces las k exponenciales

son

t[U(i) – U(i-1)], i = 1, 2 , . . . , k, donde U(0)=0, U(k) = t

Page 15: Generación VA Continua 2

2.- Método de Rechazo:

Suponga que tenemos un método para generar una variable aleatoria con función

de densidad g(x). Podemos utilizarlo como base para generar a partir de la

distribución continua con función de densidad de f(x): se genera Y a partir de g y

luego se acepta este valor generado con una probabilidad proporcional a f(Y)/g(Y).

En concreto, sea c una constante tal que

El método de rechazo

Paso 1: Generar Y con densidad g.

Paso 2: Generar un número aleatorio U.

Paso 3: Si, , hacer X =K. En caso contrario, regresar al paso 1

para toda y

Page 16: Generación VA Continua 2

Teorema

(i) La variable aleatoria generada por el método de rechazo tiene densidad f.

(ii) El número de iteraciones necesarias del algoritmo es una variable aleatoria

geométrica con media c.

Corno en el caso discreto, debe observarse que la forma en que para aceptar el

valor Y con probabilidad f(Y)/cg(Y) se genera un número aleatorio U y se acepta

si Y si U≤f(Y)/cg(Y).

Ejemplo 1

Generar una variable aleatoria con función de densidad

Solución

Esta variable aleatoria se concentra en el intervalo (0,1), consideremos

Page 17: Generación VA Continua 2

Para hallar “c” tal que f(x)/g(x) ≤ c, utilizamos cálculo del valor máximo de

AI derivar se obtiene

Igualando a cero, el valor máximo es x = 1/4, entonces

Por lo tanto

Page 18: Generación VA Continua 2

así, el procedimiento de rechazo es el siguiente

Paso 1: Generar números aleatorios U1 y U2:

Paso 2: Si, U2≤ (256/27)U1(1-U1)3, detenerse y hacer X=U1. En caso

contrario, regresar al paso 1.

R-Project

Rec1<-function(n){U1<-c(runif(n));U2<-c(runif(n));for(i in

1:n){if(U2[i]<(256/27)*U1[i]*(1-U1[i])^3) X<-U1[i];print(X)}}

Page 19: Generación VA Continua 2

Ejemplo 2

Generar una variable aleatoria con densidad gamma (2/3,1)

donde Como esta variable aleatoria está concentrada en el eje

positivo y tiene media 3/2, es natural intentar la técnica de rechazo con una variable

aleatoria exponencial con la misma media. Por lo tanto, sea

Ahora

Al derivar e igualar a cero la derivada resultante, obtenemos que el valor máximo

de este cociente se obtiene cuando

Page 20: Generación VA Continua 2

es decir, cuando x=3/2. Por lo tanto

Como

Pues

El algoritmo será

Paso 1: Generar un número aleatorio U1, y hacer Y = -(3/2)logU1,.

Paso 2: Generar un número aleatorio U2.

Paso 3: Si hacer X=Y. En caso contrario, regresar al paso 1

El número promedio de iteraciones necesarias es

Page 21: Generación VA Continua 2

Paso 1: Generar un número aleatorio U1, y hacer Y = -(3/2)logU1,.

Paso 2: Generar un número aleatorio U2.

Paso 3: Si hacer X=Y. En caso contrario, regresar al

paso 1

Rec2<-function(n){U1<-c(runif(n));U2<-c(runif(n));Y<-(-3/2)*log(U1[i]);for(i in

1:n){if(U2[i]<(2*exp)*U1[i]*(1-U1[i])^3) X<-U1[i];print(X)}}

Page 22: Generación VA Continua 2

3.- El método polar para generar variables aleatorias normales

Sean X y Y variables aleatorias normales unitarias independientes y sean R y θ

las coordenadas polares del vector (X, Y).

Como X y Y son independientes, su densidad conjunta es el producto de sus

densidades individuales y por lo tanto está dada por

……..(1)

Page 23: Generación VA Continua 2

Para determinar la densidad conjunta de R2 y θ -llamémosla f(d,θ) hacemos el

cambio de variables.

El jacobiano de esta transformación es igual a 2, la ecuación (1) implica que la

función de densidad conjunta de R2 y θ está dada por

Sin embargo, como esto es igual al producto de una densidad exponencial con

media 2. (a saber, ) y la densidad uniforme en (O, 2π) (a saber, 1/2 π),

esto implica que

R2 y θ son independientes; R2 es exponencial con media 2

y θ se distribuye uniformemente en (0, 2θ)

Page 24: Generación VA Continua 2

Ahora podemos generar un par de variables aleatorias normales estándar

independientes X y Y de la siguiente manera

Paso 1: Generar números aleatorios U1 y U2.

Paso 2: R2 = -2 logU1, (R2 exponencial con media 2). Sea θ = 2πU2

(θ es uniforme entre 0 y 2π).

Paso 3: Ahora, sean

…….(Box-Muller)

no es eficiente computacional por tiene senos y cósenos , entonces

Por

Page 25: Generación VA Continua 2

Por transformación de Box-Muller se tiene.

Como está uniformemente distribuida en (0,1) y es independiente del

ángulo aleatorio θ, podemos tomar un número aleatorio U necesario. Por lo tanto, si

S = R2, obtenemos que

son normales unitarias independientes cuando (V1, V2) es un punto elegido al

azar en el círculo de radio 1 con centro en el origen, y

Page 26: Generación VA Continua 2

El algoritmo es

Paso 1: Generar números aleatorios U1 y U2.

Paso 2: Hacer V1= 2U1- 1, V2 = 2U2 -1, S = V12+ V2

2.

Paso 3: Si S > 1 regresar al paso 1.

Paso 4: Regresar las normales unitarias independientes.

Esto se llama método polar. Como la probabilidad de que un punto aleatorio

del cuadrado esté dentro del círculo es igual a n/4

Page 27: Generación VA Continua 2

1.- Dé un métodos para generar una variable aleatoria con función de densidad

2.- Dé un métodos para generar una variable aleatoria con función de densidad