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
X
y
betabar
A
nu
ssq
R
keep
list 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
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=2000} else {R=10} 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 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)))