breg | R Documentation |
breg
makes one draw from the posterior of a univariate regression
(scalar dependent variable) given the error variance = 1.0.
A natural conjugate (normal) prior is used.
breg(y, X, betabar, A)
y |
|
X |
|
betabar |
|
A |
|
model: y = X'\beta + e
with e
\sim
N(0,1)
.
prior: \beta
\sim
N(betabar, A^{-1})
.
k x 1
vector containing a draw from the posterior distribution
This routine is a utility routine that does not check theinput arguments for proper dimensions and type. In particular, X
must be a matrix. If you have a vector for X
, coerce itinto a matrix with one column.
Peter Rossi, Anderson School, UCLA, perossichi@gmail.com.
For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=1000} else {R=10}
## simulate data
set.seed(66)
n = 100
X = cbind(rep(1,n), runif(n)); beta = c(1,2)
y = X %*% beta + rnorm(n)
## set prior
betabar = c(0,0)
A = diag(c(0.05, 0.05))
## make draws from posterior
betadraw = matrix(double(R*2), ncol = 2)
for (rep in 1:R) {betadraw[rep,] = breg(y,X,betabar,A)}
## summarize draws
mat = apply(betadraw, 2, quantile, probs=c(0.01, 0.05, 0.50, 0.95, 0.99))
mat = rbind(beta,mat); rownames(mat)[1] = "beta"
print(mat)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.