[R] singular convergence with lmer function i lme4

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Mon Nov 21 13:02:27 CET 2005



Arild Husby wrote:
> Dear R users,
> 
> 
> I am trying to fit a GLMM to the following dataset;
> 
> 
> tab
>    a   b            c
> 1  1 0.6 199320100313
> 2  1 0.8 199427100412
> 3  1 0.8 199427202112
> 4  1 0.2 199428100611
> 5  1 1.0 199428101011
> 6  1 0.8 199428101111
> 7  0 0.8 199527103011
> 8  1 0.6 199527200711
> 9  0 0.8 199527202411
> 10 0 0.6 199529100412
> 11 1 0.2 199626201111
> 12 2 0.8 199627200612
> 13 1 0.4 199628100111
> 14 1 0.8 199628101511
> 15 1 0.4 199726200212
> 16 1 0.2 199726202111
> 17 1 0.6 199727101411
> 18 2 0.6 199727106911
> 19 2 0.6 199728100212
> 20 0 0.4 199820100811
> 21 1 0.8 199826200611
> 22 2 0.6 199827203811
> 23 2 1.0 200038109911
> 24 0 0.6 200126202511
> 25 0 0.4 200226100311
> 26 1 0.6 200226100411
> 27 1 0.4 200226100611
> 28 1 0.4 200226126011
> 29 1 0.4 200226203712
> 30 2 0.6 200227220313
> 
> 
> With the following model;
> 
>   lmer(a~b + (1|c), family=poisson, data=tab),
> 
> What I want to do is to see if number of recruits (a) is dependent on the
> brood sex ratio (b) including brood identity (c) as random factor.
> 
> 
> However, I get the following error message;
> 
> lmer(a~b + (1|c), family=poisson, data=tab)
> Error in devAGQ(PQLpars, 1) : Unable to invert singular factor of downdated
> X'X
> In addition: Warning messages:
> 1: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 2: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 3: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 4: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 5: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 6: optim or nlminb returned message singular convergence (7) 
>  in: LMEopt(x = mer, value = cv) 
> 7: IRLS iterations for PQL did not converge
> 
> 
> I do not understand what causes this error message, all help is highly
> appreciated!
> 
> 
> 
> I am running R version 2.20 on win XPP.
> 
>>version
> 
>          _              
> platform i386-pc-mingw32
> arch     i386           
> os       mingw32        
> system   i386, mingw32  
> status                  
> major    2              
> minor    2.0            
> year     2005           
> month    10             
> day      06             
> svn rev  35749          
> language R  
> 
> 
> lme4 package version: 0.98-1
> Matrix version: 0.98-7
> lattice version: 0.12-11
> 
> 
> 

Is this the entire dataset or just a portion. If the former, then you 
have thirty groups with one observation per group. This is not 
reasonable for fitting GLMM. I would suggest either making the grouping 
variable more broad or collecting more data. Since tab$c looks like 
dates, maybe try:

tab$c2 <- factor(substr(as.character(tab$c), 1, 4))
table(tab$c2)
fit <- lmer(a ~ b + (1 | c2), tab, poisson)

This works, but you still have only one observation for 1993, 2000, and 
2001.

HTH,

--sundar




More information about the R-help mailing list