The MI Procedure

Example 75.9 MCMC Method

This example uses the MCMC method to impute missing values for a data set with an arbitrary missing pattern. The following statements invoke the MI procedure and specify the MCMC method with six imputations:

proc mi data=Fitness1 seed=21355417 nimpute=40 mu0=50 10 180;
   mcmc chain=multiple displayinit initial=em(itprint);
   var Oxygen RunTime RunPulse;
run;

The "Model Information" table in Output 75.9.1 describes the method used in the multiple imputation process. When you use the CHAIN=MULTIPLE option, the procedure uses multiple chains and completes the default 200 burn-in iterations before each imputation. The 200 burn-in iterations are used to make the iterations converge to the stationary distribution before the imputation.

Output 75.9.1: Model Information

The MI Procedure

Model Information
Data Set WORK.FITNESS1
Method MCMC
Multiple Imputation Chain Multiple Chains
Initial Estimates for MCMC EM Posterior Mode
Start Starting Value
Prior Jeffreys
Number of Imputations 40
Number of Burn-in Iterations 200
Seed for random number generator 21355417



By default, the procedure uses a noninformative Jeffreys prior to derive the posterior mode from the EM algorithm as the starting values for the MCMC method.

The "Missing Data Patterns" table in Output 75.9.2 lists distinct missing data patterns with corresponding statistics.

Output 75.9.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 . 4 12.90 47.109500 10.137500 .
3 X . . 3 9.68 52.461667 . .
4 . X X 1 3.23 . 11.950000 176.000000
5 . X . 2 6.45 . 9.885000 .



When you use the ITPRINT option within the INITIAL=EM option, the procedure displays the "EM (Posterior Mode) Iteration History" table in Output 75.9.3.

Output 75.9.3: EM (Posterior Mode) Iteration History

EM (Posterior Mode) Iteration History
_Iteration_ -2 Log L -2 Log Posterior Oxygen RunTime RunPulse
0 254.482800 282.909549 47.104077 10.554858 171.381669
1 255.081168 282.051584 47.104077 10.554857 171.381652
2 255.271408 282.017488 47.104077 10.554857 171.381644
3 255.318622 282.015372 47.104002 10.554523 171.381842
4 255.330259 282.015232 47.103861 10.554388 171.382053
5 255.333161 282.015222 47.103797 10.554341 171.382150
6 255.333896 282.015222 47.103774 10.554325 171.382185
7 255.334085 282.015222 47.103766 10.554320 171.382196



When you use the DISPLAYINIT option in the MCMC statement, the "Initial Parameter Estimates for MCMC" table in Output 75.9.4 displays the starting mean and covariance estimates used in the MCMC method. The same starting estimates are used in the MCMC method for multiple chains because the EM algorithm is applied to the same data set in each chain. You can explicitly specify different initial estimates for different imputations, or you can use the bootstrap method to generate different parameter estimates from the EM algorithm for the MCMC method.

Output 75.9.4: Initial Parameter Estimates

Initial Parameter Estimates for MCMC
_TYPE_ _NAME_ Oxygen RunTime RunPulse
MEAN   47.103766 10.554320 171.382196
COV Oxygen 24.549967 -5.726112 -15.926036
COV RunTime -5.726112 1.781407 3.124798
COV RunPulse -15.926036 3.124798 83.164045



Output 75.9.5 and Output 75.9.6 display variance information and parameter estimates, respectively, from the multiple imputation.

Output 75.9.5: Variance Information

Variance Information (40 Imputations)
Variable Variance DF Relative
Increase
in Variance
Fraction
Missing
Information
Relative
Efficiency
Between Within Total
Oxygen 0.020887 0.917452 0.938861 27.529 0.023336 0.022830 0.999430
RunTime 0.001897 0.066931 0.068875 27.371 0.029045 0.028264 0.999294
RunPulse 2.240072 3.674188 5.970262 16.273 0.624920 0.389201 0.990364



Output 75.9.6: Parameter Estimates

Parameter Estimates (40 Imputations)
Variable Mean Std Error 95% Confidence Limits DF Minimum Maximum Mu0 t for H0:
Mean=Mu0
Pr > |t|
Oxygen 47.106918 0.968949 45.1206 49.0933 27.529 46.817748 47.429633 50.000000 -2.99 0.0059
RunTime 10.558597 0.262440 10.0205 11.0967 27.371 10.467541 10.659412 10.000000 2.13 0.0424
RunPulse 171.150201 2.443412 165.9775 176.3229 16.273 167.120956 174.569040 180.000000 -3.62 0.0022