Face à des données manquantes, beaucoup ont encore le réflexe de supprimer les lignes incomplètes. C'est une erreur statistique majeure qui introduit des biais et réduit la puissance de vos tests. La force du flux PROC MI et PROC MIANALYZE est de ne pas se contenter de "deviner" une valeur unique, mais de capturer l'incertitude réelle liée à l'absence d'information.
Le secret du code : Dans cet exemple, l'astuce réside dans la parfaite synchronisation des trois étapes. PROC MI crée plusieurs versions "plausibles" de votre réalité. PROC REG analyse chaque version séparément grâce à l'instruction BY _Imputation_. Enfin, le véritable "cerveau" de l'opération, PROC MIANALYZE, applique les règles de Rubin pour fusionner ces résultats.
Le détail qui fait la différence : Notez bien l'option covout dans la procédure de régression. Sans elle, vous ne transmettez pas les erreurs-types à l'étape finale, rendant l'ajustement de la variance impossible. En utilisant ce workflow, vous ne faites pas que remplir des cases vides : vous produisez des inférences robustes et scientifiquement défendables, même sur un jeu de données imparfait.
Le processus commence par la création d'un jeu de données 'Fitness1' contenant des mesures de condition physique avec des valeurs manquantes introduites volontairement. Ensuite, PROC MI est utilisé pour générer plusieurs jeux de données complets par imputation multiple. Une analyse de régression (PROC REG) est effectuée sur chaque jeu de données imputé. Finalement, PROC MIANALYZE combine les résultats de ces régressions pour produire des estimations et des tests statistiques valides qui tiennent compte de l'incertitude liée à l'imputation.
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. Le jeu de données s'appelle Fitness1.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc crée la table 'Fitness1' à partir de données internes fournies via 'datalines'. Des valeurs manquantes (représentées par des points '.') sont intentionnellement incluses pour les variables RunTime et RunPulse.
Explication : La procédure MI (Multiple Imputation) est utilisée pour gérer les données manquantes. Elle génère plusieurs jeux de données 'complets' en remplaçant les valeurs manquantes par des estimations plausibles. Le résultat est stocké dans la table 'outmi'.
Copié !
proc mi data=Fitness1 seed=3237851 noprint out=outmi;
var Oxygen RunTime RunPulse;
run;
1
2
PROC MI
3
DATA=Fitness1 seed=3237851 noprint out=outmi;
4
var Oxygen RunTime RunPulse;
5
RUN;
6
3 Bloc de code
PROC REG Data
Explication : Une régression linéaire (PROC REG) est exécutée pour modéliser 'Oxygen' en fonction de 'RunTime' et 'RunPulse'. L'instruction 'by _Imputation_' force l'exécution d'une régression distincte pour chaque jeu de données imputé par PROC MI. Les estimations des paramètres de chaque modèle sont sauvegardées dans la table 'outreg'.
Copié !
proc reg data=outmi outest=outreg covout noprint;
model Oxygen= RunTime RunPulse;
by _Imputation_;
run;
1
PROC REGDATA=outmi outest=outreg covout noprint;
2
model Oxygen= RunTime RunPulse;
3
BY _Imputation_;
4
RUN;
4 Bloc de code
PROC MIANALYZE
Explication : La procédure MIANALYZE combine les résultats des régressions effectuées sur les multiples jeux de données imputés. Elle lit les estimations depuis 'outreg' et produit une inférence statistique finale (estimations des paramètres, erreurs standard, tests) qui est valide en tenant compte de la variabilité due à l'imputation.
Pour garantir la validite de vos tests d hypothese avec PROC MIANALYZE, n oubliez pas de toujours inclure l option COVOUT dans votre PROC REG (ou l option COVB dans d autres procedures) : sans cette option, les erreurs types et les matrices de covariance indispensables au calcul de la variance intra-imputation ne sont pas transmises, ce qui fausse les resultats combines de l analyse finale.
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
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.