# Examples on pages 225-226.
# READ IN THE DATA AND USE MULTIPLE IMPUTATION ON MISSING
data(pbc.vote)
X <- cbind(tech, new, turnout, rep, whi)
Y <- badballots
library(nnet); library(mice)
imp.X <- mice(X)
X <- as.matrix(cbind(rep(1,nrow(X)), complete(imp.X)))
# UNINFORMED PRIOR ANALYSIS
bhat <- solve(t(X)s2 <- t(Y- XR <- solve(t(X) s2/(nrow(X)-ncol(X)-2))[1,1]
uninformed.table <- t.ci.table(bhat,R,
degrees=nrow(X)-ncol(X))[[2]]
alpha <- (nrow(X)-ncol(X)-1)/2
beta <- 0.5*s2*(nrow(X)-ncol(X))
sort.inv.gamma.sample <- sort(1/rgamma(10000,alpha,beta))
sqrt.sort.inv.gamma.sample <- sqrt(sort.inv.gamma.sample)
uninformed.table <- rbind(uninformed.table,
c( mean(sqrt.sort.inv.gamma.sample),
sqrt(var(sqrt.sort.inv.gamma.sample)),
sqrt.sort.inv.gamma.sample[250],
sqrt.sort.inv.gamma.sample[5000],
sqrt.sort.inv.gamma.sample[9750] ))
# CONJUGATE PRIOR ANALYSIS
A <- 3; B <- 9
BBeta <- rep(0,6); Sigma <- diag(c(2,2,2,2,2,2))
tB <- solve(solve(Sigma)
+ t(X)ts <- 2*B + s2*(nrow(X)-ncol(X)) + (t(BBeta)-t(tB)) solve(Sigma)R <- diag(ts/(nrow(X)+A-ncol(X)-2))*
solve(solve(Sigma)+t(X)conjugate.table<-t.ci.table(tB,R,
degrees=nrow(X)+A-ncol(X)-3)[[2]]
sort.inv.gamma.sample <- sort(1/rgamma(10000,alpha,beta))
sqrt.sort.inv.gamma.sample <- sqrt(sort.inv.gamma.sample)
conjugate.table<- rbind(conjugate.table,
c( mean(sqrt.sort.inv.gamma.sample),
sqrt(var(sqrt.sort.inv.gamma.sample)),
sqrt.sort.inv.gamma.sample[250],
sqrt.sort.inv.gamma.sample[5000],
sqrt.sort.inv.gamma.sample[9750] ))
Run the code above in your browser using DataLab