Si nous ajustons un regard, nous pouvons recevoir un avertissement nous indiquant que le modèle a du mal à converger ... par exemple
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)
Une autre façon de vérifier la convergence abordée dans ce sujet par @Ben Bolker est la suivante:
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 1.152891e-05
si max(abs(relgrad))
est <0.001
alors les choses pourraient être ok ... alors dans ce cas nous avons des résultats contradictoires? Comment devrions-nous choisir entre les méthodes et nous sentir en sécurité avec nos ajustements de modèle?
D'autre part, lorsque nous obtenons des valeurs plus extrêmes telles que:
>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
Cela signifie-t-il que nous devons ignorer les résultats / estimations / valeurs p du modèle? Est-ce que 0.0027 est trop grand pour continuer?
Lorsque différents optimiseurs donnent des résultats différents et que le centrage des variables / la suppression de paramètres (dépouiller les modèles au minimum) n’aident pas, mais que les valeurs VIF sont faibles, que les modèles ne sont pas surdispersés et que les résultats des modèles ont un sens logique basé sur des attentes a priori, il semble difficile de le savoir. Que faire.
Des conseils sur la manière d’interpréter les problèmes de convergence, sur la nécessité de les résoudre à fond pour nous inquiéter et sur les moyens possibles de les gérer au-delà de ceux cités seraient très utiles.
Utilisation:
R version 3.1.0 (2014-04-10)
etlme4_1.1-6
la source
lme4
(version 1.1-7) a un comportement d'avertissement différent qui, selon les auteurs, est moins susceptible de donner des avertissements de "fausse alarme". Vous pouvez essayer de mettrelme4
à jour la version la plus récente, d'adapter à nouveau le modèle et de voir si vous recevez toujours des avertissements similaires, du moins dans le premier cas.Réponses:
Avoir peur. Avoir très peur
L'année dernière, j'ai interviewé John Nash, l'auteur de optim et optimx, pour un article sur le site DeveloperWorks d'IBM. Nous avons expliqué comment fonctionnent les optimiseurs et pourquoi ils échouent quand ils échouent. Il semblait prendre pour acquis qu'ils le font souvent. C'est pourquoi les diagnostics sont inclus dans le package. Il pensait également que vous deviez "comprendre votre problème" et comprendre vos données. Cela signifie que les avertissements doivent être pris au sérieux et constituent une invitation à examiner vos données autrement.
En règle générale, un optimiseur arrête la recherche lorsqu'il ne peut plus améliorer la fonction de perte de manière significative. Il ne sait pas où aller ensuite, fondamentalement. Si le gradient de la fonction de perte n’est pas nul à ce point, vous n’avez atteint aucun extremum. Si le Hessian n'est pas positif, mais que le gradient est égal à zéro, vous n'avez pas trouvé de minimum, mais vous avez peut-être trouvé un maximum ou un point de selle. En fonction de l'optimiseur, les résultats concernant la Hesse peuvent ne pas être fournis. Dans Optimx, si vous souhaitez que les conditions KKT soient évaluées, vous devez les demander - elles ne sont pas évaluées par défaut. (Ces conditions regardent le gradient et la hesse pour voir si vous avez vraiment un minimum.)
Le problème avec les modèles mixtes est que les estimations de la variance pour les effets aléatoires doivent être positives, ce qui place une limite dans la région d'optimisation. Mais supposons qu'un effet aléatoire particulier ne soit pas vraiment nécessaire dans votre modèle, c'est-à-dire que la variance de l'effet aléatoire soit égale à 0. Votre optimiseur se dirigera vers cette limite, ne pourra pas continuer et s'arrêtera avec un gradient non nul. Si la suppression de cet effet aléatoire améliore la convergence, vous saurez que c'était là le problème.
De plus, notez que la théorie du maximum de vraisemblance asymptotique suppose que le MLE se trouve dans un point intérieur (c’est-à-dire pas sur la limite des valeurs de paramètres licites) - de sorte que les tests du rapport de vraisemblance pour les composantes de la variance peuvent ne pas fonctionner lorsque l'hypothèse nulle de la variance nulle vrai. Les tests peuvent être effectués à l'aide de tests de simulation, tels qu'ils sont implémentés dans le package RLRsim.
Pour moi, je soupçonne que les optimiseurs rencontrent des problèmes quand il y a trop peu de données pour le nombre de paramètres, ou que le modèle proposé n'est vraiment pas approprié. Pensez pantoufle de verre et belle-soeur laide: vous ne pouvez pas insérer vos données dans le modèle, peu importe les efforts que vous déployez et quelque chose doit donner.
Même si les données correspondent au modèle, elles peuvent ne pas avoir le pouvoir d'estimer tous les paramètres. Une chose amusante m'est arrivée dans ce sens. J'ai simulé des modèles mixtes pour répondre à une questionà propos de ce qui se passe si vous ne permettez pas la corrélation des effets aléatoires lors de l'ajustement d'un modèle à effets mélangés. J'ai simulé des données avec une forte corrélation entre les deux effets aléatoires, puis ajusté le modèle dans les deux sens avec lmer: en proposant des corrélations nulles et des corrélations libres. Le modèle de corrélation s’ajuste mieux que le modèle non corrélé, mais il est intéressant de noter que dans 1000 simulations, j’ai eu 13 erreurs lors de l’ajustement du modèle réel et 0 erreur lors de l’ajustement du modèle plus simple. Je ne comprends pas bien pourquoi cela est arrivé (et j'ai répété les sims avec des résultats similaires). Je soupçonne que le paramètre de corrélation est relativement inutile et que l'optimiseur ne peut pas trouver la valeur (car peu importe).
Vous avez demandé quoi faire lorsque différents optimiseurs donnent des résultats différents. John et moi avons discuté de ce point. Certains optimiseurs, à son avis, ne sont tout simplement pas si bons! Et tous ont des points faibles - c'est-à-dire des ensembles de données qui les feront échouer. C'est pourquoi il a écrit optimx, qui inclut divers optimiseurs. Vous pouvez en exécuter plusieurs sur le même ensemble de données.
Si deux optimiseurs donnent les mêmes paramètres, mais que des diagnostics différents - et que ces paramètres ont un sens réel -, je serais enclin à faire confiance aux valeurs de paramètre. La difficulté pourrait être avec les diagnostics, qui ne sont pas infaillibles. Si vous n'avez pas explicitement fourni la fonction de gradient et / ou la matrice de Hesse, l'optimiseur devra les estimer à partir de la fonction de perte et des données, ce qui est simplement un autre problème.
Si vous obtenez également différentes valeurs de paramètre, vous pouvez essayer différentes valeurs de départ et voir ce qui se passe ensuite. Certains optimiseurs et certains problèmes sont très sensibles aux valeurs de départ. Vous voulez commencer dans le parc de baseball.
la source
Je veux juste compléter la réponse de @ Placidia. Vous voudrez peut-être consulter "Modèles linéaires richement paramétrés: modèles additifs, séries temporelles et spatiales utilisant des effets aléatoires" de James Hodges (2014). Il discute de ce que nous ignorons au sujet des modèles mixtes et tente en même temps de proposer une théorie générale ainsi que des conseils pratiques pour l’ajustement de modèles complexes.
Un modeleur souvent effrayé moi-même, je trouve que les discussions de Hodge sur les "puzzles" sont inestimables. Il explique des cas étranges découlant de l'ajustement de la modélisation à effets mixtes, notamment "Un effet aléatoire en concurrence avec un effet fixe" et "Concurrence entre effets aléatoires". Sonne familier?
la source