Estoy usando la glmer
función del lme4
paquete en R, y estoy usando el bobyqa
optimizador (es decir, el predeterminado en mi caso). Recibo una advertencia y tengo curiosidad por saber qué significa.
Warning message:
In optwrap(optimizer, devfun, start, rho$lower, control = control, :
convergence code 3 from bobyqa: bobyqa -- a trust region step failed to reduce q
Busqué "un paso de región de confianza no pudo reducir q". Encontré información en el paquete minqa , que decía "Consulte a Powell para obtener una explicación". Lo hice (¡tú también puedes, si quieres! Ver las referencias y enlaces a ellos a continuación), pero no lo entiendo. De hecho, no pude encontrar nada sobre la reducción de q.
MJD Powell (2007) "Desarrollos de NEWUOA para la minimización sin restricciones sin derivados", Universidad de Cambridge, Departamento de Matemática Aplicada y Física Teórica, Grupo de Análisis Numérico, Informe NA2007 / 05, http://www.damtp.cam.ac.uk/ usuario / na / NA_papers / NA2007_05.pdf .
MJD Powell (2009), "El algoritmo BOBYQA para la optimización restringida limitada sin derivados", Informe No. DAMTP 2009 / NA06, Centro de Ciencias Matemáticas, Universidad de Cambridge, Reino Unido. http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf .
PD: Sé que puedo cambiar el optimizador, y veré si puedo obtener resultados sin advertencias o errores. También puedo comprobar el gradiente y el Hessian si puedo, según un comentario / respuesta de Ben Bolker . Lo estoy usando desde glmer
adentro y no estoy seguro de si la respuesta de Ben funcionará sin algunos ajustes adicionales, pero trabajaré en ello una vez que mi computadora termine lo que está haciendo, de todos modos, estoy divagando.dredge
MuMIn
Actualizar
Según el comentario del Dr. Bolker a continuación, comencé a buscar el código FORTRAN ( Aquí está el código para cualquier persona interesada en buscarlo pero no descargarlo ). "430" aparece en la parte bobyqb.f del código. Simplemente busque "430" o "reduzca Q" para encontrar el código relevante.
Este es mi primer encuentro con el código FORTRAN, pero creo que el código dice que si se cumplen las siguientes condiciones, produzca la advertencia: NTRITS
> 0, VQUAD
> = 0, IPRINT
> 0. "El NTRITS entero se establece en el número" región de confianza " iteraciones que han ocurrido desde la última iteración "alternativa". VQUAD
aparece varias veces, y aún no tengo claro su importancia, ya que su valor parece depender de una variedad de otras variables, cuyos valores a veces dependen de otras variables. De bobyqa.f: "El valor de IPRINT debería ser establecido en 0, 1, 2 o 3, que controla la cantidad de impresión. Específicamente, no hay salida si IPRINT = 0 y solo se muestra en la devolución si IPRINT = 1 ".
Entonces, parece que la tarea es descubrir la importancia de VQUAD
ser> = 0 y, tal vez, entender cómo / cuándo se IPRINT
convirtió en> 0. Tendré que volver al papel para echar un vistazo, pero las matemáticas o menos su expresión simbólica, es un poco una barrera para mí. A menos que alguien conozca el algoritmo o tenga el deseo de aprender sobre él, creo que tendré que aumentar de manera iterativa mi comprensión de la advertencia yendo y viniendo entre los documentos, el código e Internet hasta que entienda qué es. medio.
src
directorio de cran.r-project.org/src/contrib/minqa_1. 2.3.tar.gz ) y ver exactamente lo que sucede cuando se activa este error (código de error 430 en el código) ...