Calculate conditional and marginal coefficient of determination for
Generalized mixed-effect models (
r.squaredGLMM(object, null, ...)
# S3 method for merMod
r.squaredGLMM(object, null, envir = parent.frame(), pj2014 = FALSE, ...)
r.squaredGLMM
returns a two-column numeric matrix
, each (possibly
named) row holding values for marginal and conditional
calculated with different methods, such as “delta”,
“log-normal”, “trigamma”, or “theoretical” for models
of binomial
family.
a fitted linear model object.
optionally, a null model, including only random effects. See ‘Details’.
optionally, the environment
in which the null model is to be evaluated.
Defaults to the current frame. See eval
.
logical, if TRUE
and object
is of poisson
family, the result will include object
with an observation-level
random effect term added.
additional arguments, ignored.
Kamil Bartoń. This implementation is based on R code from ‘Supporting Information’ for Nakagawa et al. (2014), (the extension for random-slopes) Johnson (2014), and includes developments from Nakagawa et al. (2017).
There are two types of
Marginal
Conditional
where
Three methods are available for deriving the observation-level variance
The delta method can be used with for all distributions and link functions, while lognormal approximation and trigamma function are limited to distributions with logarithmic link. Trigamma-estimate is recommended whenever available. Additionally, for binomial distributions, theoretical variances exist specific for each link function distribution.
Null model. Calculation of the observation-level variance involves in
some cases fitting a null model containing no fixed effects other than
intercept, otherwise identical to the original model (including all the random
effects). When using r.squaredGLMM
for several models differing only in
their fixed effects, in order to avoid redundant calculations, the null model
object can be passed as the argument null
.
Otherwise, a null model will be fitted via updating the original model.
This assumes that all the variables used in the original model call have the
same values as when the model was fitted. The function warns about this when
fitting the null model is required. This warnings can be disabled by setting
options(MuMIn.noUpdateWarning = TRUE)
.
Nakagawa, S., Schielzeth, H. 2013 A general and simple method for obtaining
Johnson, P. C. D. 2014 Extension of Nakagawa & Schielzeth’s
Nakagawa, S., Johnson, P. C. D., Schielzeth, H. 2017 The coefficient of
determination
summary.lm
, r.squaredLR
r2
from package performance calculates
if(require(nlme)) {
data(Orthodont, package = "nlme")
fm1 <- lme(distance ~ Sex * age, ~ 1 | Subject, data = Orthodont)
fmnull <- lme(distance ~ 1, ~ 1 | Subject, data = Orthodont)
r.squaredGLMM(fm1)
r.squaredGLMM(fm1, fmnull)
r.squaredGLMM(update(fm1, . ~ Sex), fmnull)
r.squaredLR(fm1)
r.squaredLR(fm1, null.RE = TRUE)
r.squaredLR(fm1, fmnull) # same result
if (FALSE) {
if(require(MASS)) {
fm <- glmmPQL(y ~ trt + I(week > 2), random = ~ 1 | ID,
family = binomial, data = bacteria, verbose = FALSE)
fmnull <- update(fm, . ~ 1)
r.squaredGLMM(fm)
# Include R2GLMM (delta method estimates) in a model selection table:
# Note the use of a common null model
dredge(fm, extra = list(R2 = function(x) r.squaredGLMM(x, fmnull)["delta", ]))
}
}
}
Run the code above in your browser using DataLab