Estou usando a glmer
função do lme4
pacote em R e usando o bobyqa
otimizador (ou seja, o padrão no meu caso). Estou recebendo um aviso e estou curioso para saber o que isso 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
Eu procurei "uma etapa da região de confiança falhou ao reduzir q". Encontrei algumas informações no pacote minqa , que dizia "Consulte Powell para obter explicações". Eu fiz (você também pode, se quiser! Veja as referências e os links abaixo), mas não entendo. Na verdade, não consegui encontrar nada sobre como reduzir o q.
MJD Powell (2007) "Desenvolvimentos do NEWUOA para minimização irrestrita sem derivadas", Universidade de Cambridge, Departamento de Matemática Aplicada e Física Teórica, Grupo de Análise Numérica, Relatório NA2007 / 05, http://www.damtp.cam.ac.uk/ usuário / na / NA_papers / NA2007_05.pdf .
MJD Powell (2009), "O algoritmo BOBYQA para otimização com restrição limitada sem derivadas", Relatório No. DAMTP 2009 / NA06, Centro de Ciências Matemáticas, Universidade de Cambridge, Reino Unido. http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf .
Ps Eu sei que posso mudar o otimizador, e vou ver se consigo obter saída sem avisos ou erros. Também irei verificar o gradiente e o Hessian, se puder, conforme comentário / resposta de Ben Bolker . Eu estou usando glmer
dentro dredge
deMuMIn
e eu não tenho certeza se a resposta de Ben vai trabalhar sem alguns ajustes adicionais, mas vou trabalhar com ele uma vez meu computador acabamentos o que está fazendo, de qualquer maneira, eu discordo.
Atualizar
Conforme o comentário do Dr. Bolker abaixo, comecei a pesquisar o código FORTRAN ( aqui está o código para qualquer pessoa interessada em procurar, mas não baixá-lo ). "430" aparece na parte bobyqb.f do código. Basta procurar "430" ou "reduzir Q" para encontrar o código relevante.
Este é o meu primeiro encontro com o código FORTRAN, mas acho que o código diz que, se as seguintes condições forem atendidas, gere o aviso: NTRITS
> 0, VQUAD
> = 0, IPRINT
> 0. "O número inteiro NTRITS é definido como o número" região confiável " iterações que ocorreram desde a última iteração "alternativa".VQUAD
aparece várias vezes e ainda não estou claro quanto ao seu significado, pois seu valor parece depender de uma variedade de outras variáveis, cujos valores às vezes dependem de outras variáveis. De bobyqa.f: "O valor do IPRINT deve ser definido como 0, 1, 2 ou 3., que controla a quantidade de impressões. Especificamente, não há saída se IPRINT = 0 e somente saída no retorno se IPRINT = 1. ".
Então, parece que a tarefa é descobrir o significado de VQUAD
ser> = 0 e, talvez, entender como / quando IPRINT
se tornou> 0. Vou ter que voltar ao trabalho para dar uma olhada, mas a matemática ou menos sua expressão simbólica, é um pouco de barreira para mim. A menos que alguém conheça o algoritmo ou deseje aprender sobre ele, acho que terei que aumentar iterativamente minha compreensão do aviso, indo e voltando entre os documentos, o código e a Internet até entender o que ele é. significa.
src
diretório cran.r-project.org/src/contrib/minqa_1. 2.3.tar.gz ) e ver exatamente o que está acontecendo quando este erro (código de erro 430 no código) é acionado ...