3 votos

glmer error: pwrssUpdate no converge en 30 iteraciones

Estoy utilizando R 3.2.0 y lme4 1.1.7.

Con una ejecución particular de glmer, la función sigue deteniéndose anunciando que "pwrssUpdate no convergió en 30 iteraciones".

He probado todas las combinaciones que se me ocurren para aumentar las iteraciones y parece que glmer está programado para un máximo de 30 y no lo aumenta.

Mi intento más reciente dentro del glmer fue control = glmerControl(optCtrl=list(maxfun=250)) Pero he probado todas las combinaciones que he podido encontrar en cualquier lista de correo electrónico o en cualquier otro mensaje en el que alguien intentara aumentar el número de iteraciones permitidas. Nada se detiene glmer de detenerse en 30 y darme ese error.

Me gustaría que esta pregunta fuera general y no sobre mis datos, si es posible, para que las respuestas sean útiles para los demás. Asumo que mis datos son adecuados para el propósito si se pueden realizar suficientes iteraciones.

Si alguien tiene alguna sugerencia metodológica rápida, se lo agradecería. Me gustaría pensar que me estoy perdiendo algo, pero si me estoy encontrando con esto supongo que otros tienen / son también.

3voto

Ben Bolker Puntos 8729

No creo que esto vaya a ayudar, por las razones que se discuten a continuación, pero:

  • las iteraciones máximas puede ser mayor en la versión de desarrollo actual (¿100?), que está en Github y estará pronto en CRAN.
  • hay que reconocer que es difícil ajustar el máx. PWRSS iteraciones; la razón por la que no hemos hecho de esto una alta prioridad (no sería demasiado difícil de arreglar) es que, que yo sepa, nunca hemos visto una situación en la que aumentar el número de iteraciones PWRSS realmente ayude. Los fallos de PWRSS son a veces casos en los que NaN aparecen en el transcurso del cálculo (esto no se gestiona muy bien/de forma transparente).
  • Aunque aprecio tu deseo de centrarte en la cuestión general y no en los detalles de tus datos, casi siempre he comprobado que los fallos de PWRSS se derivan de algún tipo de problema con los datos y/o el modelo y se solucionan abordando el problema subyacente, no aumentando el número de iteraciones.

Dicho esto debe podrá aumentar el número máximo de iteraciones siguiendo una versión ligeramente modificada de los pasos mostrados en ?modular (sin un ejemplo reproducible, no estoy 100% seguro de que esto realmente funcione ...)

library(lme4)
## 1. set up model terms
glmod <- glFormula(cbind(incidence, size - incidence) ~
                 period + (1 | herd),
                   data = cbpp, family = binomial)
## 1A. adjust maxit.
glmod <- c(glmod,list(maxit=200))
## 2.  Create the deviance function for optimizing over theta:
devfun <- do.call(mkGlmerDevfun, glmod)
## 3.  Optimize over theta using a rough approximation (i.e. nAGQ = 0):
opt <- optimizeGlmer(devfun)
## 4.  Update the deviance function for optimizing over theta and beta:
devfun <- updateGlmerDevfun(devfun, glmod$reTrms)
    ## 5.  Optimize over theta and beta:
    opt <- optimizeGlmer(devfun, stage=2)
    mkMerMod(environment(devfun), opt, glmod$reTrms, fr = glmod$fr)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X