[R-sig-ME] Convergence Problems with glmer.nb model

Aoibheann Gaughran gaughra at tcd.ie
Mon Apr 25 14:08:49 CEST 2016


On 25 April 2016 at 13:00, Aoibheann Gaughran <gaughra at tcd.ie> wrote:

> Good morning,
>
> First time posting so I hope I am including all of the relevant
> information.
>
> I am attempting to analyse the foraging behaviour of a animal in an
> agricultural landscape. The objective is to identify the factors (habitat
> type, environmental variables and animal-specific variables) that best
> predict foraging site preference. Some fields are preferred while others
> are avoided.
>
> The response variable is count data - the number of times a given animal
> was in a given field in a given month. An animal's home range varies from
> month to month, so the area available to it and the fields that fall within
> its home range change somewhat every month. The count data shows an
> overdispersed, negative binomial distribution, and is zero inflated as
> fields that fell within the home range where the animal had *not *foraged
> in that month are also included in the dataset. The individual animal is
> specified as a random variable to account for pseudoreplication.
>
> It should be noted that at the moment I am attempting to run a the model
> on a subset of the data (n=671) as I had attempted to run the model on the
> full dataset (n=62,000) but three days later the model (which included
> interaction terms at this point) had still failed to run, and when stopped,
> R gave me a multitude of convergence warning messages e.g.
>
> 13: In (function (fn, par, lower = rep.int(-Inf, n), upper = rep.int(Inf,
> ... :
>   failure to converge in 10000 evaluations
>
> Simpler iterations of the model, with fewer explanatory terms, and no
> interaction terms, also gave me convergence and some scaling warnings,
> which I sought to address using:
>
> control=glmerControl(optCtrl=list(maxfun=20000)
>
> and by scaling the numeric variables age, slope and aspect as follows:-
>
> dframe1$agescale <- scale(dframe1$age, center = TRUE, scale = FALSE)
> dframe1$slopescale <- scale(dframe1$slope, center = TRUE, scale = FALSE)
> dframe1$aspectscale <- scale(dframe1$aspect, center = TRUE, scale = FALSE)
>
> Currently, the model looks like this:
>
> > model1 <- glmer.nb(field_count ~ habitat +                    + sex+                    + agescale+                    #+ mon+                    + soil+                    + slopescale+                    + aspectscale+                    + offset(log(origarea)) #take into account field size +                    +(1|animal),+                    control=glmerControl(optCtrl=list(maxfun=20000)),+                    data = dframe1)
>
> There were 24 warnings (use warnings() to see them)
> > warnings()Warning messages:
> 1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  ... :
>   Model is nearly unidentifiable: very large eigenvalue
>  - Rescale variables?;Model is nearly unidentifiable: large eigenvalue ratio
>  - Rescale variables?
> 2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  ... :
>   Model failed to converge with max|grad| = 0.0134799 (tol = 0.001, component 1)
> 3: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  ... :
>   Model failed to converge with max|grad| = 0.148644 (tol = 0.001, component 1)
> 4: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  ... :
>   Model is nearly unidentifiable: large eigenvalue ratio
>  - Rescale variables?
>
> etc.
>
> So the model still fails to converge despite rescaling and altering the
> number of iterations. I had also received the following error in relation
> to month (in the reduced dataset there are only *four *months), so Ive
> had to exclude it for the time being. I am not sure why I am getting this
> error since the factor has four levels.
>
> Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
> contrasts can be applied only to factors with 2 or more levels
>
> I do eventually want to include interaction terms as previous analysis on
> ranging behaviour suggests there is an interaction between age and sex.
>
> Summary of dataset attached.  Also attached is the .csv file containing
> the reduced dataset.
>
> I have read various suggestions online and have come across the following
> worrying line "It's perfectly possible that your data is insufficient to
> support the complexity of the model or the model is incorrectly constructed
> for the design of the study".
>
> I would greatly appreciate any help you could give me with understanding
> and solving the problems I am encountering with my model.
>
> Kind regards,
>
> --
> Aoibheann Gaughran
>
> Behavioural and Evolutionary Ecology Research Group
> Zoology Building
> School of Natural Sciences
> Trinity College Dublin
> Dublin 2
> Ireland
> Phone: +353 (86) 3812615
>



-- 
Aoibheann Gaughran

Behavioural and Evolutionary Ecology Research Group
Zoology Building
School of Natural Sciences
Trinity College Dublin
Dublin 2
Ireland
Phone: +353 (86) 3812615


More information about the R-sig-mixed-models mailing list