estimate_grouplevel: Group-specific parameters of mixed models random effects

View source: R/estimate_grouplevel.R

estimate_grouplevelR Documentation

Group-specific parameters of mixed models random effects

Description

Extract random parameters of each individual group in the context of mixed models, commonly referred to as BLUPs (Best Linear Unbiased Predictors). Can be reshaped to be of the same dimensions as the original data, which can be useful to add the random effects to the original data.

Usage

estimate_grouplevel(model, type = "random", ...)

reshape_grouplevel(x, indices = "all", group = "all", ...)

Arguments

model

A mixed model with random effects.

type

"random" or "total". If "random" (default), the coefficients correspond to the conditional estimates of the random effects (as they are returned by lme4::ranef()). They typically correspond to the deviation of each individual group from their fixed effect (assuming the random effect is also included as a fixed effect). As such, a coefficient close to 0 means that the participants' effect is the same as the population-level effect (in other words, it is "in the norm"). If "total", it will return the sum of the random effect and its corresponding fixed effects, which internally relies on the coef() method (see ?coef.merMod). Note that type = "total" yet does not return uncertainty indices (such as SE and CI) for models from lme4 or glmmTMB, as the necessary information to compute them is not yet available. However, for Bayesian models, it is possible to compute them.

...

Other arguments passed to or from other methods.

x

The output of estimate_grouplevel().

indices

A list containing the indices to extract (e.g., "Coefficient").

group

A list containing the random factors to select.

Details

Unlike raw group means, BLUPs apply shrinkage: they are a compromise between the group estimate and the population estimate. This improves generalizability and prevents overfitting.

Examples


# lme4 model
data(mtcars)
model <- lme4::lmer(mpg ~ hp + (1 | carb), data = mtcars)
random <- estimate_grouplevel(model)

# Show group-specific effects
random

# Visualize random effects
plot(random)

# Reshape to wide data so that it matches the original dataframe...
reshaped <- reshape_grouplevel(random, indices = c("Coefficient", "SE"))

# ...and can be easily combined with the original data
alldata <- cbind(mtcars, reshaped)

# Use summary() to remove duplicated rows
summary(reshaped)

# overall coefficients
estimate_grouplevel(model, type = "total")


modelbased documentation built on April 12, 2025, 2:22 a.m.