It is difficult to say why the bigger model converges while the
submodels do not. Perhaps the surprising part is why the bigger model
converges rather than why the simpler ones don't given the rather
complicated variance structure in the models.
I don't see how the design can demand a variance structure this
complicated and I would not assume that there is support in the data
for these complicated structures over simpler alternatives. With
models as (computationally) complicated as mixed models I think it is
good advice to start small and build on model structures until
additional structures are no longer supported by the data. This
doesn't mean that the inferential process has to run bottom-up as
well.
In a situation like this I would start with something like
fm1 <- clmm( value.statement ~ preexisting.belief * engagement + (1 |
id) + (1 | item), data=ucl.ordered)
or even simpler in both fixed and random structures if this gives rise
to any problems. Focusing on the random structure, I would expand with
additional _independent_ terms:
fm2 <- clmm( value.statement ~ preexisting.belief * engagement + (1 |
id) + (1 | item) + (1 | id:engagement) + (1 | item:engagement),
data=ucl.ordered)
continue to add terms like (1 | id:preexisting.belief) and (1 |
id:preexisting.belief:engagement) if these terms are necessary or
should be assessed (and if the model remains identifiable). Unless I
need random slopes I very rarely move on to
multivariate/vector-valued/correlated random-effect terms such as
'(engagement | item)', but some feel that such terms make a lot of
sense. But if you do want, vector-valued random effects, my suggestion
is to look at how much support the data offers for such structures (in
my experience they are usually not supported). For instance you could
compare (focusing on random structures for item):
fm3 <- clmm( value.statement ~ preexisting.belief * engagement + (1 |
item) + (1 | item:engagement) + (1 | id), data=ucl.ordered)
fm4 <- clmm( value.statement ~ preexisting.belief * engagement +
(engagement | item) + (1 | id), data=ucl.ordered)
fm1, fm3 and fm4 represents increasingly more complex random-effect
structures for item and my advice is to not work with models which are
more complex than what the data can reasonably support. In practice
this means that if I fit fm1 and fm3 and run anova(fm3, fm1) and the
p-value is not small-ish, I stick with fm1. If, instead there is
support for fm3 over fm1 it can make sense to move on to consider fm4.
Finally, let me digress momentarily on what fm3 and fm4 means:
Scientifically fm3 represents a random interaction between item and
engagement which means that random effects for item depend on the
level of engagement. This is classical design-of-experiments line of
thinking and a reasonable thing to consider. fm4 represents a
particular interaction between engagement and item in which the
_variance_ of the random effects for item (in addition to the
random-effects for item themselves) depend on the level of engagement,
but is there are particular scientific reason why the item-level
_variance_ should depend on engagement?
Hope this helps
Rune
On 26 February 2018 at 15:07, OZOLS Davis via R-sig-mixed-models
<r-sig-mixed-models at r-project.org> wrote:
Dear list,
I have a question with regards to model convergence in CLMM function
that is implemented in the Ordinal package. More specifically what might
cause the error: "optimizer nlminb failed to converge message" in the
CLMM function that I am getting.
I am new to mixed model analysis so I will try to explain all the steps
I have taken in case there might be something wrong in my approach to
the analysis.
I have data set of 2200 observations with 6 variables: 115
participants, 24 items and a design that has as a response variable an
ordered scale from 1 to 10.
id item value.statement quant preexisting.belief engagement
1 R_ysTGuC676siU2Pf I1 3 Baseline low
high
2 R_ysTGuC676siU2Pf I2 2 Baseline low
high
3 R_ysTGuC676siU2Pf I26 2 Most low
high
4 R_ysTGuC676siU2Pf I40 3 Every low
high
5 R_ysTGuC676siU2Pf I4 7 Baseline undecided
high
6 R_ysTGuC676siU2Pf I10 4 Baseline undecided
low
I investigate the interaction of three factors on the response variable:
quant(4 levels)* preexisting.belief(3 levels)* engagement(2 levels)
this is the summary of my data:
'data.frame': 2200 obs. of 6 variables:
$ id : Factor w/ 115 levels
$ item : Factor w/ 24 levels
$ value.statement : Ord.factor w/ 10 levels
$ quant : Factor w/ 4 levels
$ preexisting.belief : Factor w/ 3 levels
$ engagement : Factor w/ 2 levels
I plan to do my analysis by fitting four clmm models with random
intercept and random slope structures for both participants and items. I
choose the exact random effect structure based on theoretical
assumptions in my hypothesis as well as backward model selection
criterion discussed by Matuschek, Kliegel, Vasishth, Baayen & Bates
(2017) and Barr, Levy, Scheepers & Tily (2013). Due to the complexity of
my design it is not possible to fit the full three way interaction as a
random slope so I choose (1 + preexisting.belief*engagement |id) for
participants and (1 + engagement |item) for items - the choice is
motivated by theoretical assumptions as well as comparison of various
random effect models (with full interaction in fixed effects) using the
anova() function. I then proceed to fit the four clmm models to test my
fixed effects, starting with the null model and then adding all the
interaction terms in a step wise fashion.
While the more complex models like model 2 and 3 are able to converge:
cm.2 <- clmm(value.statement~preexisting.belief*engagement +
+ (1 + preexisting.belief*engagement |id) + (1 +
engagement |item),
+ data = ucl.ordered, Hess = TRUE)
running the summary() function gives me:
max.grad = 9.78e-03 and cond.H = 2.3e+04
cm.3 <- clmm(value.statement~quant*preexisting.belief*engagement +
+ (1 + preexisting.belief*engagement |id) + (1 +
engagement |item),
+ data = ucl.ordered, Hess = TRUE)
running the summary() function gives me:
max.grad = 1.28e-01 and cond.H = 1.7e+04
I find that the simpler model and even the null model show failures to
converge:
cm.null <- clmm(value.statement~1 +
+ (1 + preexisting.belief*engagement |id) + (1 +
engagement |item),
+ data = ucl.ordered, Hess = TRUE)
Error: optimizer nlminb failed to converge
cm.1 <- clmm(value.statement~quant +
+ (1 + preexisting.belief*engagement |id) + (1 +
engagement |item),
+ data = ucl.ordered, Hess = TRUE)
Error: optimizer nlminb failed to converge
I have tried looking for potential solutions to this on the r-sig-mm
list as well as other online resources and have tried some suggestions.
Using the "ucminf" optimizer does not work and produces error message:
"cannot use ucminf optimizer for this model, using nlminb instead". I
have tried changing the maxIter and maxLineIter parameters under
clmm.control to 200 and that has also resulted in no improvement. I am
puzzled by the fact that the error persists only for the simpler models.
My first guess was that the complexity of my design is too much for clmm
to handle with only 2200 observations, however, if that were the case
wouldn't models 3 and 4 also fail to converge?
I would greatly appreciate any help on these errors. I am also happy to
share the full data (in private correspondence) if that might be of help
here.
Thank you in advance,
Davis Ozols
PhD Student,
University of Fribourg
CH-1700 Fribourg, Switzerland
Tel: +41 26 300 79 09
Fax: +41 26 300 97 87
[[alternative HTML version deleted]]