The MI Procedure

Example 63.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=6 mu0=50 10 180 ;
   mcmc chain=multiple displayinit initial=em(itprint);
   var Oxygen RunTime RunPulse;
run;

The "Model Information" table in Output 63.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 63.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 6
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 63.9.2 lists distinct missing data patterns with corresponding statistics.

Output 63.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 63.9.3.

Output 63.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 63.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 63.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 63.9.5 and Output 63.9.6 display variance information and parameter estimates, respectively, from the multiple imputation.

Output 63.9.5: Variance Information

Variance Information
Variable Variance DF Relative
Increase
in Variance
Fraction
Missing
Information
Relative
Efficiency
Between Within Total
Oxygen 0.051560 0.928170 0.988323 25.958 0.064809 0.062253 0.989731
RunTime 0.003979 0.070057 0.074699 25.902 0.066262 0.063589 0.989513
RunPulse 4.118578 4.260631 9.065638 7.5938 1.127769 0.575218 0.912517



Output 63.9.6: Parameter Estimates

Parameter Estimates
Variable Mean Std Error 95% Confidence Limits DF Minimum Maximum Mu0 t for H0:
Mean=Mu0
Pr > |t|
Oxygen 47.164819 0.994145 45.1212 49.2085 25.958 46.858020 47.363540 50.000000 -2.85 0.0084
RunTime 10.549936 0.273312 9.9880 11.1118 25.902 10.476886 10.659412 10.000000 2.01 0.0547
RunPulse 170.969836 3.010920 163.9615 177.9782 7.5938 168.252615 172.894991 180.000000 -3.00 0.0182