The MI Procedure

Example 76.17 Adjusting Imputed Classification Levels in Sensitivity Analysis

(View the complete code for this example.)

This example illustrates the pattern-mixture model approach to multiple imputation under the MNAR assumption by adjusting imputed classification levels.

Carpenter and Kenward (2013, pp. 240–241) describe an implementation of sensitivity analysis that adjusts an imputed missing covariate, where the covariate is a nominal classification variable.

Suppose a high school class is conducting a study to analyze the effects of an extra web-based study class and grade level on the improvement of test scores. The regression model that is used for the study is

where Grade is the grade level (with the values 6 to 8), Study is an indicator variable (with the values 1 for "completes the study class" and 0 for "does not complete the study class"), Score0 is the current test score, and Score is the test score for the subsequent test.

Also suppose that Study, Score0, and Score are fully observed and the classification variable Grade contains missing grade levels. Output 76.17.1 lists the first 10 observations in the data set Mono2.

Output 76.17.1: Student Test Data

First 10 Obs in the Student Test Data

ObsGradeScore0ScoreStudy
1664.489868.82101
2672.070076.53281
3665.776675.55671
4.70.285376.01801
5674.338880.06171
6670.220776.16061
7668.690477.97701
8.72.675879.68951
9664.893969.38891
10666.603872.77931


The following statements use the MONOTONE and MNAR statements to impute missing values for Grade under the MNAR assumption:

proc mi data=Mono2 seed=34857 nimpute=20 out=outex17;
   class Study Grade;
   monotone logistic (Grade / link=glogit);
   mnar adjust( Grade (event='6') /shift=2);
   var Study Score0 Score Grade;
run;

The LINK=GLOGIT suboption specifies that the generalized logit function be used in fitting the logistic model for Grade. The ADJUST option specifies a shift parameter that is applied to the generalized logit model function values for the response level GRADE=6. This assumes that students who have a missing grade level are more likely to be students in grade 6.

The "Model Information" table  in Output 76.17.2 describes the method that is used in the multiple imputation process.

Output 76.17.2: Model Information

The MI Procedure

Model Information
Data SetWORK.MONO2
MethodMonotone
Number of Imputations20
Seed for random number generator34857


The "Monotone Model Specification"  table in Output 76.17.3 describes methods and imputed variables in the imputation model. The MI procedure uses the logistic regression method (generalized logit model) to impute the variable Grade.

Output 76.17.3: Monotone Model Specification

Monotone Model Specification
MethodImputed Variables
RegressionScore0 Score
Logistic RegressionGrade


The "Missing Data Patterns"  table in Output 76.17.4 lists distinct missing data patterns and their corresponding frequencies and percentages.

Output 76.17.4: Missing Data Patterns

Missing Data Patterns
GroupStudyScore0ScoreGradeFreqPercentGroup Means
Score0Score
1XXXX12885.3370.41823074.469573
2XXX.2214.6769.33850373.666293


The "MNAR Adjustments to Imputed Values"  table in Output 76.17.5 lists the adjustment parameter for the 10 imputations.

Output 76.17.5: MNAR Adjustments to Imputed Values

MNAR Adjustments to
Imputed Values
Imputed
Variable
EventShift
Grade62.0000


The following statements list the first 10 observations of the data set Outex17 in Output 76.17.6:

proc print data=outex17(obs=10);
   var _Imputation_ Grade Study Score0 Score;
   title 'First 10 Observations of the Imputed Student Test Data Set';
run;

Output 76.17.6: Imputed Data Set

First 10 Observations of the Imputed Student Test Data Set

Obs_Imputation_GradeStudyScore0Score
116164.489868.8210
216172.070076.5328
316165.776675.5567
416170.285376.0180
516174.338880.0617
616170.220776.1606
716168.690477.9770
816172.675879.6895
916164.893969.3889
1016166.603872.7793