bayes.lm {Bolstad} | R Documentation |

## Bayesian inference for multiple linear regression

### Description

bayes.lm is used to fit linear models in the Bayesian paradigm. It can be used to carry out regression, single stratum analysis of variance and analysis of covariance (although these are not tested). This documentation is shamelessly adapated from the lm documentation

### Usage

```
bayes.lm(
formula,
data,
subset,
na.action,
model = TRUE,
x = FALSE,
y = FALSE,
center = TRUE,
prior = NULL,
sigma = FALSE
)
```

### Arguments

`formula` |
an object of class |

`data` |
an optional data frame, list or environment (or object coercible by |

`subset` |
an optional vector specifying a subset of observations to be used in the fitting process. |

`na.action` |
a function which indicates what should happen when the data contain |

`model` , `x` , `y` |
logicals. If |

`center` |
logical or numeric. If |

`prior` |
A list containing b0 (A vector of prior coefficients) and V0 (A prior covariance matrix) |

`sigma` |
the population standard deviation of the errors. If |

### Details

Models for `bayes.lm`

are specified symbolically. A typical model has the form
`response ~ terms`

where `response`

is the (numeric) response vector and `terms`

is a
series of terms which specifies a linear predictor for `response`

. A terms specification of the
form `first + second`

indicates all the terms in `first`

together with all the terms in
`second`

with duplicates removed. A specification of the form `first:second`

indicates the
set of terms obtained by taking the interactions of all terms in `first`

with all terms in
`second`

. The specification `first*second`

indicates the cross of `first`

and `second`

.
This is the same as `first + second + first:second`

.

See `model.matrix`

for some further details. The terms in the formula will be
re-ordered so that main effects come first, followed by the interactions, all second-order,
all third-order and so on: to avoid this pass a `terms`

object as the formula
(see `aov`

and `demo(glm.vr)`

for an example).

A formula has an implied intercept term. To remove this use either `y ~ x - 1`

or
`y ~ 0 + x`

. See `formula`

for more details of allowed formulae.

`bayes.lm`

calls the lower level function `lm.fit`

to get the maximum likelihood estimates
see below, for the actual numerical computations. For programming only, you may consider doing
likewise.

`subset`

is evaluated in the same way as variables in formula, that is first in data and
then in the environment of formula.

### Value

`bayes.lm`

returns an object of class `Bolstad`

.
The `summary`

function is used to obtain and print a summary of the results much like the usual
summary from a linear regression using `lm`

.
The generic accessor functions `coef, fitted.values and residuals`

extract various useful features of the value returned by `bayes.lm`

. Note that the residuals
are computed at the posterior mean values of the coefficients.

An object of class "Bolstad" from this function is a list containing at least the following components:

`coefficients` |
a named vector of coefficients which contains the posterior mean |

`post.var` |
a matrix containing the posterior variance-covariance matrix of the coefficients |

`post.sd` |
sigma |

`residuals` |
the residuals, that is response minus fitted values (computed at the posterior mean) |

`fitted.values` |
the fitted mean values (computed at the posterior mean) |

`df.residual` |
the residual degrees of freedom |

`call` |
the matched call |

`terms` |
the |

`y` |
if requested, the response used |

`x` |
if requested, the model matrix used |

`model` |
if requested (the default), the model frame used |

`na.action` |
(where relevant) information returned by |

### Examples

```
data(bears)
bears = subset(bears, Obs.No==1)
bears = bears[,-c(1,2,3,11,12)]
bears = bears[ ,c(7, 1:6)]
bears$Sex = bears$Sex - 1
log.bears = data.frame(log.Weight = log(bears$Weight), bears[,2:7])
b0 = rep(0, 7)
V0 = diag(rep(1e6,7))
fit = bayes.lm(log(Weight)~Sex+Head.L+Head.W+Neck.G+Length+Chest.G, data = bears,
prior = list(b0 = b0, V0 = V0))
summary(fit)
print(fit)
## Dobson (1990) Page 9: Plant Weight Data:
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
bayes.D9 <- bayes.lm(weight ~ group)
summary(lm.D9)
summary(bayes.D9)
```

*Bolstad*version 0.2-41 Index]