InĀ [1]:
# rm(list=ls())
options(OutDec = ",") 
#==============================================================================
# Exemplo:
#
# Integracao Monte Carlo 
#
# Calculando a preditiva de (Y|theta) ~ N(theta,1) e theta ~ N(0,4)
#
# Calculamos a preditiva em uma grade de pontos y
# Para cada y, tomaremos uma amostra de theta
#
#==============================================================================
set.seed(12345) # Semente

m      <- 100                    # Tamanho da grade de valores
y      <- seq(-8,8,length=m)     # Grade de valores y
n      <- 1000                   # Tamanho da amostra 
InĀ [2]:
#------------------------------------------------------------------------------
f1     <- matrix(NA,m,n)         # Primeira maneira
theta1 <- rnorm(n,0,2)           # Primeira maneira
#------------------------------------------------------------------------------
InĀ [3]:
#------------------------------------------------------------------------------
f2     <- matrix(NA,m,n) # Segunda maneira
#------------------------------------------------------------------------------
InĀ [4]:
for (i in 1:100){
	# Valores iguais de z para cada y[i]
	f1[i,] <- dnorm(y[i],theta1,1) # Primeira maneira
	#----------------------------------------------------------------------
	# Valores diferentes de z para cada y[i]
	theta2 <- rnorm(n,0,2)         # Segunda maneira
	f2[i,] <- dnorm(y[i],theta2,1) # Segunda maneira
}
InĀ [5]:
#==============================================================================
# Obtendo as estimativas
#==============================================================================
f1y.chapeu <- apply(f1,1,"mean")
f2y.chapeu <- apply(f2,1,"mean")
InĀ [6]:
#==============================================================================
# Ilustracao das aproximacoes
#==============================================================================
par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.5,
    lab=c(10,5,5),mar=c(5,5,2,2.5),xpd=T,cex.main=2.0,bty="n")
plot(y,f1y.chapeu,t="l",lwd=3,xlab=expression(y),ylab=expression(f(y)),
    ylim=c(0,0.20))
lines(y,dnorm(y,0,sd=sqrt(5)),lty=2,lwd=3,col="red")
lines(y,f2y.chapeu,col="blue",lwd=3)
legend("topleft",c("Verdadeiro","Monte Carlo 1","Monte Carlo 2"),    
    lty=c(2,1,2),lwd=3,col=c("red","black","blue"),bty="n",cex=1.4)
No description has been provided for this image
InĀ [7]:
# rm(list=ls()) 
#==============================================================================
# graphics.off()
#==============================================================================
# Fim
#==============================================================================