[R] MCMC gradually slows down

Jens Malmros jens.malmros at gmail.com
Sun Nov 8 20:11:28 CET 2009


Hello,

I have written a simple Metropolis-Hastings MCMC algorithm for a
binomial parameter:

MHastings = function(n,p0,d){
	theta = c()
	theta[1] = p0
	t =1
	while(t<=n){
		phi = log(theta[t]/(1-theta[t]))
		phisim = phi + rnorm(1,0,d)
		thetasim = exp(phisim)/(1+exp(phisim))
		r = (thetasim)^4*(1-thetasim)^8/(theta[t]^4*(1-theta[t])^8)
		if(runif(1,0,1)<r){
			theta[t+1] = thetasim
		} else {
			theta[t+1] = theta[t]
		}
		t = t+1
		if(t%%1000==0) print(t) # diagnostic
	}
	data.frame(theta)
}

The problem is that it gradually slows down. It is very fast in the
beginning, but slows down and gets very slow as you reach about 50000
iterations and I need do to plenty more.

I know there are more fancy MCMC routines available, but I am really
just interested in this to work.

Thank you for your help,
Jens Malmros




More information about the R-help mailing list