multilevel.r2.manual {misty} | R Documentation |
R-Squared Measures for Multilevel and Linear Mixed Effects Models by Rights and Sterba (2019), Manually Inputting Parameter Estimates
Description
This function computes R-squared measures by Rights and Sterba (2019) for multilevel and linear mixed effects models by manually inputting parameter estimates.
Usage
multilevel.r2.manual(data, within = NULL, between = NULL, random = NULL,
gamma.w = NULL, gamma.b = NULL, tau, sigma2,
intercept = TRUE, center = TRUE, digits = 3,
plot = FALSE, gray = FALSE, start = 0.15, end = 0.85,
color = c("#D55E00", "#0072B2", "#CC79A7", "#009E73", "#E69F00"),
write = NULL, append = TRUE, check = TRUE, output = TRUE)
Arguments
data |
a matrix or data frame with the level-1 and level-2 predictors and outcome variable used in the model. |
within |
a character vector with the variable names in |
between |
a character vector with the variable names in |
random |
a character vector with the variable names in |
gamma.w |
a numeric vector of fixed slope estimates for all level-1
predictors, to be entered in the order of the predictors
listed in the argument |
gamma.b |
a numeric vector of the intercept and fixed slope estimates
for all level-2predictors, to be entered in the order of the
predictors listed in the argument |
tau |
a matrix indicating the random effects covariance matrix, the
first row/column denotes the intercept variance and covariances
(if intercept is fixed, set all to 0) and each subsequent
row/column denotes a given random slope's variance and covariances
(to be entered in the order listed in the argument |
sigma2 |
a numeric value indicating the level-1 residual variance. |
intercept |
logical: if |
center |
logical: if |
digits |
an integer value indicating the number of decimal places to be used. |
plot |
logical: if |
gray |
logical: if |
start |
a numeric value between 0 and 1, graphical parameter to specify the gray value at the low end of the palette. |
end |
a numeric value between 0 and 1, graphical parameter to specify the gray value at the high end of the palette. |
color |
a character vector, graphical parameter indicating the color of bars in the bar chart in the following order: Fixed slopes (Within), Fixed slopes (Between), Slope variation (Within), Intercept variation (Between), and Residual (Within). By default, colors from the colorblind-friendly palettes are used. |
write |
a character string naming a text file with file extension
|
append |
logical: if |
check |
logical: if |
output |
logical: if |
Details
A number of R-squared measures for multilevel and linear mixed effects models
have been developed in the methodological literature (see Rights & Sterba, 2018).
R-squared measures by Rights and Sterba (2019) provide an integrative framework
of R-squared measures for multilevel and linear mixed effects models with random
intercepts and/or slopes. Their measures are based on partitioning model implied
variance from a single fitted model, but they provide a full partitioning of
the total outcome variance to one of five specific sources. See the help page
of the multilevel.r2
function for more details.
Value
Returns an object of class misty.object
, which is a list with following
entries:
call |
function call |
type |
type of analysis |
data |
matrix or data frame specified in |
plot |
ggplot2 object for plotting the results |
args |
specification of function arguments |
result |
list with result tables, i.e., |
for the between-cluster R2 measures.
Note
This function is based on a copy of the function r2mlm_manual()
in the
r2mlm package by Mairead Shaw, Jason Rights, Sonya Sterba, and Jessica
Flake.
Author(s)
Jason D. Rights, Sonya K. Sterba, Jessica K. Flake, and Takuya Yanagida
References
Rights, J. D., & Cole, D. A. (2018). Effect size measures for multilevel models in clinical child and adolescent research: New r-squared methods and recommendations. Journal of Clinical Child and Adolescent Psychology, 47, 863-873. https://doi.org/10.1080/15374416.2018.1528550
Rights, J. D., & Sterba, S. K. (2019). Quantifying explained variance in multilevel models: An integrative framework for defining R-squared measures. Psychological Methods, 24, 309-338. https://doi.org/10.1037/met0000184
See Also
multilevel.r2
, multilevel.cor
,
multilevel.descript
, multilevel.icc
,
multilevel.indirect
Examples
## Not run:
# Load misty, lme4, nlme, and ggplot2 package
library(misty)
library(lme4)
# Load data set "Demo.twolevel" in the lavaan package
data("Demo.twolevel", package = "lavaan")
#-------------------------------------------------------------------------------
# Cluster mean centering, center() from the misty package
Demo.twolevel$x2.c <- center(Demo.twolevel$x2, type = "CWC",
cluster = Demo.twolevel$cluster)
# Compute group means, cluster.scores() from the misty package
Demo.twolevel$x2.b <- cluster.scores(Demo.twolevel$x2,
cluster = Demo.twolevel$cluster)
# Estimate random intercept model using the lme4 package
mod1 <- lmer(y1 ~ x2.c + x2.b + w1 + (1| cluster), data = Demo.twolevel,
REML = FALSE, control = lmerControl(optimizer = "bobyqa"))
# Estimate random intercept and slope model using the lme4 package
mod2 <- lmer(y1 ~ x2.c + x2.b + w1 + (1 + x2.c | cluster), data = Demo.twolevel,
REML = FALSE, control = lmerControl(optimizer = "bobyqa"))
#-------------------------------------------------------------------------------
# Example 1: Random intercept model
# Fixed slope estimates
fixef(mod1)
# Random effects variance-covariance matrix
as.data.frame(VarCorr(mod1))
# R-squared measures according to Rights and Sterba (2019)
multilevel.r2.manual(data = Demo.twolevel,
within = "x2.c", between = c("x2.b", "w1"),
gamma.w = 0.41127956,
gamma.b = c(0.01123245, -0.08269374, 0.17688507),
tau = 0.9297401,
sigma2 = 1.813245794)
#-------------------------------------------------------------------------------
# Example 2: Random intercept and slope model
# Fixed slope estimates
fixef(mod2)
# Random effects variance-covariance matrix
as.data.frame(VarCorr(mod2))
# R-squared measures according to Rights and Sterba (2019)
multilevel.r2.manual(data = Demo.twolevel,
within = "x2.c", between = c("x2.b", "w1"), random = "x2.c",
gamma.w = 0.41127956,
gamma.b = c(0.01123245, -0.08269374, 0.17688507),
tau = matrix(c(0.931008649, 0.004110479, 0.004110479, 0.017068857), ncol = 2),
sigma2 = 1.813245794)
## End(Not run)