Published on :
Statistical CREATION_INTERNE

Example 15 of documentation for PROC MI

This code is also available in: Deutsch Español Français
Awaiting validation
The script begins with the generation of a synthetic dataset named 'Mono1' containing missing values in the 'y1' variable. Then, it uses PROC MI to impute these missing values. The chosen imputation method is monotone regression with displayed details. Particular consideration is given to Missing Not At Random (MNAR) data on 'y1', modeled according to the treatment group 'Trt' when 'Trt' is equal to '0'. The imputed dataset is saved in 'outex15'. PROC PRINT procedures are used to display an overview of the original and imputed data.
Data Analysis

Type : CREATION_INTERNE


The initial dataset 'Mono1' is created directly in the script via a DATA STEP using random number generation functions (rannor, ranuni). The 'outex15' dataset is the result of the imputation performed by PROC MI.

1 Code Block
DATA STEP Data
Explanation :
This DATA STEP block creates the 'Mono1' dataset. It generates observations for two treatment groups (Trt=0 and Trt=1) with 'y0' and 'y1' variables. The 'y1' variable is conditionally made missing (value '.') for approximately 30% of observations, thus simulating a missing data scenario.
Copied!
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 Code Block
PROC PRINT
Explanation :
This PROC PRINT displays the first 10 observations of the 'Mono1' dataset to provide an overview of the data structure before imputation. Only the 'Trt', 'Y0', and 'Y1' variables are included in the output.
Copied!
1PROC PRINT DATA=Mono1(obs=10);
2 var Trt Y0 Y1;
3 title 'First 10 Obs in the Trial Data';
4RUN;
3 Code Block
PROC MI
Explanation :
This PROC MI performs multiple imputation of missing values in the 'Mono1' dataset. It uses seed '14823' for reproducibility and generates 15 imputed datasets, stored in 'outex15'. The 'monotone reg' method is specified for monotone regression imputation, with the 'details' option for additional information. The 'mnar' clause indicates that 'y1' is Missing Not At Random, and its model is conditioned on 'Trt' being '0'.
Copied!
1PROC MI DATA=Mono1 seed=14823 nimpute=15 out=outex15;
2 class Trt;
3 monotone reg (/details);
4 mnar model( y1 / modelobs= (Trt='0'));
5 var y0 y1;
6RUN;
4 Code Block
PROC PRINT
Explanation :
This PROC PRINT displays the first 10 observations of the imputed dataset 'outex15'. This allows visualizing the results of the multiple imputation performed by PROC MI.
Copied!
1 
2PROC PRINT
3DATA=outex15(obs=10);
4title 'First 10 Observations of the Imputed
5Data Set';
6RUN;
7 
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
Copyright Info : SAS SAMPLE LIBRARY