brms (version 2.9.0)

mm: Set up multi-membership grouping terms in brms

Description

Function to set up a multi-membership grouping term in brms. The function does not evaluate its arguments -- it exists purely to help set up a model with grouping terms.

Usage

mm(..., weights = NULL, scale = TRUE, dist = "gaussian")

Arguments

...

One or more terms containing grouping factors.

weights

A matrix specifying the weights of each member. It should have as many columns as grouping terms specified in .... If NULL (the default), equally weights are used.

scale

Logical; if TRUE (the default), weights are standardized in order to sum to one per row. If negative weights are specified, scale needs to be set to FALSE.

dist

Name of the distribution of the group-level effects. Currently "gaussian" is the only option.

See Also

brmsformula, mmc

Examples

Run this code
# NOT RUN {
# simulate some data
dat <- data.frame(
 y = rnorm(100), x1 = rnorm(100), x2 = rnorm(100),
 g1 = sample(1:10, 100, TRUE), g2 = sample(1:10, 100, TRUE)
)

# multi-membership model with two members per group and equal weights
fit1 <- brm(y ~ x1 + (1|mm(g1, g2)), data = dat)
summary(fit1)

# weight the first member two times for than the second member
dat$w1 <- rep(2, 100)
dat$w2 <- rep(1, 100)
fit2 <- brm(y ~ x1 + (1|mm(g1, g2, weights = cbind(w1, w2))), data = dat)
summary(fit2)

# multi-membership model with level specific covariate values
dat$xc <- (dat$x1 + dat$x2) / 2
fit3 <- brm(y ~ xc + (1 + mmc(x1, x2) | mm(g1, g2)), data = dat)
summary(fit3)
# }
# NOT RUN {
  
# }

Run the code above in your browser using DataCamp Workspace