Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 / 47
Método de Aceptación y Rechazo
Ejemplo 7
Genere X ∼ Beta (α = 2, β = 1) siendo su f.d.p.
g(y) = 1
f (y) 2y
= ≤c
g(y) 1
Como 0 ≤ y ≤ 1, entonces 0 ≤ 2y ≤ 2 y por tanto el valor máximo de
f (y)
se consigue para c = 2.
g(y)
4 / 47
Método de Aceptación y Rechazo
Uso de R
legend (.6 ,3 , c (" f ( y ) " ," cg ( y ) ") , col = c (1 ,2) , lty =1 , lwd =2 , cex =1.2)
5 / 47
Método de Aceptación y Rechazo
3.0
f(y)
cg(y)
2.5
2.0
Densidad
1.5
1.0
0.5
0.0
x
6 / 47
Método de Aceptación y Rechazo
Finalmente el algoritmo serı́a:
1 Generamos y ∼ U (0, 1)
2 Generamos u ∼ U (0, 1)
2y
3 Si u ≤ 2(1) = y ⇒ x = y. Caso contrario volver al paso 1.
Usando R
M < -10000
x < - numeric ( M )
for ( h in 1: M ) {
cond < -0
7 / 47
Método de Aceptación y Rechazo
Ejemplo 8
x 1 2 3 4 5
P (X = x) 0.15 0.22 0.33 0.10 0.20
8 / 47
Método de Aceptación y Rechazo
9 / 47
Método de Aceptación y Rechazo
Uso de R
plot (1:5 , p , pch =16 , xlab =" x " , ylab =" Probabilidad " , ylim = c (0 ,0.45) , c
main =" Distribución Discreta con propuesta Uniforme
Discreta ")
legend (3.5 ,.45 , c (" f ( y ) " ," cg ( y ) ") , col = c (1 ,2) , pch = c (16 ,8) , cex =1.2
10 / 47
Método de Aceptación y Rechazo
● f(y)
0.4
cg(y)
●
0.3
Probabilidad
●
0.2
●
0.1
●
0.0
1 2 3 4 5
x
11 / 47
Método de Aceptación y Rechazo
f (y) py
3 Si u ≤ = entonces x = y , caso contrario ir a 1.
1.65g(y) 1.65q
12 / 47
Método de Aceptación y Rechazo
Usando R
M < -10000
x < - numeric ( M )
p < - c (0.15 ,0.22 ,0.33 ,0.10 ,0.20)
for ( h in 1: M ) {
cond < -0
while ( cond ==0) {
y < - sample (1:5 ,1) # Generar un candidato
u < - runif (1) # Generar u ~ U (0 ,1)
if (u <= p [ y ]/.33) { # Aceptar el candidato
x[h]<-y
cond < -1
}
}
}
13 / 47
Método de Aceptación y Rechazo
Ejemplo 9
14 / 47
Método de Aceptación y Rechazo
15 / 47
Método de Aceptación y Rechazo
Entonces 1 2
√2
2π
e− 2 y 2 1 2
h(y) = = √ e− 2 y +y
e−y 2π
Tomamos la primera derivada
2 1 2
h0 (y) = √ e− 2 y +y (−y + 1) = 0 ⇒ y = 1
2π
De la segunda derivada
2 1 2 1 2
h00 (y) = √ e− 2 y +y (−y + 1)2 + e− 2 y +y (−1)
2π
vemos que h00 (y = 1) < 0 ⇒ y = 1 es un máximo.
1 2 )+1 1
Ası́ tenemos que h(1) = √2
2π
e− 2 (1 = √2
2π
e2 = c
16 / 47
Método de Aceptación y Rechazo
Uso de R
curve (2* dnorm ( x ) ,0 ,4 , lwd =2 , ylim = c (0 ,2* exp (.5) ) / sqrt (2* pi ) ,
ylab =" Densidad " ,
xlab =" x " ,
main =" Distribución Normal (0 ,1) con propuesta Exp (1) ")
curve (2* exp (.5) * dexp (x ,1) / sqrt (2* pi ) , col =2 , lwd =2 , add = T )
abline ( h =0)
abline ( v =0)
legend (3 ,1.2 , c (" f ( y ) " ," cg ( y ) ") , col = c (1 ,2) , lty =1 , lwd =2 , cex =1.2)
17 / 47
Método de Aceptación y Rechazo
1.2 f(y)
cg(y)
1.0
0.8
Densidad
0.6
0.4
0.2
0.0
0 1 2 3 4
x
18 / 47
Método de Aceptación y Rechazo
f (y) 1 2 1 2 1 2 1 1 2
= 1( √ e− 2 y +y ) = e− 2 y +y− 2 = e− 2 (y−1)
cg(y) √2 e2 2π
2π
19 / 47
Método de Aceptación y Rechazo
Ejemplo 9 (continuación)
Algoritmo
1 Generar y de f (y). Para esto
(a) Generamos u1 ∼ U (0, 1)
(b) Generamos w ∼ Exp(1) esto es w = − log(u1 )
(c) Generamos u2 ∼ U (0, 1)
1 2
(d) Si u2 ≤ e− 2 (w−1) ⇒ y = w. Caso contrario volvemos al paso (a).
21 / 47
Método de Aceptación y Rechazo
Usando R
M < -10000
z < - numeric ( M )
for ( h in 1: M ) {
cond < -0
# Paso 1
while ( cond ==0) {
u1 < - runif (1) # Generar u1 ~ U (0 ,1)
u2 < - runif (1) # Generar u2 ~ U (0 ,1)
y1 < - - log ( u1 )
y2 < - - log ( u2 )
if ( y2 >0.5*( y1 -1) ^2) { # Aceptar el candidato
y < - y1
cond < -1
}
}
# Paso 2
u3 < - runif (1) # Generar u3 ~ U (0 ,1)
z [ h ] < - sign ( u3 -0.5) * y # Obtener z ~ N (0 ,1)
}
22 / 47
Método de Aceptación y Rechazo
Ejercicios
23 / 47
Generando variables aleatorias por propiedades
24 / 47
Generando variables aleatorias por propiedades
25 / 47
Generando variables aleatorias por propiedades
u1 ∼ U (0, 1) , u2 ∼ U (0, 1)
y hacer
θ = 2π u1 , m = −2 log u2
con los valores generados de θ y m puedo generar x e y usando
√ √
x= m cos θ , y = m sin θ.
Acelerando el proceso
1 U1 , U2 ∼ U (0, 1)
√ √
2 X = −2 log U1 cos(2πU2 ) Y = −2 log U1 sin(2πU2 ) donde
X ∼ N (0, 1) Y ∼ N (0, 1)
27 / 47
Generando variables aleatorias por propiedades
Ejercicios
28 / 47
Generando variables aleatorias usando mezclas
29 / 47
Generando variables aleatorias usando mezclas
Ejemplo 10
Generar de una distribución t de Student utilizando mezclas.
Observaciones:
La distribución Normal, Cauchy, Logı́stica, t-Student son distribuciones
elı́pticas. Si X ∼ Elı́ptica (Localización = 0 , Escala=1) entonces
Y = µ + σX ∼ Elı́ptica (Localización= µ , Escala=σ)
En este caso se dice que la t-Student es una mezcla de Normal con una
medida de mezcla Gama.
χ2 (v) v v
En este caso X ∼ ⇐⇒ X ∼ Gama , .
v 2 2
31 / 47
Generando variables aleatorias usando mezclas
Algoritmo:
v v
1 Generar Y ∼ Gama , .
2 2
1
2 Generar X ∼ N 0, .
y
Usando R
M < -10000
v < -4
y < - rgamma (M ,0.5* v ,0.5* v )
x < - rnorm (M ,0 ,1/ sqrt ( y ) )
32 / 47
Generando variables aleatorias usando mezclas
Ejercicios
1 Utilize R para generar 10000 valores de una v.a. t-student con v = 4
usando mezclas. Verifique gráficamente.
2 Una v.a., definida en toda la recta, tiene distribución normal asimétrica
(Azzalini, 1985) con parámetros de localización µ, de escala σ y de
asimetrı́a λ si su función de densidad es dada por la siguiente expresión:
2 x−µ x−µ
f (x) = φ Φ λ
σ σ σ
se utiliza la notación X ∼ SN (µ, σ, λ). Para µ = 0 y σ = 1 esta
distribución tiene las siguientes propiedades
Cuando λ = 0 ⇒ X ∼ N (0, 1)
Si X1 ∼ N (0, 1) y X2 ∼ N (0, 1), entonces
1 λ
X=√ X1 + √ |X2 | ∼ SN (0, 1, λ)
1 + λ2 1 + λ2
Genere valores de X ∼ SN (0, 1, 5).
33 / 47
Generar de distribuciones truncadas
FX (y) − FX (a)
GY (y) = , x ∈ [a, b] a < b
FX (b) − FX (a)
34 / 47
Generar de distribuciones truncadas
Ejemplo 11
1 2
Generar de la normal positiva f (y) = √2
2π
e− 2 y , y>0
Esta distribución es una N ormal(0, 1) truncada a la derecha (para
valores positivos).
Usando R
M < -10000
u < - runif ( M )
y < - qnorm (( u +1) /2)
36 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
d2
log(f (x)) < 0 ∀x ∈ Rx
dx2
37 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
El método ARS utiliza el hecho de que por ser logf (x) una función
cóncava esta puede ser acotada superiormente por sus tangentes.
38 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
2.0
2
1.5
1
log f(x)
f(x)
1.0
0
0.5
−1
0.0
−2
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
x x
39 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
40 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
ars(n=1,f,fprima,x=c(-4,1,4),ns=100,m=3,emax=64,lb=FALSE,
ub=FALSE,xlb=0, xub=0,...)
41 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
Ejemplo 12
42 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
library ( ars )
# Ejemplo 1: Generar valores de una distribución N (2 ,9)
# Función que evalúa el logaritmo de la densidad de
# una normal a menos de una constante
f < - function (x , mu =0 , sigma =1) { -1/(2* sigma ^2) *( x - mu ) ^2}
# Generamos la muestra
y < - ars (10000 , f , fprima , mu =2 , sigma =3)
hist (y , prob = T )
curve ( dnorm (x ,2 ,3) , col =2 , add = T )
library ( lattice )
qqmath (y , distribution = function ( p ) qnorm (p ,2 ,3) )
43 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
10
0.14
●
Densidad de N(2,9)
●
0.12
●
●
●
●
●
●
●●
●●
0.10
●●
●●
5
●●
●●●
Cuantiles Teóricos
●
●●●●
●●●
●
0.08
●●
●
●●
Densidad
●
●●
●●
●
●
●●
●●
●
●
●●
●●
●
●
●●
●●
●
0.06
●
●●
●●
●
●
●●
●●
●
●
●●
●
0
●
●●
●●
●●
●●
0.04
●●
●●
●●
●●
●
●
●
0.02
●
●
●
●
−5
0.00
−15 −10 −5 0 5 10 15 −5 0 5 10
44 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
Ejemplo 13
45 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
hist (y , prob = T )
curve ( dgamma (x ,2 ,2) , col =2 , add = T )
library ( lattice )
qqmath (y , distribution = function ( p ) qgamma (p ,2 ,2) )
46 / 47
Método de Aceptación y Rechazo Adaptativo - ARS
Ejercicios
47 / 47