| runiregGibbs(bayesm) | R Documentation |
runiregGibbs implements a Gibbs Sampler to draw from posterior for univariate regression with a conditionally conjugate prior.
runiregGibbs(Data, Prior, Mcmc)
Data |
list(y,X) |
Prior |
list(betabar,A, nu, ssq) |
Mcmc |
list(sigmasq,R,keep) |
Model: y = Xbeta + e. e ~ N(0,sigmasq).
Priors: beta ~ N(betabar,A^-1). sigmasq ~ (nu*ssq)/chisq_nu. List arguments contain
XybetabarAnussqRkeeplist of MCMC draws
betadraw |
R x k array of betadraws |
sigmasqdraw |
R vector of sigma-sq draws |
Peter Rossi, Graduate School of Business, University of Chicago, Peter.Rossi@ChicagoGsb.edu.
For further discussion, see Bayesian Statistics and Marketing
by Allenby, McCulloch, and Rossi, Chapter 3.
http://gsbwww.uchicago.edu/fac/peter.rossi/research/bsm.html
set.seed(66)
n=100
X=cbind(rep(1,n),runif(n)); beta=c(1,2); sigsq=.25
y=X%*%beta+rnorm(n,sd=sqrt(sigsq))
A=diag(c(.05,.05)); betabar=c(0,0)
nu=3; ssq=1.0
R=1000
Data=list(y=y,X=X); Mcmc=list(R=R,keep=1) ; Prior=list(A=A,betabar=betabar,nu=nu,ssq=ssq)
out=runiregGibbs(Data=Data,Prior=Prior,Mcmc=Mcmc)
cat(" Betadraws ",fill=TRUE)
mat=apply(out$betadraw,2,quantile,probs=c(.01,.05,.5,.95,.99))
mat=rbind(beta,mat); rownames(mat)[1]="beta"; print(mat)
cat(" Sigma-sq draws",fill=TRUE)
cat(" sigma-sq= ",sigsq,fill=TRUE)
print(quantile(out$sigmasqdraw,probs=c(.01,.05,.5,.95,.99)))