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.
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.