Compute indices of model performance for mixed models.
Usage
# S3 method for class 'merMod'
model_performance(
model,
metrics = "all",
estimator = "REML",
verbose = TRUE,
null_model = NULL,
...
)Arguments
- model
A mixed effects model.
- metrics
Can be
"all","common"or a character vector of metrics to be computed (some ofc("AIC", "AICc", "BIC", "R2", "ICC", "RMSE", "SIGMA", "LOGLOSS", "SCORE"))."common"will compute AIC, BIC, R2, ICC and RMSE.- estimator
Only for linear models. Corresponds to the different estimators for the standard deviation of the errors. If
estimator = "ML"(default, except forperformance_aic()when the model object is of classlmerMod), the scaling is done byn(the biased ML estimator), which is then equivalent to usingAIC(logLik()). Setting it to"REML"will give the same results asAIC(logLik(..., REML = TRUE)).- verbose
Toggle warnings and messages.
- null_model
Optional, a null model to compute the random effect variances, which is passed to
insight::get_variance(). Usually only required if calculation of r-squared or ICC fails whennull_modelis not specified. If calculating the null model takes longer and you already have fit the null model, you can pass it here, too, to speed up the process.- ...
Arguments passed to or from other methods.
Details
Intraclass Correlation Coefficient (ICC)
This method returns the adjusted ICC only, as this is typically of
interest when judging the variance attributed to the random effects part of
the model (see also icc()).
Null model
For non-Gaussian mixed models, both R2 and ICC need the null model. When
both are requested, the null model is fitted only once and used for both
indices. A null model that was already fitted can be passed via
null_model, so that it is not fitted at all.
REML versus ML estimator
The default behaviour of model_performance() when computing AIC or BIC of
linear mixed model from package lme4 is the same as for AIC() or
BIC() (i.e. estimator = "REML"). However, for model comparison using
compare_performance() sets estimator = "ML" by default, because
comparing information criteria based on REML fits is usually not valid
(unless all models have the same fixed effects). Thus, make sure to set
the correct estimator-value when looking at fit-indices or comparing model
fits.
Other performance indices
Furthermore, see 'Details' in model_performance.lm() for more details
on returned indices.
Examples
model <- lme4::lmer(Petal.Length ~ Sepal.Length + (1 | Species), data = iris)
model_performance(model)
#> # Indices of model performance
#>
#> AIC | AICc | BIC | R2 (cond.) | R2 (marg.) | ICC | RMSE | Sigma
#> --------------------------------------------------------------------
#> 77.3 | 77.6 | 89.4 | 0.972 | 0.096 | 0.969 | 0.279 | 0.283
