multilevelR2: Calculate R-squared measures for multilevel models

View source: R/multilevelR2.R

multilevelR2R Documentation

Calculate R-squared measures for multilevel models


Calculates several measures for the proportion of explained variance in a fitted linear mixed-effects or multilevel model (or a list of fitted models).


multilevelR2(model, print = c("RB1", "RB2", "SB", "MVP"))



Either a fitted linear mixed-effects model as produced by lme4 or nlme, or a list of fitted models as produced by with.mitml.list.


A character vector denoting which measures should be calculated (see details). Default is to printing all measures.


This function calculates several measures of explained variance (R^2) for linear-mixed effects models. It can be used with a single model, as produced by the packages lme4 or nlme, or a list of fitted models produced by with.mitml.list. In the latter case, the R^2 measures are calculated separately for each imputed data set and then averaged across data sets.

Different R^2 measures can be requested using the print argument. Specifying RB1 and RB2 returns the explained variance at level 1 and level 2, respectively, according to Raudenbush and Bryk (2002, pp. 74 and 79). Specifying SB returns the total variance explained according to Snijders and Bosker (2012, p. 112). Specifying MVP returns the total variance explained based on “multilevel variance partitioning” as proposed by LaHuis, Hartman, Hakoyama, and Clark (2014).


A numeric vector containing the R^2 measures requested in print.


Calculating R^2 measures is currently only supported for two-level models with a single cluster variable.


Simon Grund


LaHuis, D. M., Hartman, M. J., Hakoyama, S., & Clark, P. C. (2014). Explained variance measures for multilevel models. Organizational Research Methods, 17, 433-451.

Raudenbush, S. W., & Bryk, A. S. (2002). Hierarchical linear models: Applications and data analysis methods (2nd ed.). Thousand Oaks, CA: Sage.

Snijders, T. A. B., & Bosker, R. J. (2012). Multilevel analysis: An introduction to basic and advanced multilevel modeling. Thousand Oaks, CA: Sage.



fml <- MathAchiev + ReadAchiev + CognAbility ~ 1 + (1|ID)
imp <- panImpute(studentratings, formula = fml, n.burn = 1000, n.iter = 100, m = 5)

implist <- mitmlComplete(imp)

fit <- with(implist, lmer(MathAchiev ~ 1 + CognAbility + (1|ID)))

mitml documentation built on March 31, 2023, 7:01 p.m.