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 61.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 61.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 61.9.2 lists distinct missing data patterns with corresponding statistics.
Output 61.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 61.9.3.
Output 61.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 61.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 61.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 61.9.5 and Output 61.9.6 display variance information and parameter estimates, respectively, from the multiple imputation.
Output 61.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 61.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 |