Learn R Programming

spBayes (version 0.4-8)

bayesLMConjugate: Simple Bayesian linear model via the Normal/inverse-Gamma conjugate

Description

Given an lm object, the bayesLMConjugate function fits a simple Bayesian linear model with Normal and inverse-Gamma priors.

Usage

bayesLMConjugate(formula, data = parent.frame(), n.samples,
                     beta.prior.mean, beta.prior.precision,
                     prior.shape, prior.rate, ...)

Value

An object of class bayesLMConjugate, which is a list with at least the following tag:

p.beta.tauSq.samples

a coda object of posterior samples for the defined parameters.

Arguments

formula

for a univariate model, this is a symbolic description of the regression model to be fit. See example below.

data

an optional data frame containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which spLM is called.

n.samples

the number of posterior samples to collect.

beta.prior.mean

\(\beta\) multivariate normal mean vector hyperprior.

beta.prior.precision

\(\beta\) multivariate normal precision matrix hyperprior.

prior.shape

\(\tau^2\) inverse-Gamma shape hyperprior.

prior.rate

\(\tau^2\) inverse-Gamma 1/scale hyperprior.

...

currently no additional arguments.

Author

Sudipto Banerjee sudiptob@biostat.umn.edu,
Andrew O. Finley finleya@msu.edu

Examples

Run this code
if (FALSE) {

data(FORMGMT.dat)

n <- nrow(FORMGMT.dat)
p <- 7 ##an intercept and six covariates

n.samples <- 500

## Below we demonstrate the conjugate function in the special case
## with improper priors. The results are the same as for the above,
## up to MC error. 
beta.prior.mean <- rep(0, times=p)
beta.prior.precision <- matrix(0, nrow=p, ncol=p)

prior.shape <- -p/2
prior.rate <- 0

m.1 <-
  bayesLMConjugate(Y ~ X1+X2+X3+X4+X5+X6, data = FORMGMT.dat,
                     n.samples, beta.prior.mean,
                     beta.prior.precision,
                     prior.shape, prior.rate)

summary(m.1$p.beta.tauSq.samples)
}

Run the code above in your browser using DataLab