Learn R Programming

bayesm (version 2.0-9)

runireg: IID Sampler for Univariate Regression

Description

runireg implements an iid sampler to draw from the posterior of a univariate regression with a conjugate prior.

Usage

runireg(Data, Prior, Mcmc)

Arguments

Data
list(y,X)
Prior
list(betabar,A, nu, ssq)
Mcmc
list(R,keep)

Value

  • list of iid draws
  • betadrawR x k array of betadraws
  • sigmasqdrawR vector of sigma-sq draws

concept

  • bayes
  • regression

Details

Model: $y = Xbeta + e$. $e$ $\sim$ $N(0,sigmasq)$. Priors: $beta$ $\sim$ $N(betabar,sigmasq*A^{-1})$. $sigmasq$ $\sim$ $(nu*ssq)/chisq_{nu}$. List arguments contain
  • X
{n x k Design Matrix} y{n x 1 vector of observations} betabar{k x 1 prior mean (def: 0)} A{k x k prior precision matrix (def: .01I)} nu{ d.f. parm for Inverted Chi-square prior (def: 3)} ssq{ scale parm for Inverted Chi-square prior (def: var(y))} R{ number of draws } keep{ thinning parameter - keep every keepth draw }

References

For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby and McCulloch, Chapter 2. http://faculty.chicagogsb.edu/peter.rossi/research/bsm.html

See Also

runiregGibbs

Examples

Run this code
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=2000} else {R=10}
set.seed(66)
n=200
X=cbind(rep(1,n),runif(n)); beta=c(1,2); sigsq=.25
y=X%*%beta+rnorm(n,sd=sqrt(sigsq))

out=runireg(Data=list(y=y,X=X),Mcmc=list(R=R))
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)))

Run the code above in your browser using DataLab