Learn R Programming

brms (version 1.10.2)

cor_car: Spatial conditional autoregressive (CAR) structures

Description

These functions are constructors for the cor_car class implementing spatial conditional autoregressive structures.

Usage

cor_car(W, formula = ~1, type = c("escar", "esicar"))

cor_icar(W, formula = ~1)

Arguments

W

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 matche the levels of the grouping factor.

formula

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

Type of the CAR structure. Currenlty implemented are "escar" (exact sparse CAR) and "esicar" (exact sparse intrinsic CAR). More information is provided in the 'Details' section.

Details

The escar and esicar types are implemented based on the case study of Max Joseph (https://github.com/mbjoseph/CARstan), who deserves credit for helping to make CAR structures possible in brms.

Examples

Run this code
# 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, data = dat, 
           family = binomial(), autocor = cor_car(W)) 
summary(fit)
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab