|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
Bonjour ,
Je dois utiliser la proc MI pour imputer les valeurs manquantes de mon fichier. Seulement je ne comprend pas tout, c'est une procédure assez compliquée. En gros ça reprend le fichier initial (avec valeurs manquantes) et ça le genere jusqu'à le nombre d'iteration fixé soit atteint. Admettons, je fixe mon nimpute à 5 ca va me creer un fichier repété 5 fois. Ma question se porte sur l'itération à choisir. Dans mon exemple, les données manquantes sont différentes à partir de i=4. Comment doit je choisir? Et faut -il utiliser une proc mianalyze? Merci de votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Les valeurs manquantes sont TOUTES les bonnes ! C'est justement l'idée de la proc MI. Pour résumer : quand tu imputes des données manquantes, tu masques leur caractère artificiel dans l'analyse qui suit. Pour y remédier, Donald Rubin a proposé un mécanisme appelé "imputation multiple" (Multiple Imputation=MI) qui propose de remplacer chaque valeur manquante non pas par une valeur mais par N ! (Il montre ensuite qu'on obtient des résultats corrects avec N=5 sans besoin de répéter davantage.) En obtenant ensuite N séries de résultats différents selon le jeu imputé, on traduit l'incertitude (une part de variance supplémentaire) qu'il y a à combler des trous dont on ne sait pas ce qu'ils devraient contenir ni comment ils se sont formés. D'où l'intérêt de la proc MIANALYZE, qui reprend les N séries de résultats et les combine en augmentant les variances des estimateurs de la variance due à l'imputation. Cela dit, si le seul but est de compléter une base, PROC MI avec NIMPUTE=1 peut aussi donner des résultats satisfaisants. Le reste des (très) nombreux paramètres permet d'obtenir des générateurs aléatoires très performants. Olivier |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
Ok. Donc que je prenne le jeux de données avec i=1 ou i=4 c'est la même chose?
Moi je veux seulement combler les "trous" de mon fichier dc je ne suis pas obligé ensuite de faire une proc mianalyse? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Pour deux itérations différentes, as-tu constaté que la valeur imputée est la même? Si oui, tu filtres pour ne garder qu'une seule itération d'après D'olivier.
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
En fait ça dépend, parfois les valeurs changent.
On m'a expliqué que dans l'option var il fallait mettre la (les) variable(s) à valeurs manquantes ainsi que d'autre variables qui l'expliquent le mieux. Mais mes variables ne sont pas forcément liées entre elles. Personnellement j'avais compris que dans l'option var on mettait les variables à données manquantes et c'est tout . |
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
La proc MI simule les valeurs manquantes, et produit en sortie une moyenne sur chacune variables, toutes imputations confondues. à mon avis, il suffit de remplacer les valeurs manquantes par la moyenne.
Voici un exemple: Code :
Code :
|
||||
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour à tous.
Brice, si c'est pour imputer par des moyennes, ce n'est pas la peine de déranger la proc MI ni des macro-variables : une simple proc STDIZE suffit. Code :
Lilouche, je crois me souvenir qu'on doit citer dans VAR les variables à imputer et au moins une qui sera remplie à toutes les observations, liée si possible aux données à imputer. Mais cette relation n'est pas indispensable pour obtenir une imputation. Que tu choisisses le jeu de données i=1 ou i=4 ne change effectivement rien si tu veux juste boucher les trous dans ta table. Je propose même de simplifier en ne générant qu'un jeu unique de données imputées : NIMPUTE=1 dans la proc MI. Et dans ce cas, MIANALYZE sera totalement inutile. Bon courage. Olivier PS : pour une imputation simple, tu n'es pas obligée d'opter pour MI. Il y a d'autres méthodes, comme d'imputer par la moyenne (cf. proc STDIZE plus haut) avec des variables de stratification bien choisies (citées dans BY) pour avoir une imputation par régression. Tu peux aussi faire du hotdeck -- trouver une macro ne doit pas être bien compliqué. |
||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 17 ![]() |
Merci à vous pour vos réponses!! C'est plus clair maintenant.
Bonne journée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com