Contexte : régression hiérarchique avec quelques données manquantes.
Question : Comment utiliser l'estimation du maximum de vraisemblance (FIML) pour traiter les données manquantes dans R? Y a-t-il un package que vous recommanderiez et quelles sont les étapes typiques? Des ressources et des exemples en ligne seraient également très utiles.
PS : Je suis un spécialiste des sciences sociales qui a récemment commencé à utiliser R. L'imputation multiple est une option, mais j'aime vraiment la façon élégante dont des programmes comme Mplus traitent les données manquantes à l'aide de FIML. Malheureusement, Mplus ne semble pas comparer les modèles dans le contexte de la régression hiérarchique pour le moment (veuillez me faire savoir si vous connaissez un moyen de le faire!). Je me demandais s'il y avait quelque chose de similaire dans R? Merci beaucoup!
la source
Réponses:
Le mérite de cette réponse revient à @Joshua qui a donné une réponse impressionnante lorsque j'ai posté cette question à la communauté R et Statistics sur Google+. Je colle simplement sa réponse ci-dessous.
Pour exécuter la régression (sans modélisation de variable latente), veuillez lire mes notes tapées après le texte cité.
Cela signifie que si toutes les variables manquantes sont continues, lave , un package de modélisation par équation structurelle (SEM) est une bonne option à utiliser pour FIML dans R.
Revenons maintenant à ma question initiale. Mon intention était d'avoir un correctif magique pour le manque lors de l'exécution d'une régression linéaire. Toutes mes variables manquantes étaient agréables et continues. J'ai donc procédé à l'exécution de mes analyses dans deux styles:
Je manquais beaucoup de choses en faisant une régression dans le style SEM. Les deux styles ont donné des coefficients et des carrés R similaires, mais dans le style SEM, je n'ai pas obtenu le test de signification de la régression (les valeurs F typiques avec df), j'ai plutôt obtenu des indices d'ajustement qui n'étaient pas utiles car j'avais utilisé tous mes degrés de liberté. De plus, lorsqu'un modèle avait un R2 plus grand qu'un autre, je ne pouvais pas trouver un moyen de comparer si la différence était significative. De plus, faire la régression de la manière habituelle donne accès à un tas de tests pour les hypothèses de régression qui sont inestimables. Pour une réponse plus détaillée sur ce problème, consultez mon autre question à laquelle a répondu gentiment @StasK .
La conclusion semble donc être que la lave est un package décent pour le FIML dans R, mais l'utilisation du FIML dépend d'hypothèses statistiques et du type d'analyse que l'on mène. En ce qui concerne la régression (sans modélisation de variable latente), le garder hors des programmes SEM et utiliser l'imputation multiple est probablement une sage décision.
la source
En ce qui concerne votre question FIML, j'ai pensé partager ce merveilleux article SAS par Paul Allison http://www.statisticalhorizons.com/wp-content/uploads/MissingDataByML.pdf
Étant donné les commentaires de Paul Allison, on peut facilement implémenter la même procédure en R en utilisant lme ou nlmer.
la source
il existe 2 façons principales de gérer les données / enregistrements manquants. Soit vous supprimez toute la ligne d'observation qui a une valeur manquante, soit vous trouvez un moyen de générer cette valeur manquante. Si vous adoptez la première approche, vous risquez de perdre beaucoup de données. Dans la deuxième approche, vous devez trouver un moyen "intelligent" de générer ces données manquantes, de telle sorte que les estimations des paramètres du nouvel ensemble de données ne diffèrent pas beaucoup des estimations des paramètres de l'ensemble de données observé.
Cette deuxième approche est appelée imputation de données, et plusieurs packages R le font. L'un d'eux s'appelle mclust et la fonction dont vous avez besoin s'appelle imputeData. Cette fonction utilise l'algorithme EM (maximisation des attentes) pour estimer les paramètres de la partie non observée de l'ensemble de données, compte tenu de la partie observée. Une fois les paramètres trouvés, le nouveau point de données est généré. L'hypothèse de distribution des données manquantes, des données observées et de l'ensemble des données est supposée être gaussienne.
J'espère que cette explication vous aidera à réaliser ce que vous essayez de faire
la source