Troubleshooting
Convergence problems and simplifying the random effects structure
It’s common, when variances and covariances are close to zero, that lmer
has
trouble fitting your model. The solution is to simplify complex models, removing
of constraining some random effects.
For example, in an experiment where you have multiple stimuli
and different
experimental condition
s, with many repeated trial
s, you might end up with
data like this:
df %>%
head()
# A tibble: 6 x 5
trial condition block subject RT
<int> <int> <int> <int> <dbl>
1 1 1 1 1 299.
2 2 1 1 1 300.
3 3 1 1 1 300.
4 4 1 1 1 300.
5 5 1 1 1 301.
6 6 1 1 1 301.
Which you could model with lmer
like this:
m1 <- lmer(RT ~ block * trial * condition + (block+condition|subject), data=df)
boundary (singular) fit: see ?isSingular
You can list the random effects from the model using the VarCorr
function:
VarCorr(m1)
Groups Name Std.Dev. Corr
subject (Intercept) 1.12152879
block 0.00052841 1.000
condition 0.00673767 -1.000 -1.000
Residual 1.00551111
As VarCorr
shows, this model estimates:
- random intercepts for
subject
, - random slopes for
trial
andcondition
, and - three covariances between these random effects.
If these covariances are very close to zero though, as is often the case, this can cause convergence issues, especially if insufficient data are available.
If this occurs, you might want to simplify the model. For example, to remove all the covariances between random effects you might rewrite the model this way:
m2 <- lmer(RT ~ block * trial * condition +
(1|subject) +
(0+block|subject) +
(0+condition|subject), data=df)
VarCorr(m2)
To remove only covariances with the intercept:
m3 <- lmer(RT ~ block * trial * condition +
(1|subject) +
(0+block+condition|subject), data=df)
VarCorr(m3)
In general, the recommendation is to try and fit a full random effects structure, and simplify it by removing the least theoretically plausible parameters. See:
This tutorial on mixed models in linguistics: http://www.bodowinter.com/tutorial/bw_LME_tutorial2.pdf
@barr2013random, which recommends you ‘keep it maximal’, meaning that you should keep all random effects terms, including covariances, where this is possible.
See this page for lots more examples of more complex mixed models