Si estamos ajustando un glmer, podemos recibir una advertencia que nos dice que el modelo está teniendo dificultades para converger ... por ejemplo
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)
Otra forma de verificar la convergencia discutida en este hilo por @Ben Bolker es:
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 1.152891e-05
si max(abs(relgrad))
es <0.001
así, las cosas podrían estar bien ... ¿en este caso tenemos resultados contradictorios? ¿Cómo deberíamos elegir entre métodos y sentirnos seguros con nuestros ajustes de modelo?
Por otro lado, cuando obtenemos valores más extremos como:
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 35.5352 (tol = 0.001)
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 0.002776518
¿Significa esto que tenemos que ignorar los resultados / estimaciones / valores p del modelo? ¿0.0027 es demasiado grande para continuar?
Cuando diferentes optimizadores dan resultados diferentes y el centrado de variables / eliminar parámetros (eliminar modelos al mínimo) no ayuda, pero los VIF son bajos, los modelos no se dispersan en exceso y los resultados de los modelos tienen un sentido lógico basado en expectativas a priori, parece difícil saber qué hacer.
Sería muy útil asesorar sobre cómo interpretar los problemas de convergencia, cuán extremos deben ser para realmente preocuparnos y las posibles formas de tratar de manejarlos más allá de los mencionados.
Usando:
R version 3.1.0 (2014-04-10)
ylme4_1.1-6
fuente
lme4
(versión 1.1-7) tiene un comportamiento de advertencia diferente que los autores creen que es menos probable que dé advertencias de "falsa alarma". Puede intentar actualizarlme4
a la versión más nueva, ajustar el modelo nuevamente y ver si aún recibe advertencias similares, al menos en el primer caso.Respuestas:
Tener miedo. Ten mucho miedo.
El año pasado, entrevisté a John Nash, autor de optim y optimx, para un artículo en el sitio DeveloperWorks de IBM. Hablamos sobre cómo funcionan los optimizadores y por qué fallan cuando fallan. Parecía dar por sentado que a menudo lo hacen. Es por eso que los diagnósticos están incluidos en el paquete. También pensó que necesita "comprender su problema" y comprender sus datos. Todo lo cual significa que las advertencias deben tomarse en serio y son una invitación para ver sus datos de otras maneras.
Normalmente, un optimizador deja de buscar cuando ya no puede mejorar la función de pérdida en una cantidad significativa. No sabe a dónde ir después, básicamente. Si el gradiente de la función de pérdida no es cero en ese punto, no ha alcanzado un extremo de ningún tipo. Si el Hessian no es positivo, pero el gradiente es cero, no ha encontrado un mínimo, pero posiblemente haya encontrado un punto máximo o de silla de montar. Sin embargo, dependiendo del optimizador, los resultados sobre el Hessian podrían no ser suministrados. En Optimx, si desea evaluar las condiciones de KKT, debe solicitarlas; no se evalúan de forma predeterminada. (Estas condiciones miran el gradiente y Hessian para ver si realmente tiene un mínimo).
El problema con los modelos mixtos es que las estimaciones de varianza para los efectos aleatorios están limitadas a ser positivas, lo que coloca un límite dentro de la región de optimización. Pero suponga que un efecto aleatorio particular no es realmente necesario en su modelo, es decir, la varianza del efecto aleatorio es 0. Su optimizador se dirigirá a ese límite, no podrá continuar y se detendrá con un gradiente distinto de cero. Si eliminar ese efecto aleatorio mejora la convergencia, sabrá que ese era el problema.
Además, tenga en cuenta que la teoría asintótica de máxima probabilidad supone que el MLE se encuentra en un punto interior (es decir, no en el límite de los valores de parámetros lícitos), por lo que las pruebas de razón de probabilidad para los componentes de la varianza pueden no funcionar cuando la hipótesis nula de la varianza cero es cierto. Las pruebas se pueden hacer usando pruebas de simulación, como se implementa en el paquete RLRsim.
Para mí, sospecho que los optimizadores tienen problemas cuando hay muy pocos datos para la cantidad de parámetros, o el modelo propuesto no es realmente adecuado. Piense en zapatilla de cristal y fea hermanastra: no puede calzar sus datos en el modelo, no importa cuánto lo intente, y algo tiene que ceder.
Incluso si los datos se ajustan al modelo, es posible que no tengan el poder de estimar todos los parámetros. Me pasó algo gracioso en ese sentido. Simulé algunos modelos mixtos para responder una preguntasobre lo que sucede si no permite que los efectos aleatorios se correlacionen al ajustar un modelo de efectos mixtos. Simulé datos con una fuerte correlación entre los dos efectos aleatorios, luego ajusté el modelo en ambos sentidos con lmer: postulando 0 correlaciones y correlaciones libres. El modelo de correlación se ajusta mejor que el modelo no correlacionado, pero curiosamente, en 1000 simulaciones, tuve 13 errores al ajustar el modelo verdadero y 0 errores al ajustar el modelo más simple. No entiendo completamente por qué sucedió esto (y repetí los sims a resultados similares). Sospecho que el parámetro de correlación es bastante inútil y el optimizador no puede encontrar el valor (porque no importa).
Preguntó qué hacer cuando diferentes optimizadores dan resultados diferentes. John y yo discutimos este punto. Algunos optimizadores, en su opinión, ¡simplemente no son tan buenos! Y todos ellos tienen puntos débiles, es decir, conjuntos de datos que los harán fallar. Es por eso que escribió optimx, que incluye una variedad de optimizadores. Puede ejecutar varios en el mismo conjunto de datos.
Si dos optimizadores dan los mismos parámetros, pero diagnósticos diferentes, y esos parámetros tienen sentido en el mundo real, entonces me inclinaría a confiar en los valores de los parámetros. La dificultad podría radicar en los diagnósticos, que no son infalibles. Si no ha proporcionado explícitamente la función de gradiente y / o la matriz de Hesse, el optimizador necesitará estimarlos a partir de la función de pérdida y los datos, que es algo más que puede salir mal.
Si también está obteniendo valores de parámetros diferentes, entonces es posible que desee probar diferentes valores iniciales y ver qué sucede entonces. Algunos optimizadores y algunos problemas son muy sensibles a los valores iniciales. Quieres comenzar en el estadio de béisbol.
fuente
Solo quiero complementar la gran respuesta de @ Placidia. Es posible que desee consultar "Modelos lineales ricamente parametrizados: aditivos, series temporales y modelos espaciales con efectos aleatorios", de James Hodges (2014). Discute lo que no sabemos sobre los modelos mixtos y al mismo tiempo intenta ofrecer una teoría amplia, así como consejos prácticos para ajustar modelos complejos.
Un modelador a menudo asustado, encuentro que las discusiones de Hodge sobre "rompecabezas" no tienen precio. Explica casos extraños derivados del ajuste de modelos de efectos mixtos, que incluyen "Un efecto aleatorio que compite con un efecto fijo" y "Competencia entre efectos aleatorios". ¿Suena familiar?
fuente