I use lmer to fit a mixed effect model.It give some warnings.what does this warnings mean? and what should I do?> (fm2.mlm <- lmer(qd ~ edu + jiankang + peixun +hunyin + cadcj + age + age2 + sex + dangyuan + Comp.1 + Comp.2+trust.cz1 +(trust.cz1|commid), data = individual,na.action = "na.exclude",family="quasibinomial"))Generalized linear mixed model fit using PQL Formula: qd ~ edu + jiankang + peixun + hunyin + cadcj + age + age2 + sex + dangyuan + Comp.1 + Comp.2 + trust.cz1 + (trust.cz1 | commid) Data: individual Family: quasibinomial(logit link) AIC BIC logLik deviance 736.7059 821.8267 -349.3529 698.7059 Random effects: Groups Name Variance Std.Dev. Corr commid (Intercept) 1.56413 1.25065 trust.cz1 0.17922 0.42334 1.000 Residual 0.89728 0.94725 # of obs: 652, groups: commid, 39 Fixed effects: Estimate Std. Error DF t value Pr(>|t|) (Intercept) -1.6115e-01 6.7997e-01 637 -0.2370 0.81274 edu -5.2585e-02 4.1048e-02 637 -1.2810 0.20064 jiankang -9.8243e-01 4.4645e-01 637 -2.2005 0.02813 * peixun -4.6307e-01 2.6397e-01 637 -1.7542 0.07988 . hunyin -1.2255e-02 2.8151e-01 637 -0.0435 0.96529 hunyin -2.7726e-01 1.3846e+00 637 -0.2002 0.84136 hunyin -2.9759e-01 8.7180e-01 637 -0.3414 0.73295 cadcj 2.2366e-01 7.6467e-01 637 0.2925 0.77000 age 9.3626e-02 4.0390e-02 637 2.3180 0.02076 * age2 -1.3095e-03 5.5104e-04 637 -2.3763 0.01778 * sex 3.9188e-01 1.9759e-01 637 1.9833 0.04776 * dangyuan -5.2558e-01 5.9091e-01 637 -0.8894 0.37410 Comp.1 5.2463e-02 1.0309e-01 637 0.5089 0.61100 Comp.2 -1.5048e-01 1.1435e-01 637 -1.3160 0.18863 trust.cz1 -8.0709e-01 4.4632e-01 637 -1.8083 0.07103 . --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 There were 11 warnings (use warnings() to see them)> warnings()Warning messages: 1: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 2: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 3: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 4: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 5: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 6: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 7: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 8: optim or nlminb returned message false convergence (8) in: LMEopt(x = mer, value = cv) 9: optim or nlminb returned message singular convergence (7) in: LMEopt(x = mer, value = cv) 10: optim or nlminb returned message singular convergence (7) in: LMEopt(x = mer, value = cv) 11: optim or nlminb returned message singular convergence (7) in: LMEopt(x = mer, value = cv)> 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 2005-12-14 ------ Deparment of Sociology Fudan University My new mail addres is ronggui.huang at gmail.com Blog:http://sociology.yculblog.com
Spencer Graves
2005-Dec-17 00:13 UTC
[R] what does this warnings mean? and what should I do?
You actually received two different warning messages. The first 8 warnings read, "optim or nlminb returned message false convergence (8)", and the other 3 say, "... returned message singular convergence". The function "lmer" uses a nonlinear optimizer (either "optim" or "nlminb") to minimize an objective function. The first message says that the nonlinear optimizer was still reducing the objective function when it reached an iteration limit. If this were the only problem, you might consider increasing the iteration limits, maxIter, msMaxIter, niterEM and PQLmaxIt. However, the "singular convergence" message says that the estimated variance-covariance matrix of the observations became singular. Looking now at your output, I notice that "Corr" between "(Intercept)" and "trust.cz1" for the "Random Effects" "commid" is 1.000. This says that the structure of your data are not adequate to allow you to distinguish between random effects for "(Intercept)" and "trust.cz1" for "commid", while simultaneously estimating all the fixed effects you have in the model. If I were you, I'd start be deleting all the terms from the model that don't have a "Signif. code" beside it in the table of "Fixed effects" and then refit the smaller model, preferably also using 'method="AGQ"'. If I still get the same message from trying to fit the reduced model, I would conclude that the data are not adequate to distinguish between "(Intercept)" and "trust.cz1" for "commid". I would then delete "trust.cz1" from the model and go from there. hope this helps. spencer graves ronggui wrote:> I use lmer to fit a mixed effect model.It give some warnings.what does this warnings mean? and what should I do? > > >>(fm2.mlm <- lmer(qd ~ edu + jiankang + peixun +hunyin + cadcj +age + age2 + sex + dangyuan + Comp.1 + Comp.2+trust.cz1 + (trust.cz1|commid), data = individual,na.action "na.exclude",family="quasibinomial"))> > Generalized linear mixed model fit using PQL > Formula: qd ~ edu + jiankang + peixun + hunyin + cadcj + age + age2 + sex + dangyuan + Comp.1 + Comp.2 + trust.cz1 + (trust.cz1 | commid) > Data: individual > Family: quasibinomial(logit link) > AIC BIC logLik deviance > 736.7059 821.8267 -349.3529 698.7059 > Random effects: > Groups Name Variance Std.Dev. Corr > commid (Intercept) 1.56413 1.25065 > trust.cz1 0.17922 0.42334 1.000 > Residual 0.89728 0.94725 > # of obs: 652, groups: commid, 39 > > Fixed effects: > Estimate Std. Error DF t value Pr(>|t|) > (Intercept) -1.6115e-01 6.7997e-01 637 -0.2370 0.81274 > edu -5.2585e-02 4.1048e-02 637 -1.2810 0.20064 > jiankang -9.8243e-01 4.4645e-01 637 -2.2005 0.02813 * > peixun -4.6307e-01 2.6397e-01 637 -1.7542 0.07988 . > hunyin -1.2255e-02 2.8151e-01 637 -0.0435 0.96529 > hunyin -2.7726e-01 1.3846e+00 637 -0.2002 0.84136 > hunyin -2.9759e-01 8.7180e-01 637 -0.3414 0.73295 > cadcj 2.2366e-01 7.6467e-01 637 0.2925 0.77000 > age 9.3626e-02 4.0390e-02 637 2.3180 0.02076 * > age2 -1.3095e-03 5.5104e-04 637 -2.3763 0.01778 * > sex 3.9188e-01 1.9759e-01 637 1.9833 0.04776 * > dangyuan -5.2558e-01 5.9091e-01 637 -0.8894 0.37410 > Comp.1 5.2463e-02 1.0309e-01 637 0.5089 0.61100 > Comp.2 -1.5048e-01 1.1435e-01 637 -1.3160 0.18863 > trust.cz1 -8.0709e-01 4.4632e-01 637 -1.8083 0.07103 . > --- > Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > There were 11 warnings (use warnings() to see them) > >>warnings() > > Warning messages: > 1: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 2: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 3: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 4: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 5: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 6: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 7: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 8: optim or nlminb returned message false convergence (8) > in: LMEopt(x = mer, value = cv) > 9: optim or nlminb returned message singular convergence (7) > in: LMEopt(x = mer, value = cv) > 10: optim or nlminb returned message singular convergence (7) > in: LMEopt(x = mer, value = cv) > 11: optim or nlminb returned message singular convergence (7) > in: LMEopt(x = mer, value = cv) > > >>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 > > > > > > > 2005-12-14 > > ------ > Deparment of Sociology > Fudan University > > My new mail addres is ronggui.huang at gmail.com > Blog:http://sociology.yculblog.com > > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html-- Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA spencer.graves at pdf.com www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915
Berton Gunter
2005-Dec-19 17:48 UTC
[R] what does this warnings mean? and what should I do?
Spencer: (warning: highly biased, personal opinions) My $.02> Looking now at your output, I notice that "Corr" between > "(Intercept)" and "trust.cz1" for the "Random Effects" "commid" is > 1.000. This says that the structure of your data are not adequate to > allow you to distinguish between random effects for "(Intercept)" and > "trust.cz1" for "commid", while simultaneously estimating all > the fixed > effects you have in the model.Quite right. Design is the cause; overfitting/identifiability is the symptom.> > If I were you, I'd start be deleting all the terms > from the model > that don't have a "Signif. code" beside it in the table of "Fixed > effects" and then refit the smaller model, preferably also using > 'method="AGQ"'.Well, this might work, but it's also a prescription for overfitting a highly biased model. What he really needs to do is carefully rethink. What is a parsimonious model given the data at hand? Unfortunately, this is far from a trivial issue. Model choice for nonlinear model fitting is conceptually and statistically difficult. IMHO, the tendency to overfit mechanistically motivated models with insufficient, poorly designed data is a ubiquitous scientific practice, rarely understood by scientists (due to the complexity). As a result, there are a lot of questionable results published in peer-reviewed literature. Eventually it gets sorted out, but it can take a while. See Kuhn and Feyerabend, for example. Always enjoy your comments. Keep 'em coming. -- Bert