Spatial conditional autoregressive (CAR) structures
Set up an spatial conditional autoregressive (CAR) term in brms. The function does not evaluate its arguments – it exists purely to help set up a model with CAR terms.
car(M, gr = NA, type = "escar")
M |
Adjacency matrix of locations. All non-zero entries are treated as
if the two locations are adjacent. If |
gr |
An optional grouping factor mapping observations to spatial locations. If not specified, each observation is treated as a separate location. It is recommended to always specify a grouping factor to allow for handling of new data in post-processing methods. |
type |
Type of the CAR structure. Currently implemented are
|
The escar
and esicar
types are
implemented based on the case study of Max Joseph
(https://github.com/mbjoseph/CARstan). The icar
and
bym2
type is implemented based on the case study of Mitzi Morris
(https://mc-stan.org/users/documentation/case-studies/icar_stan.html).
An object of class 'car_term'
, which is a list
of arguments to be interpreted by the formula
parsing functions of brms.
## Not run: # generate some spatial data east <- north <- 1:10 Grid <- expand.grid(east, north) K <- nrow(Grid) # set up distance and neighbourhood matrices distance <- as.matrix(dist(Grid)) W <- array(0, c(K, K)) W[distance == 1] <- 1 # generate the covariates and response data x1 <- rnorm(K) x2 <- rnorm(K) theta <- rnorm(K, sd = 0.05) phi <- rmulti_normal( 1, mu = rep(0, K), Sigma = 0.4 * exp(-0.1 * distance) ) eta <- x1 + x2 + phi prob <- exp(eta) / (1 + exp(eta)) size <- rep(50, K) y <- rbinom(n = K, size = size, prob = prob) dat <- data.frame(y, size, x1, x2) # fit a CAR model fit <- brm(y | trials(size) ~ x1 + x2 + car(W), data = dat, data2 = list(W = W), family = binomial()) summary(fit) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.