The MI Procedure

Example 63.10 Producing Monotone Missingness with MCMC

This example uses the MCMC method to impute just enough missing values for a data set with an arbitrary missing pattern so that each imputed data set has a monotone missing pattern based on the order of variables in the VAR statement.

The following statements invoke the MI procedure and specify the IMPUTE=MONOTONE option to create the imputed data set with a monotone missing pattern. You must specify a VAR statement to provide the order of variables in order for the imputed data to achieve a monotone missing pattern.

proc mi data=Fitness1 seed=17655417 out=outex10;
   mcmc impute=monotone;
   var Oxygen RunTime RunPulse;
run;

The "Model Information" table in Output 63.10.1 describes the method used in the multiple imputation process.

Output 63.10.1: Model Information

The MI Procedure

Model Information
Data Set WORK.FITNESS1
Method Monotone-data MCMC
Multiple Imputation Chain Single Chain
Initial Estimates for MCMC EM Posterior Mode
Start Starting Value
Prior Jeffreys
Number of Imputations 5
Number of Burn-in Iterations 200
Number of Iterations 100
Seed for random number generator 17655417



The "Missing Data Patterns" table in Output 63.10.2 lists distinct missing data patterns with corresponding statistics. Here, an "X" means that the variable is observed in the corresponding group, a "." means that the variable is missing and will be imputed to achieve the monotone missingness for the imputed data set, and an "O" means that the variable is missing and will not be imputed. The table also displays group-specific variable means.

Output 63.10.2: Missing Data Patterns

Missing Data Patterns
Group Oxygen RunTime RunPulse Freq Percent Group Means
Oxygen RunTime RunPulse
1 X X X 21 67.74 46.353810 10.809524 171.666667
2 X X O 4 12.90 47.109500 10.137500 .
3 X O O 3 9.68 52.461667 . .
4 . X X 1 3.23 . 11.950000 176.000000
5 . X O 2 6.45 . 9.885000 .



As shown in the table in Output 63.10.2, the MI procedure needs to impute only three missing values from group 4 and group 5 to achieve a monotone missing pattern for the imputed data set.

When you use the MCMC method to produce an imputed data set with a monotone missing pattern, tables of variance information and parameter estimates are not created.

The following statements are used just to show the monotone missingness of the output data set Outex10:

proc mi data=outex10 seed=15541 nimpute=0;
   var Oxygen RunTime RunPulse;
run;

The "Missing Data Patterns" table in Output 63.10.3 displays a monotone missing data pattern.

Output 63.10.3: Monotone Missing Data Patterns

The MI Procedure

Missing Data Patterns
Group Oxygen RunTime RunPulse Freq Percent Group Means
Oxygen RunTime RunPulse
1 X X X 110 70.97 46.152428 10.861364 171.863636
2 X X . 30 19.35 47.796038 10.053333 .
3 X . . 15 9.68 52.461667 . .



The following statements impute one value for each missing value in the monotone missingness data set Outex10:

proc mi data=outex10 nimpute=1 seed=51343672 out=outex10a;
   monotone method=reg;
   var Oxygen RunTime RunPulse;
   by _Imputation_;
run;

You can then analyze these data sets by using other SAS procedures and combine these results by using the MIANALYZE procedure. Note that the VAR statement is required with a MONOTONE statement to provide the variable order for the monotone missing pattern.