Imputation Multiple sous SAS : Comment utiliser PROC MI pour restaurer vos jeux de données

Ce code est également disponible en : Deutsch Español
Niveau de difficulté
Confirmé
Publié le :
Michael

Le Conseil de l'Expert

Michael
Responsable de l'infrastructure Viya.

Dans le cadre d'analyses cliniques ou épidémiologiques, la gestion des données manquantes est une étape critique. L'utilisation de la PROC MI avec la méthode MCMC (Markov Chain Monte Carlo), comme illustrée ici sur les données Fitness1, représente l'état de l'art pour traiter un schéma de données manquantes arbitraire.

Contrairement aux méthodes d'imputation simple qui réduisent artificiellement la variabilité, l'imputation multiple génère ici 5 jeux de données distincts. Cette approche permet de capturer l'incertitude liée aux valeurs absentes en combinant les corrélations entre l'absorption d'oxygène (Oxygen) et les performances physiques.

Le code commence par créer un jeu de données 'Fitness1' contenant des mesures de condition physique (Oxygen, RunTime, RunPulse). Certaines valeurs sont manquantes pour illustrer un schéma de données manquantes arbitraire. Ensuite, la procédure `PROC MI` est utilisée pour imputer ces valeurs manquantes. Elle génère 5 jeux de données imputés en utilisant une méthode MCMC (Markov Chain Monte Carlo) et produit des graphiques de diagnostic pour évaluer la convergence des chaînes.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées directement dans le script via une étape DATA avec une instruction DATALINES. Il n'y a aucune dépendance à des fichiers externes.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc de code crée la table SAS 'Fitness1'. L'instruction `input` lit les trois variables Oxygen, RunTime et RunPulse. Le double 'at' (`@@`) à la fin de l'instruction `input` indique à SAS de conserver la ligne de données en cours pour lire plusieurs observations à partir de la même ligne.
Copié !
1DATA Fitness1;
2 INPUT Oxygen RunTime RunPulse @@;
3 DATALINES;
444.609 11.37 178 45.313 10.07 185
554.297 8.65 156 59.571 . .
649.874 9.22 . 44.811 11.63 176
7 . 11.95 176 . 10.85 .
839.442 13.08 174 60.055 8.63 170
950.541 . . 37.388 14.03 186
1044.754 11.12 176 47.273 . .
1151.855 10.33 166 49.156 8.95 180
1240.836 10.95 168 46.672 10.00 .
1346.774 10.25 . 50.388 10.08 168
1439.407 12.63 174 46.080 11.17 156
1545.441 9.63 164 . 8.92 .
1645.118 11.08 . 39.203 12.88 168
1745.790 10.47 186 50.545 9.93 148
1848.673 9.40 186 47.920 11.50 170
1947.467 10.50 170
20;
21 
2 Bloc de code
PROC MI
Explication :
Ce bloc utilise la procédure d'imputation multiple `PROC MI`. L'option `nimpute=5` demande la création de 5 jeux de données imputés. La méthode d'imputation utilisée est MCMC, comme spécifié par l'instruction `mcmc`. Des graphiques de diagnostic (trace et fonction d'autocorrélation) sont demandés pour la moyenne de la variable `Oxygen` afin de vérifier la convergence de l'algorithme. Les variables à imputer sont listées dans l'instruction `var`.
Copié !
1ods graphics on;
2PROC MI DATA=Fitness1 seed=501213 nimpute=5 mu0=50 10 180;
3 mcmc plots=(trace(mean(Oxygen)) acf(mean(Oxygen)));
4 var Oxygen RunTime RunPulse;
5RUN;
L'Astuce Pro
L'activation des ods graphics et l'option plots=(trace acf) sont essentielles. Elles permettent de visualiser les tracés de convergence (trace plots) et les fonctions d'autocorrélation (ACF). Sans ces diagnostics, vous avancez en aveugle : ils confirment que les chaînes de Markov ont bien atteint leur distribution stationnaire, garantissant que les valeurs imputées sont statistiquement cohérentes. Enfin, l'utilisation d'un seed fixe assure la reproductibilité de vos résultats, un impératif pour toute soumission de rapport d'analyse.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y, NAME: MIEX11, TITLE: Documentation Example 11 for PROC MI, PRODUCT: STAT