You are on page 1of 7

Certamen Informtica

Alumno: Ivan Aliaga Casceres


Profesor: Sergio Contreras
Miercoles 15 de julio, 2015
A continuacin se procede a resolver los problemas 5.1, 5.2, 5.3, 5.4, 5.6, 5.10, 5.13 y 5.14 del libro: Statistical Computing
with R, de Maria L. Rizzo.
1. Ejercicio 5.1
Calcular y estimar por el metodo de montecarlo la siguiente integral:

/3

sen t dt

y comparar su estimacin con el valor exacto del valor de la integral.


Solucin.-

/3

sen t dt = cos t|0/3 = cos0 cos

1
1

= 1 =
3
2
2

Algoritmo.a) Se tienen x1 , x2 , . . . , xm variables pseudo aleatorias de una Distribucin Uniforme U (0, 1)


b) = gm ( xi ) =

1
m

im=1 g( xi ) =

c) = (b a) gm ( xi ) =

1
m

im=1 sen( 3 xi ).

3 gm ( x i ).

0.490

0.500

0.510

N <- 50000
m <- seq(100,N,by=100); x<-list(0)
for(i in 1:length(m))
{
x[[i]]<- (pi/3)*sin(pi/3*runif(m[i]))
}
thetaest<- sapply(x,mean)
plot(m,thetaest,type="l")
abline(h=0.5,col = "lightgray")

10000 20000 30000 40000 50000


Rplicas (m)

2. Ejercicio 5.2
Refiriendo al ejemplo del ejercicio 5.3 calcular la estimacin por el mtodo de montecarlo la funcin de distribucin
acumulada normal estandar, generado por una distribucin Uniforme U (0, x ). Comparar su estimacin con la funcin
normal cdf pnorm. Calcular una estimacin de la varianza de la estimacin Monte Carlo de (2) y un intervalo de
confianza del 95 % para (2).
Solucin.

2
1
et /2 dt
2

0
x
2
2
1
1
et /2 dt +
et /2 dt
=
2
2

0
1
1
=
+
2
2

et

2 /2

gm ( x ) =

dt

1
m

g ( xi ) =

i =1

1
m

exi /2 ,

i =1

{ x }im=1 U (0, x )

Algoritmo para las estimaciones.a) Se tienen y1 , y2 , . . . , ym variables pseudo aleatorias de una Distribucin Uniforme U (0, x )
b) = gm ( xi ) =

1
m

im=1 g( xi ) =

1
m

im=1 e xi /2 .

2
c) = (b a) gm ( xi ) = xgm ( xi ) = x m1 im=1 e xi /2 .

Algoritmo para la varianza.a) Se tienen y1 , y2 , . . . , ym variables pseudo aleatorias de una Distribucin Uniforme U (0, x )
b) = gm ( xi ) =
c) Var () =

2
m

im=1 g( xi ) = m1 im=1 e xi /2
i2
h
= m12 im=1 g( xi ) gm ( x )
1
m

N<-10000
x<-2
m<- seq(100,N,by=100)
X<- list(0)
for(i in 1:length(m))
{
X[[i]] <- exp(-runif(m[i],0,x)^2/2)
}
thetaest<- x*sapply(X,mean)/sqrt(2*pi)
phi<- thetaest +0.5
vartheta<- (sapply(X,var)/(2*pi))/m
se<- 1.96*sqrt(vartheta)
li<- phi-se
ls<- phi+se
plot(m,phi,type="l")
require(plotrix)
plotCI(m,phi,ui=ls,li=li)

0.990

0.980

0.98

0.970

0.975

0.985

1.00

0.96
0

2000

4000

6000

8000

10000
0

Rplicas (m)

3. Ejercicio 5.3
Calcular la estimacin de Montecarlo de:

0.5

2500

5000
Rplicas (m)

7500

10000

e x dx

Mediante un muestreo de Uniforme U (0, 0.5), y estimar la varianza de . Encuentra otro estimador de Monte Carlo
mediante un muestreo de la distribucin exponencial Cul de las varianzas ( y ) es ms pequeo, por qu?.
Solucin

0.5

e x dx = exp( x )|0.5
0 = 1 exp (0.5) = 0.3934693

Algoritmo para las estimaciones (Estimacin mediante variables aleatorias pseudo aleatorias uniformes entre 0 a 12 )
a) Se tienen x1 , x2 , . . . , xm variables pseudo aleatorias de una Distribucin Uniforme U (0, 0.5)
0.5
0.5
b) == 12 0 e x 2dx = 12 0 g( x ) f ( x )dx = 12 Ex [e x ].
c) = 21 gm (yi ) =
d) Var () =

1
2m

1
2
m = m2

im=1 eyi .
i2
h
im=1 g( xi ) gm ( x ) .

