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é.
La gestion des données manquantes avec un maximum de vraisemblance sur toutes les données disponibles (appelées FIML) est une technique très utile. Cependant, il existe un certain nombre de complications qui rendent difficile la mise en œuvre de manière générale. Prenons un modèle de régression linéaire simple, prédisant des résultats continus, par exemple, l'âge, le sexe et le type de profession. Dans OLS, vous ne vous souciez pas de la répartition de l'âge, du sexe et de la profession, mais uniquement du résultat. Généralement, pour les prédicteurs catégoriels, ils sont codés de manière fictive (0/1). Pour utiliser le ML, des hypothèses de distribution sont requises pour toutes les variables manquantes. L'approche de loin la plus simple est la normale multivariée (MVN). C'est ce que fera par exemple Mplus par défaut si vous ne cherchez pas à déclarer le type de variable (par exemple, catégorique). Dans l'exemple simple que j'ai donné, vous voudrez probablement supposer, normal pour l'âge, Bernoulli pour le sexe et multinomal pour le type d'emploi. Ce dernier est délicat car vous disposez en fait de plusieurs variables binaires, mais vous ne voulez pas les traiter comme Bernoulli. Cela signifie que vous ne voulez pas travailler avec les variables codées factices, vous devez travailler avec la variable catégorielle réelle pour que les estimateurs ML puissent utiliser correctement un multinomial, mais cela signifie à son tour que le processus de codage factice doit être intégré dans le modèle , pas les données. Encore une fois compliquant la vie. De plus, la distribution conjointe de variables continues et catégorielles n'est pas triviale à calculer (lorsque je rencontre des problèmes comme celui-ci dans Mplus, elle commence assez rapidement à se décomposer et à lutter). Enfin, vous spécifiez vraiment idéalement le mécanisme de données manquantes. En style SEM, FIML, toutes les variables sont essentiellement conditionnées à toutes les autres, mais ce n'est pas nécessairement correct. Par exemple, l'âge manque peut-être en fonction non pas du sexe et du type de profession, mais de leur interaction. L'interaction peut ne pas être importante pour le résultat focal, mais si elle est importante pour le manque sur l'âge, alors elle doit également être dans le modèle, pas nécessairement le modèle substantif d'intérêt mais le modèle de données manquantes.
lavaan utilisera ML pour MVN, mais actuellement, je pense que les options de données catégoriques sont limitées (venant encore du champ SEM, c'est standard). L'imputation multiple semble moins élégante au début, car elle rend explicites de nombreuses hypothèses cachées derrière le FIML (comme les hypothèses de distribution pour chaque variable et le modèle prédictif supposé pour le manque sur chaque variable). Cependant, cela vous donne beaucoup de contrôle et une réflexion explicite sur la distribution de chaque variable, et le mécanisme optimal de données manquantes pour chacune est précieux.
Je suis de plus en plus convaincu que les modèles bayésiens sont le moyen de gérer les données manquantes. La raison en est qu'ils sont très flexibles pour inclure des distributions pour chaque variable, permettant de nombreux types de distributions différents, et peuvent facilement intégrer la variabilité introduite par les données manquantes sur les prédicteurs, dans les estimations globales du modèle (ce qui est l'astuce avec l'imputation multiple où vous doivent ensuite en quelque sorte combiner les résultats). Bien sûr, ces méthodes ne sont pas les plus faciles et peuvent prendre beaucoup de temps et de formation à utiliser.
Cela ne répond donc pas vraiment à votre question, mais explique un peu pourquoi les cadres complètement généraux pour faire face au manque sont difficiles. Dans mon paquet semutils pour les matrices de covariance, j'utilise lavaan dessous pour utiliser ML. Je le fais parce que je suppose pour une matrice de covariance de variance que vous utilisez de toute façon des variables continues, de sorte que je suppose que mes utilisateurs supposent déjà MVN pour leurs données.
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:
- La voie habituelle avec imputation multiple
- En style SEM avec lave en utilisant FIML.
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.