# Function: grid.BetaBin(y,n,a.prir,b.pri) # # Function to comparge grid approxmation and analytic # for a beta prior and binomial likelihood # # Input: y = number of events # n = number of trials # a.pri = prior shape parameter 1 of beta # b.pri = prior shape parameter 2 of beta # # # Output: 3 plots # For grid: theta x prior # theat x likelihood # theta x posterior # theta x analytic posterior is overlaid in theta x posterior # # grid.BetaBin <- function(y,n,a.pri,b.pri) { theta <- seq(0,1,length.out=1000) # grid values analytic.post <- dbeta(theta,y,n-y) # analytic for comparison analytic.post <- analytic.post/sum(analytic.post) prior <- dbeta(theta,a.pri,b.pri) # For the grid approximation likelihood <- dbinom(y,n,prob=theta) # used original data 1928-1996 posterior.u <- prior*likelihood # product posterior <- posterior.u/sum(posterior.u) # standardize layout(matrix(c(1,1,0,0,1,1,3,3,2,2,3,3,2,2,0,0),4,4,byrow=FALSE)) plot(theta,prior,type='l',main=paste("Beta(",a.pri,",",b.pri,") Prior") ,col="grey",lwd=2) plot(theta,likelihood,type='l',main=paste("Binomial Likelihood, y=", y, "& n=", n) ,col="blue",lwd=2) plot(theta,analytic.post,type='l',main="Posterior: prior*likelihood/sum(posterior)",col="black",lwd=2) lines(theta,posterior,type='l',lwd=2,col='red') legend("topleft", legend = c( "Grid approximation", "Analytic"), col = c("black","red"), text.col = c("black","red"), lty=c(1,1), bty = "y", cex = 1.0) }