runireg {bayesm} | R Documentation |
runireg
draws from posterior for univariate regression with a natural conjugate prior.
runireg(y, X, betabar, A, nu, ssq)
y |
n x 1 dep var |
X |
n x k Design matrix |
betabar |
prior mean |
A |
k x k pds prior precision matrix |
nu |
d.f. parameter for sigma-sq prior |
ssq |
scale parameter for sigma-sq prior |
Model: y = Xbeta + e. e ~ N(0,sigmasq).
Priors: beta given sigmasq ~ N(betabar,sigmasq*A^{-1}).
sigmasq ~ eqn{(nu*ssq)}/chi^2_{nu}.
a list with one draw from posterior
beta |
beta draw |
sigmasq |
sigmasq draw |
This routine is a utility routine that does not check the input arguments for proper dimensions and type.
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 2.
http://gsbwww.uchicago.edu/fac/peter.rossi/research/bsm.html
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=1000} 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 betadraw=matrix(double(R*2),ncol=2) sigsqdraw=double(R) for (rep in 1:R) {out=runireg(y,X,betabar,A,nu,ssq);betadraw[rep,]=out$beta sigsqdraw[rep]=out$sigmasq} cat(" Betadraws ",fill=TRUE) mat=apply(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(sigsqdraw,probs=c(.01,.05,.5,.95,.99)))