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,
      by = NULL,
      cor = TRUE,
      id = NA,
      cov = NULL,
      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`.
`by` | An optional factor matrix, specifying sub-populations of the groups. It should have as many columns as grouping terms specified in `...`. For each level of the `by` variable, a separate variance-covariance matrix will be fitted. Levels of the grouping factor must be nested in levels of the `by` variable matrix.
`cor` | Logical. If `TRUE` (the default), group-level terms will be modelled as correlated.
`id` | Optional character string. All group-level terms across the model with the same `id` will be modeled as correlated (if `cor` is `TRUE`). See `brmsformula` for more details.
`cov` | An optional matrix which is proportional to the withon-group covariance matrix of the group-level effects. All levels of the grouping factor should appear as rownames of the corresponding matrix. This argument can be used, among others, to model pedigrees and phylogenetic effects. See `vignette("brms_phylogenetics")` for more details. By default, levels of the same grouping factor are modeled as independent of each other.
`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.17.0 Index]