Algoritmo para las estimaciones (Estimacin median variables pseudo aleatorias exponenciales)
a) Se tienen y1 , y2 , . . . , ym variables pseudo aleatorias de una Distribucin Exponencial Exp(=1).
b) Para cada observacion Xi , calcular:

c) Calcular = F (y) = g(Y ) =


d) Calcular Var ( ) =

1
m2

g(Yi )

0.5
ey dy=
g(y)dy
0
(0
1 Yi y
I (Yi y)=
0 Yi > y

1
m

im=1 I (Yi y).


h
i2
im=1 g(yi ) gm (y) .

0.5

m <- 10000
x <- runif(m,0,0.5)
#primer estimador
thetaest <- 0.5*mean(exp(-x))
vartheta <- (0.5^2)*var(exp(-x))/m
#segundo estimador
x <- rexp(m,rate=1)
g <- (x<0.5)
thetaast<- mean(g)
varthetaast<-var(g)/m
print(c(thetaest,thetaast)); print(c(vartheta,varthetaast))
## [1] 0.3937474 0.3972000
## [1] 3.169986e-07 2.394561e-05
Como = 0.3934693, la primera estimacin por el mtodo de montecarlo es: = 0.3937474 con varianza Var () =
3.1699856 107 , la segunda estimacin: = 0.3972, con varianza Var ( ) = 2.3945611 105 , ambas con m = 104
rplicas, el cociente de ambas varianzas es menor a uno.
Var ()
=0.0132383
Var ( )
Por lo que la varianza del primer estimador es ms pequeo que la segunda (Var () < Var ( )).
4. Ejercicio 5.4
Escriba una funcin para calcular una estimacin de Monte Carlo de la funcin de distribucin acumulada Beta(3, 3) y
utilizar la funcin a estimar F ( x ) para x = 0.1, 0.2, 0.3, . . . , 0.9. Comparar las estimaciones con los valores devueltos por la
funcin pbeta de R.
Solucin.-

f ( x, p, q)

F(x)

F(x)

F(x)

F(x)

1
x p1 (1 x )q1 x [0, 1]
B( p, q)
x
1
t p1 (1 t)q1 dt
B( p, q) 0
1
B( p, q)

t p1 (1 t)q1 dt

1
1
( xy) p1 (1 xy)q1 xdy
B( p, q) 0
1

B( p, q)

Se estima mediante .
Algoritmo para la estimacin
a) Se tienen y1 , y2 , . . . , ym variables pseudo aleatorias de una Distribucin Uniforme U (0, 1)
b) = gm (yi , x, p, q) =
c) F ( x ) =

1
m

im=1 g(yi , x, p, q) =

1
m

im=1 ( xy) p1 (1 xy)q1 x, x [0, 1], p, q R+ .

.
B( p,q)

