These function are deprecated. Please see car
for the new
syntax. These functions are constructors for the cor_car
class
implementing spatial conditional autoregressive structures.
cor_car(W, formula = ~1, type = "escar")
cor_icar(W, formula = ~1)
Adjacency matrix of locations.
All non-zero entries are treated as if the two locations
are adjacent. If formula
contains a grouping factor,
the row names of W
have to match the levels
of the grouping factor.
An optional one-sided formula of the form
~ 1 | g
, where g
is a 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 of the CAR structure. Currently implemented
are "escar"
(exact sparse CAR), "esicar"
(exact sparse intrinsic CAR), "icar"
(intrinsic CAR),
and "bym2"
. More information is provided in the 'Details' section.
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).
if (FALSE) {
# 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, data = dat,
family = binomial(), autocor = cor_car(W))
summary(fit)
}