The MI Procedure

Example 76.16 Adjusting Imputed Continuous Values 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 using specified shift parameters to adjust imputed continuous values.

Suppose that a pharmaceutical company is conducting a clinical trial to test the efficacy of a new drug. The trial consists of two groups of equally allocated patients: a treatment group that receives the new drug and a placebo control group. The variable Trt is an indicator variable, with a value of 1 for patients in the treatment group and a value of 0 for patients in the control group. The variable Y0 is the baseline efficacy score, and the variables Y1 and Y2 are the efficacy scores at two successive follow-up visits.

Suppose the data set Fcs1 contains the data from the trial that have possible missing values in Y1 and Y2. Output 76.16.1 lists the first 10 observations in the data set Fcs1.

Output 76.16.1: Clinical Trial Data

First 10 Obs in the Trial Data

ObsTrty0y1y2
1011.482611.042813.1181
209.677511.04188.9792
309.9504.11.2598
4011.028211.4097.
5010.710710.5782.
619.06018.479110.6421
719.04679.498510.4719
8110.62909.4941.
9110.127710.988611.1983
1019.69108.457610.9535


Also suppose that for the treatment group, the distribution of missing Y1 responses has an expected value that is 0.4 lower than that of the corresponding distribution of the observed Y1 responses. Similarly, the distribution of missing Y2 responses has an expected value that is 0.5 lower than that of the corresponding distribution of the observed Y1 responses.

The following statements adjust the imputed Y1 and Y2 values by –0.4 and –0.5, respectively, for observations in the treatment group:

proc mi data=Fcs1 seed=52387 out=outex16;
   class Trt;
   fcs nbiter=25 reg( /details);
   mnar adjust( y1 /shift=-0.4 adjustobs=(Trt='1'))
        adjust( y2 /shift=-0.5 adjustobs=(Trt='1'));
   var Trt y0 y1 y2;
run;

The MNAR statement imputes missing values for scenarios under the MNAR assumption. The ADJUST option specifies parameters for adjusting the imputed values for specified subsets of observations. The first ADJUST option specifies the shift parameter for the imputed Y1 values for observations for which TRT=1. The second ADJUST option specifies the shift parameter for the imputed Y2 values for observations for which TRT=1.

Because Trt is listed in the VAR statement, it is used as a covariate for other imputed variables in the imputation process. In addition, because Trt is specified in the ADJUSTOBS= suboption, it is also used to select the subset of observations from which the imputed values for the variable are to be adjusted.

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

Output 76.16.2: Model Information

The MI Procedure

Model Information
Data SetWORK.FCS1
MethodFCS
Number of Imputations25
Number of Burn-in Iterations25
Seed for random number generator52387


The "FCS Model Specification"  table in Output 76.16.3 describes methods and imputed variables in the imputation model. The MI procedure uses the regression method to impute all the variables.

Output 76.16.3: FCS Model Specification

FCS Model Specification
MethodImputed Variables
Regressiony0 y1 y2
Discriminant FunctionTrt


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

Output 76.16.4: Missing Data Patterns

Missing Data Patterns
GroupTrty0y1y2FreqPercentGroup Means
y0y1y2
1XXXX3939.0010.10839710.38094210.606255
2XXX.2929.0010.20717910.626839.
3XX.X3232.009.604041.10.396557


The "MNAR Adjustments to Imputed Values"  table in Output 76.16.5 lists the adjustment parameters for the five imputations.

Output 76.16.5: MNAR Adjustments to Imputed Values

MNAR Adjustments to Imputed
Values
Imputed
Variable
ObservationsShift
y1Trt = 1-0.4000
y2Trt = 1-0.5000


The following statements list the first 10 observations of the data set Outex16 in Output 76.16.6:

proc print data=outex16(obs=10);
   var _Imputation_ Trt y0 y1 y2;
   title 'First 10 Observations of the Imputed Data Set';
run;

Output 76.16.6: Imputed Data Set

First 10 Observations of the Imputed Data Set

Obs_Imputation_Trty0y1y2
11011.482611.042813.1181
2109.677511.04188.9792
3109.950411.140911.2598
41011.028211.409710.8214
51010.710710.57829.4899
6119.06018.479110.6421
7119.04679.498510.4719
81110.62909.494110.7865
91110.127710.988611.1983
10119.69108.457610.9535