Skip to content

False Convergence warning

3 messages · Robert Ackerman, Ben Bolker

#
Hi everyone,

I have data from a speed-dating study, where groups of men and women
interacted with each other for five minutes and subsequently provided
ratings of the interaction and their partner.

These are the first lines of my data set:

   GROUPID MaleID FemaleID MF FM Agender AATTRACT

1        1      1        2  1  0       1     3.00

2        1      1        4  1  0       1     3.25

3        1      1        6  1  0       1     6.00

4        1      1        8  1  0       1     3.50

5        1      1       10  1  0       1     3.50

6        1      1        2  0  1      -1     5.00

7        1      3        2  0  1      -1     3.50

8        1      5        2  0  1      -1     5.00

9        1      7        2  0  1      -1     4.75

10       1      9        2  0  1      -1     2.25

11       1      3        2  1  0       1     1.25

12       1      3        4  1  0       1     3.25



Altogether, I have 904 observations (33 speed-dating groups comprised of
3-5 men and women each).

I?m trying to use glmmTMB to get a model with crossed random effects and an
unstructured covariance matrix for the residuals to run. Please note that I
was able to get this model to run in SPSS without problems (estimates of
fixed effects and random effects are also virtually identical). However, I
wanted to use R for its ease of checking multilevel modeling assumptions.

Here is the syntax for the model I tried to run in glmmTMB:

glmmTMB(AATTRACT ~ 1 + Agender+ (0 + MF + FM|GROUPID:MaleID) +

                   (0 + FM + MF|GROUPID:FemaleID)  + us(MF + FM + 0|
GROUPID:MaleID:FemaleID),

                    data = SD_data,  family = gaussian(link = "identity"),
dispformula=~0, REML = FALSE,

                   verbose = TRUE)

I received the following output and error message after running this model:

Formula: AATTRACT ~ 1 + Agender + (0 + MF + FM | GROUPID:MaleID) + (0 +

  FM + MF | GROUPID:FemaleID) + us(0 + MF + FM + 0 | GROUPID:MaleID:FemaleID)

Dispersion:                ~0

Data: SD_data

      AIC       BIC    logLik  df.resid

 2891.436  2944.311 -1434.718       893

Random-effects (co)variances:



Conditional model:

 Groups                  Name Std.Dev.  Corr

 GROUPID:MaleID          MF   0.5572656

                         FM   0.7916470 -0.02

 GROUPID:FemaleID        FM   0.6732786

                         MF   0.7529185 -0.16

 GROUPID:MaleID:FemaleID MF   0.8523621

                         FM   0.9419247 0.26

 Residual                     0.0001221



Number of obs: 904 / Conditional model: GROUPID:MaleID, 120;
GROUPID:FemaleID, 120; GROUPID:MaleID:FemaleID, 452



Fixed Effects:



Conditional model:

(Intercept)      Agender

     3.9048       0.1112

Warning message:

In fitTMB(TMBStruc) :

  Model convergence problem; false convergence (8). See
vignette('troubleshooting')



Because I used verbose = TRUE, I also received the following mgc values
(I?m only including the last few lines here).

mgc: 5.077952e-08

outer mgc:  0.544794

iter: 1  value: -5887.447 mgc: 0.003153025 ustep: 1

iter: 2  value: -5887.447 mgc: 6.546202e-08 ustep: 1

mgc: 9.447453e-08

outer mgc:  0.2579731

iter: 1  value: -5887.346 mgc: 0.003152465 ustep: 1

iter: 2  value: -5887.346 mgc: 5.733777e-08 ustep: 1

mgc: 7.849359e-08

outer mgc:  0.2594169



Does anyone have any insights into what might be going wrong?

Thanks!
Rob
2 days later
#
Some quick points.

* the nlminb "false convergence" error is quite hard to troubleshoot
<https://stackoverflow.com/questions/40039114/r-nlminb-what-does-false-convergence-actually-mean>

* I would normally suggest scaling your variables as a cheap way to
improve robustness, but it looks like your variables are all effectively
binary/scaled anyway?

* the only part of your model that looks unusual/glmmTMB-specific is
dispformula=~0:  I assume you're doing this because otherwise some of
your variance terms are confounded with the residual variance?  You
could try fitting this model in blme::blmer, with the residual std dev
prior fixed to a small non-zero value (the std dev value below is
(.Machine$double.eps)^(0.25)), and see if you get the same results ...

* it should be possible, but isn't presently, to try glmmTMB with an
alternate optimizer (stay tuned) ...
On 2019-05-21 11:07 a.m., Robert Ackerman wrote:
#
Some quick points.

* the nlminb "false convergence" error is quite hard to troubleshoot
<https://stackoverflow.com/questions/40039114/r-nlminb-what-does-false-convergence-actually-mean>

* I would normally suggest scaling your variables as a cheap way to
improve robustness, but it looks like your variables are all effectively
binary/scaled anyway?

* the only part of your model that looks unusual/glmmTMB-specific is
dispformula=~0:  I assume you're doing this because otherwise some of
your variance terms are confounded with the residual variance?  You
could try fitting this model in blme::blmer, with the residual std dev
prior fixed to a small non-zero value (the std dev value below is
(.Machine$double.eps)^(0.25)), and see if you get the same results ...

* it should be possible, but isn't presently, to try glmmTMB with an
alternate optimizer (stay tuned: this is available on a development
branch https://github.com/glmmTMB/glmmTMB/tree/mapArgs at the moment ...)
On 2019-05-21 11:07 a.m., Robert Ackerman wrote: