Nlme models seem to converge, but `intervals()` throws an error

26 views Asked by At

I have the following two intercept model in nlme:

com_rel_3 <- lme (fixed = relsat ~ -1 + 
                    Mann + Frau +
                    Mann:M_comfort_cw + Mann:F_comfort_cw +
                    Frau:F_comfort_cw + Frau:M_comfort_cw +
                    Mann:M_comfort_cb + Mann:F_comfort_cb +
                    Frau:F_comfort_cb + Frau:M_comfort_cb +
                    
                    Mann:M_intergroup + Mann:F_intergroup +
                    Frau:F_intergroup + Frau:M_intergroup +
                    day_cw +
                    isWeekend,
                  
                  random = ~ -1 + 
                    Mann + Frau +
                    Mann:M_comfort_cw + Mann:F_comfort_cw +
                    Frau:F_comfort_cw + Frau:M_comfort_cw +
                    
                    day_cw +
                    isWeekend
                  
                  | coupleID,
                  method = "ML",
                  weights=varIdent(form = ~1 | gender),
                  corr=corSymm(form = ~1 | coupleID/day),
                  data=relsat_doub,
                  na.action = na.exclude,
                  control = lmeControl(maxIter=500, opt = "optim"))

The model runs without any errors. Additionally if I use check_singularity() from the easystats package it says the model does not have a singular fit.

However, when I try using intervals() on the model, I get an error message saying that the covariance matrix is not positive-definate.

How come nlme and easystats doesn't pick up on the issue but intervals() is? Is this a bug or are different thresholds to blame? If I really drastically reduce the random effects structure, intervals() beginns to work for my models.

Bottom line: Can I report and interpret the model (I can also bootstrap the CIs) or should I reduce the structure until intervals() works?

Thanks!

0

There are 0 answers