# POLS 506 Lecture 4 # Dr. Justin Esarey # Updated 9/16/2012 ######################################### # metropolis-hastings algorithm # (random walk variant) ######################################### rm(list=ls()) set.seed(12130921) reps=50000 # target density: the cauchy distribution cauchy<-function(x, x0=0, gamma=1){ out<-1/(pi*gamma*(1+((x-x0)/gamma)^2)) return(out) } chain<-c(30) for(i in 1:reps){ proposal<-chain[i]+runif(1, min=-1, max=1) accept<-runif(1)0){ out[2]<-dinvgamma(gamma, shape=1e-6, scale=1) }else(out[2]<-0) return(prod(out)) } # the posterior function cauchy.post<-function(x0, gamma, x){ out<-prior(x0, gamma)*cauchy(x, x0, gamma) return(out) } chain.1<-c(0) chain.2<-c(1) for(i in 1:reps){ proposal<-chain.1[i]+runif(1, min=-2, max=2) accept<-runif(1)