R: Set up multi-membership grouping terms in 'brms'

mm {brms} | R Documentation

## 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

    ## 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)

    ## End(Not run)

[Package brms version 2.6.0 Index]