F<- function(x,m=10000,p=3,q=3){
y<- runif(m)
thetaest<- mean(x*((x*y)^(p-1))*((1-x*y)^(q-1)))
4

return((1/beta(p,q))*thetaest)

x<- seq(0.1,0.9,by=0.1)
p<-q<-3
theta <-pbeta(x,shape1=p,shape2 =q)
thetaest <- sapply(x,F)
diffp <- theta-thetaest
tab<-rbind(x,theta,thetaest,diffp)
round(tab,4)
#
#
#
#
#
#
#
#
#
#

[,1]
0.1000
0.0086
0.0085
0.0000
[,9]
x
0.9000
theta
0.9914
thetaest 0.9826
diffp
0.0088
x
theta
thetaest
diffp

[,2]
0.2000
0.0579
0.0576
0.0004

[,3]
0.3000
0.1631
0.1640
-0.0009

[,4]
[,5]
[,6]
[,7]
[,8]
0.4000 0.5000 0.6000 0.7000 0.8000
0.3174 0.5000 0.6826 0.8369 0.9421
0.3222 0.5053 0.6847 0.8454 0.9442
-0.0048 -0.0053 -0.0021 -0.0085 -0.0022

5. Ejercicio 5.5
Calcular (empricamente) la eficiencia de la muestra significa por el mtodo de Monte Carlo de estimacin de la integral
definida en el Ejemplo 5.3 con respecto a la "hit or miss" en el ejemplo 5.4.
Solucin
# primero
x <- seq(.1, 2.5, length = 10)
m <- 10000
u <- runif(m)
thetaest<- numeric(length(x))
varthetaest<- numeric(length(x))
for (i in 1:length(x)) {
g <- x[i] * exp(-(u * x[i])^2 / 2)
thetaest[i] <- mean(g) / sqrt(2 * pi) + 0.5
varthetaest[i] <- var(g)/(2*pi*m)
}
# segundo
x<- seq(.1, 2.5, length = 10)
m <- 10000
z <- rnorm(m)
dim(x) <- length(x)
thetaest1 <- apply(x, MARGIN = 1, FUN = function(x, z) {mean(z < x)}, z = z)
varthetaest1 <- apply(x, MARGIN = 1, FUN = function(x, z) {var(z < x)/m}, z = z)
round(rbind(x,thetaest,thetaest1,theta=pnorm(x),eficiencia=varthetaest/varthetaest1),4)
[,1] [,2]
0.1000 0.3667
0.5398 0.6430
0.5507 0.6538
0.5398 0.6431
0.0000 0.0000
[,10]
x
2.5000
thetaest
0.9902
thetaest1 0.9941
theta
0.9938
eficiencia 18.5899
x
thetaest
thetaest1
theta
eficiencia

[,3]
0.6333
0.7366
0.7452
0.7367
0.0010

[,4]
0.9000
0.8155
0.8193
0.8159
0.0092

[,5]
1.1667
0.8774
0.8824
0.8783
0.0500

[,6]
1.4333
0.9226
0.9274
0.9241
0.2048

[,7]
1.7000
0.9534
0.9561
0.9554
0.6837

[,8]
1.9667
0.9727
0.9760
0.9754
2.1438

[,9]
2.2333
0.9840
0.9879
0.9872
6.4826

En terminos generales la eficicienca es el mismo para ambos tipos de estimaciones pero a medida que x aumenta, incrementa la probabilidad de encontrar el verdadero valor de y hace que la primera estimacin sea ms eficiente, sin
embargo, a medida que x aumenta la segunda estimacin se hace ms eficiente dejando de lado a la primera estimacin.

6. Ejercicio 5.6
En el Ejemplo 5.7 donde se us el enfoque variable aleatoria de control, se ilustra la integracin de la siguiente integral
por el Mtodo de Montecarlo:
1
=
e x dx
0

Consideremos ahora el enfoque variable antittica. Calcule Cov(eU , e1U ) y Var (eU + e1U ), donde U U (0, 1), Cul es
el porcentaje de reduccin en la varianza de que se puede lograr utilizando variables aleatorias antitticas (en comparacin con la sencilla MC)?.
Solucin

e x dx = e1 1 = 1.718282

#variables antiteticas
m<- 100000
u<-runif(m)
u1<-u[seq(1,m/2,1)]
u2<-u[seq((m/2)+1,m,1)]
y<- exp(u1)
yj<-exp(1-u2)
thetaest<- mean((y+yj)/2)
varthetaest<-var(y+yj)/(4*m)
varcompuesta<-var(y+yj)
covar<-cov(y,yj)
print(c(thetaest,varcompuesta,covar))
## [1] 1.7179196124 0.4847317401 0.0004495615
#montecarlo comun y porcentaje de reduccin de varianza
m<- 10000
u<-runif(m)
thetamc<- mean(exp(u))
varthetamc<- var(exp(u))/m
(thetamc>varthetaest)
## [1] TRUE
(rvar<-1-varthetaest/varthetamc)
## [1] 0.9504853
La estimacin por el mtodo de montecarlo con variables antitticas reduce en un 95.05 % de reduccin en la varianza en
comparacion a la sencilla estimacin de Montecarlo.
7. Ejercicio 5.10
Utilice la integracin Monte Carlo con variables antitticas para estimar:

e x
dx
1 + x2

y encontrar la reduccin aproximada en la varianza como un porcentaje de la varianza sin reduccin de la varianza.
Solucin.

#variables antiteticas
m <- 100000
u <- runif(m)
u1 <- u[seq(1,m/2,1)]
6

u2 <- u[seq((m/2)+1,m,1)]
y <- exp(-u1)/(1+u1^2)
yj <- exp(-(1-u2))/(1+(1-u2)^2)
thetaest<- mean((y+yj)/2)
varthetaest<-var(y+yj)/(4*m)
varcompuesta<-var(y+yj)
covar<-cov(y,yj)
print(c(thetaest,varcompuesta,covar))
## [1] 5.243875e-01 1.204485e-01 5.684337e-05
#montecarlo comun y porcentaje de reduccin de varianza
m<- 10000
u<-runif(m)
thetamc<- mean(exp(-u)/(1+u^2))
varthetamc<- var(exp(-u)/(1+u^2))/m
(thetamc>varthetaest)
## [1] TRUE
(rvar<-1-varthetaest/varthetamc)
## [1] 0.9498122
8. Ejercicio 5.13
Encuentra dos funciones importancia f 1 y f 2 que se admiten en (1, ) y est "cerrada" en:
2
x2
g( x ) = e x /2 , x > 1
2

Cul de las dos funciones de importancia debera producir el menor varianza en la estimacin:
treo de importancia?, explicar.
9. Ejercicio 5.14
Obtener la estimacin por Montecarlo de:

2
x2
e x /2 dx
2

por muestreo de importancia.

2
2
x e x /2
2

por mues-

You might also like