Re: [R] Error messages using LMER

From: Shige Song <shigesong_at_gmail.com>
Date: Fri 19 Aug 2005 - 03:51:05 EST

One thing to be noted: after switching to R-devel, even the simplest model can not converge. I always get this:



Warning messages:
1: optim or nlminb returned message See PORT documentation. Code (27)  in: LMEopt(x = mer, value = cv)
2: optim or nlminb returned message See PORT documentation. Code (27)  in: LMEopt(x = mer, value = cv)
3: optim or nlminb returned message See PORT documentation. Code (27)  in: LMEopt(x = mer, value = cv)
4: optim or nlminb returned message See PORT documentation. Code (27)  in: LMEopt(x = mer, value = cv)
5: optim or nlminb returned message See PORT documentation. Code (27)  in: LMEopt(x = mer, value = cv)
6: nlminb failed to converge in: lmer(.D ~ offset(log(.Y)) + (1 | provn) + (1 | bcohort) + educy +

The same model did not have problems converging in R 2.1.1.

Shige
On 8/19/05, Shige Song <shigesong@gmail.com> wrote:
> Here is what happened using R-devel:
>
> -------------------------------------------------------------
> EM iterations
> 0 85289.766 ( 5407.13: 0.0815) ( 26134.4: 0.00387)
> 1 84544.322 ( 333.732: 0.137) ( 1462.32: 0.00934)
> 2 84515.108 ( 129.506: 0.0270) ( 446.306: 0.00481)
> 3 84514.519 ( 115.592: 0.00355) ( 328.637: 0.00103)
> 4 84514.505 ( 113.981:0.000505) ( 311.160:0.000165)
> 5 84514.505 ( 113.755:7.45e-005) ( 308.524:2.50e-005)
> 6 84514.505 ( 113.722:1.11e-005) ( 308.128:3.77e-006)
> 7 84514.505 ( 113.717:1.66e-006) ( 308.068:5.66e-007)
> 8 84514.505 ( 113.716:2.50e-007) ( 308.059:8.49e-008)
> 9 84514.505 ( 113.716:3.74e-008) ( 308.058:1.27e-008)
> 10 84514.505 ( 113.716:5.62e-009) ( 308.058:1.91e-009)
> 11 84514.505 ( 113.716:8.43e-010) ( 308.058:2.87e-010)
> 12 84514.505 ( 113.716:1.27e-010) ( 308.058:4.31e-011)
> 13 84514.505 ( 113.716:1.90e-011) ( 308.057:6.47e-012)
> 14 84514.505 ( 113.716:2.86e-012) ( 308.057:9.73e-013)
> 15 84514.505 ( 113.716:4.25e-013) ( 308.057:1.44e-013)
> EM iterations
> 0 83740.342 ( 113.716: -0.0164) ( 308.057:0.000596)
> 1 83740.273 ( 121.512:-0.00121) ( 298.914:-3.24e-005)
> 2 83740.272 ( 122.131:-0.000111) ( 299.397:-1.24e-005)
> EM iterations
> 0 84011.546 ( 122.131:-0.00474) ( 299.397:-0.000265)
> 1 84011.539 ( 124.616:-0.000472) ( 303.415:-6.62e-005)
> 2 84011.539 ( 124.869:-5.58e-005) ( 304.433:-1.16e-005)
> EM iterations
> 0 84018.589 ( 124.869:-0.000139) ( 304.433:-1.81e-005)
> 1 84018.589 ( 124.944:-1.62e-005) ( 304.713:-3.26e-006)
> 2 84018.589 ( 124.953:-2.12e-006) ( 304.764:-5.23e-007)
> EM iterations
> 0 84018.611 ( 124.953:-2.38e-006) ( 304.764:-5.44e-007)
> 1 84018.611 ( 124.954:-3.25e-007) ( 304.772:-8.50e-008)
> 2 84018.611 ( 124.955:-4.66e-008) ( 304.773:-1.29e-008)
> EM iterations
> 0 84018.611 ( 124.955:-4.75e-008) ( 304.773:-1.30e-008)
> 1 84018.611 ( 124.955:-6.93e-009) ( 304.774:-1.97e-009)
> 2 84018.611 ( 124.955:-1.03e-009) ( 304.774:-2.96e-010)
> Warning messages:
> 1: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 2: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 3: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 4: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 5: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 6: optim or nlminb returned message See PORT documentation. Code (27)
> in: LMEopt(x = mer, value = cv)
> 7: nlminb failed to converge in: lmer(.D ~ offset(log(.Y)) + (1 |
> provn) + (1 | bcohort) + agri +
> -------------------------------------------------------------
>
> Shige
>
> On 8/19/05, Shige Song <shigesong@gmail.com> wrote:
> > Dear Professor Bates,
> >
> > Here is output R 2.1.1 produced with "control = list(EMverbose = TRUE,
> > msVerbose = TRUE)". I am getting the new devel version and see what
> > will hapen there:
> >
> > --------------------------------------------------------------------------------
> > EM iterations
> > 0 85289.766 ( 5407.13: 0.0815) ( 26134.4: 0.00387)
> > 1 84544.322 ( 333.732: 0.137) ( 1462.32: 0.00934)
> > 2 84515.108 ( 129.506: 0.0270) ( 446.306: 0.00481)
> > 3 84514.519 ( 115.592: 0.00355) ( 328.637: 0.00103)
> > 4 84514.505 ( 113.981:0.000505) ( 311.160:0.000165)
> > 5 84514.505 ( 113.755:7.45e-005) ( 308.524:2.50e-005)
> > 6 84514.505 ( 113.722:1.11e-005) ( 308.128:3.77e-006)
> > 7 84514.505 ( 113.717:1.66e-006) ( 308.068:5.66e-007)
> > 8 84514.505 ( 113.716:2.50e-007) ( 308.059:8.49e-008)
> > 9 84514.505 ( 113.716:3.74e-008) ( 308.058:1.27e-008)
> > 10 84514.505 ( 113.716:5.62e-009) ( 308.058:1.91e-009)
> > 11 84514.505 ( 113.716:8.43e-010) ( 308.058:2.87e-010)
> > 12 84514.505 ( 113.716:1.27e-010) ( 308.058:4.31e-011)
> > 13 84514.505 ( 113.716:1.90e-011) ( 308.057:6.47e-012)
> > 14 84514.505 ( 113.716:2.86e-012) ( 308.057:9.73e-013)
> > 15 84514.505 ( 113.716:4.25e-013) ( 308.057:1.44e-013)
> > iter 0 value 84514.505044
> > final value 84514.505044
> > converged
> > EM iterations
> > 0 83740.342 ( 113.716: -0.0164) ( 308.057:0.000596)
> > 1 83740.273 ( 121.512:-0.00121) ( 298.914:-3.24e-005)
> > 2 83740.272 ( 122.131:-0.000111) ( 299.397:-1.24e-005)
> > iter 0 value 83740.272232
> > final value 83740.272232
> > converged
> > EM iterations
> > 0 84011.550 ( 122.204:-0.00461) ( 299.576:-0.000256)
> > 1 84011.543 ( 124.624:-0.000459) ( 303.453:-6.41e-005)
> > 2 84011.543 ( 124.870:-5.42e-005) ( 304.440:-1.13e-005)
> > iter 0 value 84011.543350
> > final value 84011.543350
> > converged
> > EM iterations
> > 0 84018.592 ( 124.915:-6.44e-005) ( 304.548:-1.22e-005)
> > 1 84018.592 ( 124.949:-8.29e-006) ( 304.737:-1.99e-006)
> > 2 84018.592 ( 124.954:-1.15e-006) ( 304.768:-3.08e-007)
> > iter 0 value 84018.591624
> > final value 84018.591624
> > converged
> > EM iterations
> > 0 84018.612 ( 124.955:3.40e-007) ( 304.770:-1.98e-007)
> > 1 84018.612 ( 124.955:-9.98e-009) ( 304.773:-2.23e-008)
> > 2 84018.612 ( 124.955:-5.47e-009) ( 304.774:-2.86e-009)
> > iter 0 value 84018.611512
> > final value 84018.611512
> > converged
> > Error in fn(par, ...) : Unable to invert singular factor of downdated X'X
> > In addition: Warning message:
> > Leading minor of size 8 of downdated X'X is indefinite
> > --------------------------------------------------------------------------------
> >
> > Thanks!
> >
> > Shige
> >
> > On 8/18/05, Douglas Bates <dmbates@gmail.com> wrote:
> > > On 8/18/05, Shige Song <shigesong@gmail.com> wrote:
> > > > Dear All,
> > > >
> > > > After playing with lmer for couple of days, I have to say that I am
> > > > amazed! I've been using quite some multilevel/mixed modeling packages,
> > > > lme4 is a strong candidate for the overall winner, especially for
> > > > multilevel generzlized linear models.
> > > >
> > > > Now go back to my two-level poisson model with cross-classified model.
> > > > I've been testing various different model specificatios for the past
> > > > couple of days. Here are the models I tried:
> > > >
> > > > 1) Two level random intercept model with level-1 covariates only
> > > > m1 <- lmer(.D ~ offset(log(.Y)) + (1|provn) +(1|bcohort) + x1 + x2 ,
> > > > data, poisson, method="Laplace")
> > > >
> > > > 2) Two-level random intercept model with both level-1 and level-2
> > > > covariates, but no cross-level interactions:
> > > > m2 <- lmer(.D ~ offset(log(.Y)) + (1|provn) +(1|bcohort) + x1 + x2 +
> > > > z1 + z2, data, poisson, method="Laplace")
> > > >
> > > > 3) Two-level random intercept with cross-level interaction
> > > > m3 <- lmer(.D ~ offset(log(.Y)) + (1|provn) +(1|bcohort) + x1 + x2 +
> > > > z1 + z2 + x1:z1 + x2:z2, data, poisson, method="Laplace")
> > > >
> > > > Both model 1 and 2 run fine. For model 3, I got error message:
> > > > ----------------------------------
> > > > Error in fn(par, ...) : Unable to invert singular factor of downdated X'X
> > > > In addition: Warning messages:
> > > > 1: optim or nlminb returned message ERROR: ABNORMAL_TERMINATION_IN_LNSRCH
> > > > in: LMEopt(x = mer, value = cv)
> > > > 2: Leading minor of size 1 of downdated X'X is indefinite
> > > > ----------------------------------
> > > >
> > > > What is going on here? Any workarounds? Thanks!
> > >
> > > The first thing I would try is set the EMverbose and msVerbose flags
> > > in the control list to see what occurs within the optimization. That
> > > is append the argument
> > >
> > > control = list(EMverbose = TRUE, msVerbose = TRUE)
> > >
> > > to your call to lmer(). You may also want to try the call in a
> > > recently compiled R-devel, which will be released as R-2.2.0 in
> > > October. You will notice that the first warning message reads "optim
> > > or nlminb". In R-2.1.1 lmer uses optim for the optimization. Starting
> > > with R-2.2.0 the default is to use nlminb.
> > >
> > > Test compilations of R-devel for Windows are available from CRAN.
> > >
> >
>



R-help@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 Received on Fri Aug 19 03:56:59 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 15:31:27 EST