[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