biossay <- data.frame(doses=c(-.863,-.296,-.053,.727), rats=c(5,5,5,5),deaths=c(0.5,1,3,4.5),freq=c(0.5,1,3,4.5)/5) log.post<-function(alpha,beta,data=biossay){ ldens <- 0 for (i in 1:length(data$doses)){ theta <- 1/(1+exp(-alpha-beta*data$doses[i])) ldens <- ldens + data$deaths[i]*log(theta)+(data$rats[i]-data$deaths[i])*log(1-theta) } ldens } numIter <- 1000 alpha <- rep(0,numIter); beta <- rep(0,numIter); alpha[1] <- -5 beta[1] <- -5 e <- 1 for (i in 2:numIter) { alpha[i] <- runif(1,alpha[i-1]-e,alpha[i-1]+e); beta[i] <- runif(1,beta[i-1]-e,beta[i-1]+e); if (runif(1) > exp(log.post(alpha[i],beta[i])-log.post(alpha[i-1],beta[i-1]))) { alpha[i] <- alpha[i-1]; beta[i] <- beta[i-1]; } } plot(alpha,beta,type="l")