Exemple 12 pour PROC MIANALYZE : Analyse de sensibilité MNAR

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Le script génère d'abord un jeu de données simulé (Mono1) avec des valeurs manquantes arbitraires. Il effectue ensuite deux analyses distinctes pour comparer les résultats : une première imputation multiple standard (MAR - Missing At Random) suivie d'une régression linéaire et d'une analyse combinée, puis une seconde approche utilisant un ajustement MNAR pour modéliser les données manquantes non aléatoires, également suivie d'une régression et d'une synthèse des résultats via PROC MIANALYZE.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données 'Mono1' est généré intégralement dans la première étape DATA à l'aide de boucles et de fonctions aléatoires (rannor, ranuni).

1 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données 'Mono1' simulant des données d'essai clinique avec deux groupes de traitement (Trt). Des valeurs manquantes sont introduites artificiellement dans la variable y1.
Copié !
1DATA Mono1;
2 DO Trt=0 to 1;
3 DO j=1 to 5;
4 y0=10 + rannor(999);
5 y1= y0 + Trt + rannor(999);
6 IF (ranuni(999) < 0.3) THEN y1=.;
7 OUTPUT;
8 END; END;
9 
10 DO Trt=0 to 1;
11 DO j=1 to 45;
12 y0=10 + rannor(999);
13 y1= y0 + Trt + rannor(999);
14 IF (ranuni(999) < 0.3) THEN y1=.;
15 OUTPUT;
16 END; END;
17 drop j;
18RUN;
2 Bloc de code
PROC PRINT
Explication :
Affichage des 10 premières observations pour vérification des données générées.
Copié !
1PROC PRINT DATA=Mono1(obs=10);
2 var Trt Y0 Y1;
3 title 'First 10 Obs in the Trial Data';
4RUN;
3 Bloc de code
PROC MI Data
Explication :
Première exécution de l'imputation multiple (20 imputations) en supposant un schéma monotone et une méthode de régression standard. Les données imputées sont sauvées dans 'outex12a'.
Copié !
1PROC MI DATA=Mono1 seed=14823 nimpute=20 out=outex12a;
2 class Trt;
3 monotone reg;
4 var Trt y0 y1;
5RUN;
4 Bloc de code
PROC REG Data
Explication :
Exécution d'un modèle de régression linéaire sur chaque jeu de données imputé (via le groupe BY _Imputation_). Les estimations des paramètres sont exportées dans la table 'regparms'.
Copié !
1ods select none;
2PROC REG DATA=outex12a;
3 model y1= Trt y0;
4 BY _Imputation_;
5 ods OUTPUT parameterestimates=regparms;
6RUN;
7ods select all;
5 Bloc de code
PROC MIANALYZE
Explication :
Combinaison des résultats des 20 régressions pour produire des inférences statistiques valides (Rubin's rules) pour la première approche.
Copié !
1 
2PROC MIANALYZE parms=regparms;
3modeleffects Trt;
4RUN;
5 
6 Bloc de code
PROC MI Data
Explication :
Seconde exécution de l'imputation multiple. Cette fois, l'instruction MNAR est utilisée pour spécifier un modèle pour les données manquantes non aléatoires sur la variable y1, spécifiquement pour le groupe Trt=0.
Copié !
1PROC MI DATA=Mono1 seed=14823 nimpute=20 out=outex12b;
2 class Trt;
3 monotone reg;
4 mnar model( y1 /modelobs=(Trt='0'));
5 var y0 y1;
6RUN;
7 Bloc de code
PROC REG Data
Explication :
Régression linéaire sur les données issues de l'imputation MNAR, répétée par imputation.
Copié !
1ods select none;
2PROC REG DATA=outex12b;
3 model y1= Trt y0;
4 BY _Imputation_;
5 ods OUTPUT parameterestimates=regparms;
6RUN;
7ods select all;
8 Bloc de code
PROC MIANALYZE
Explication :
Combinaison finale des résultats pour l'approche MNAR.
Copié !
1 
2PROC MIANALYZE parms=regparms;
3modeleffects Trt;
4RUN;
5 
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 : SAS SAMPLE LIBRARY