[R-sig-ME] boundary (singular) fit and failure to converge
Ben Bolker
bbo|ker @end|ng |rom gm@||@com
Tue Sep 13 17:01:43 CEST 2022
On 2022-09-13 10:25 a.m., Rafael Lima Oliveira wrote:
> Dear mailing list at R-sig-mixed-models,
>
>
>
> I have a dataset of environmental variables (salinity, temperature, pH,
> dissolved oxygen, turbidity and depth) as predictors and as response
> variables fish species richness.
>
>
>
> Initially, I ran a Poisson-GLMM and this is my model:
>
>
>
> poissonmodel<- glmer(Richness~ Salinity*Locality + Temperature*Locality +
> pH*Locality + DO*Locality + Turbidity*Locality + Depth*Locality + (1
> |Month) + (1|Locality/Site), family="poisson", data = dados)
>
>
>
> Warning message:
>
> In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
>
> Model failed to converge with max|grad| = 0.00485978 (tol = 0.002,
> component 1)
>
>
>
> The random-effect variances being estimated as zero (or close to 0)
> indicates that my model should be simplified? Should I remove the random
> effects terms without substantial loss of fidelity to the data?
If you remove a term whose variance is estimated as zero, you're not
losing *any* fidelity to the data ... in general, the recommendation is
that terms that are fitted as singular probably indicate an
overfitted/overly complex model (see e.g. Barr et al 2013 "Keep it
maximal", Matuschek et al 2017 "Balancing Type I error" -- both agree
that singular terms can be removed)
>
>
>
> The Random structure that I created in my model account for my nested
> design, where: (1 |Month) account for temporal variability of my dataset
> collected monthly during 1 year and (1|Locality/Site) where indicated that,
> spatially my data are nested, in this case "Site" nested in "Locality".
>
>
>
> Overdispersion test to Poisson model indicated a dispersion rate of 1.632.
> Once overdispersion is detected, I’m refitting my model with negative
> binomial distribution (function “glmer.nb) and variance of the random
> effects also was close to 0.
>
>
>
> *This is my negative binomial model:*
>
>
>
> binomialmodel<- glmer.nb(Richness~ Locality + Salinity*Locality +
> Temperature*Locality + pH*Locality + DO*Locality + Turbidity*Locality +
> Depth*Locality + (1 |Month) + (1|Locality/Site), data = dados)
>
>
>
> After run my model some warnings appeared:
>
>
>
> *- boundary (singular) fit: see help('isSingular')*
>
>
>
> and two warnings about Convergence:
>
>
>
> *1:* In optTheta(g1, interval = interval, tol = tol, verbose = verbose,
> failure to converge in 10000 evaluations
>
> *2:* In optTheta(g1, interval = interval, tol = tol, verbose = verbose, :
> convergence code 4 from Nelder_Mead: failure to converge in 10000
> evaluations
>
>
You should definitely increase the number of function evaluations.
(Not sure why this is using Nelder-Mead, which is usually *not* the most
robust of the available options ... ?)
You could also try glmmTMB, which is a bit faster/more robust when
fitting negative binomial models.
>
> The random effects that I specified in my model are not really needed? If I
> remove the random effects, can I change the GLMM approach to GLM approach?
If *all* of your REs have variance zero then yes, you probably won't
lose anything by dropping back from GLMMs to GLMs.
>
>
>
> If anybody has any tips on this please give me a hand.
>
> Hope you can understand it.
>
>
>
> With many thanks and kind regards,
>
>
>
> Rafael
>
--
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Director, School of Computational Science and Engineering
(Acting) Graduate chair, Mathematics & Statistics
> E-mail is sent at my convenience; I don't expect replies outside of
working hours.
More information about the R-sig-mixed-models
mailing list