Learn R Programming

sjstats (version 0.14.3)

converge_ok: Convergence test for mixed effects models

Description

converge_ok() provides an alternative convergence test for merMod-objects; is_singular() checks post-fitting convergence warnings. If the model fit is singular, warning about negative eigenvalues of the Hessian can most likely be ignored.

Usage

converge_ok(x, tolerance = 0.001)

is_singular(x, tolerance = 1e-05)

Arguments

x

A merMod-object. For is_singluar(), may also be a glmmTMB-object.

tolerance

Indicates up to which value the convergence result is accepted. The smaller tolerance is, the stricter the test will be.

Value

For converge_ok(), a logical vector, which is TRUE if convergence is fine and FALSE if convergence is suspicious. Additionally, the convergence value is returned as return value's name. is_singluar() returns TRUE if the model fit is singular.

Details

converge_ok() provides an alternative convergence test for merMod-objects, as discussed here and suggested by Ben Bolker in this comment.

is_singular() checks if a model fit is singular, and can be used in case of post-fitting convergence warnings, such as warnings about negative eigenvalues of the Hessian. If the fit is singular (i.e. is_singular() returns TRUE), these warnings can most likely be ignored.

Examples

Run this code
# NOT RUN {
library(sjmisc)
library(lme4)
data(efc)
# create binary response
efc$hi_qol <- dicho(efc$quol_5)
# prepare group variable
efc$grp = as.factor(efc$e15relat)
# data frame for fitted model
mydf <- data.frame(hi_qol = as.factor(efc$hi_qol),
                   sex = as.factor(efc$c161sex),
                   c12hour = as.numeric(efc$c12hour),
                   neg_c_7 = as.numeric(efc$neg_c_7),
                   grp = efc$grp)
# fit glmer
fit <- glmer(hi_qol ~ sex + c12hour + neg_c_7 + (1|grp),
             data = mydf, family = binomial("logit"))

converge_ok(fit)

# }

Run the code above in your browser using DataLab