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 57.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 57.9.1: Model Information
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 57.9.2 lists distinct missing data patterns with corresponding statistics.
Output 57.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 57.9.3.
Output 57.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 57.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 57.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 57.9.5 and Output 57.9.6 display variance information and parameter estimates, respectively, from the multiple imputation.
Output 57.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 57.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 |