Learn R Programming

bayesm (version 3.1-6)

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)

Value

A list containing:

betadraw

\(R x k\) matrix of betadraws

sigmasqdraw

\(R x 1\) vector of sigma-sq draws

Arguments

Data

list(y, X)

Prior

list(betabar, A, nu, ssq)

Mcmc

list(R, keep, nprint)

Author

Peter Rossi, Anderson School, UCLA, perossichi@gmail.com.

Details

Model and Priors

\(y = X\beta + e\) with \(e\) \(\sim\) \(N(0, \sigma^2)\)

\(\beta\) \(\sim\) \(N(betabar, \sigma^2*A^{-1})\)
\(\sigma^2\) \(\sim\) \((nu*ssq)/\chi^2_{nu}\)

Argument Details

Data = list(y, X)

y: \(n x 1\) vector of observations
X: \(n x k\) design matrix

Prior = list(betabar, A, nu, ssq) [optional]

betabar: \(k x 1\) prior mean (def: 0)
A: \(k x k\) prior precision matrix (def: 0.01*I)
nu: d.f. parameter for Inverted Chi-square prior (def: 3)
ssq: scale parameter for Inverted Chi-square prior (def: var(y))

Mcmc = list(R, keep, nprint) [only R required]

R: number of draws
keep: thinning parameter -- keep every keepth draw (def: 1)
nprint: print the estimated time remaining for every nprint'th draw (def: 100, set to 0 for no print)

References

For further discussion, see Chapter 2, Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.

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 = 0.25
y = X%*%beta + rnorm(n,sd=sqrt(sigsq))

out = runireg(Data=list(y=y,X=X), Mcmc=list(R=R))

cat("Summary of beta and Sigmasq draws", fill=TRUE)
summary(out$betadraw, tvalues=beta)
summary(out$sigmasqdraw, tvalues=sigsq)

## plotting examples
if(0){plot(out$betadraw)}

Run the code above in your browser using DataLab