The MI Procedure
Example 77.12 Saving and Using Parameters for MCMC
(View the complete code for this example.)
This example uses the MCMC method with multiple chains as specified in Example 77.9. It saves the parameter values used for each imputation in an output data set of type EST called Miest. This output data set can then be used to impute missing values in other similar input data sets. The following statements invoke the MI procedure and specify the MCMC method with multiple chains to create 40 imputations:
proc mi data=Fitness1 seed=21355417 nimpute=40 mu0=50 10 180; mcmc chain=multiple initial=em outest=miest; var Oxygen RunTime RunPulse; run;
The following statements list the parameters used for the imputations in Output 77.12.1. Note that the data set includes observations with _TYPE_=‘SEED’ which contains the seed to start the next random number generator.
proc print data=miest(obs=15); title 'Parameters for the Imputations'; run;
Output 77.12.1: OUTEST Data Set
| Parameters for the Imputations |
| Obs | _Imputation_ | _TYPE_ | _NAME_ | Oxygen | RunTime | RunPulse |
|---|---|---|---|---|---|---|
| 1 | 1 | SEED | 825240167.00 | 825240167.00 | 825240167.00 | |
| 2 | 1 | PARM | 46.77 | 10.47 | 169.41 | |
| 3 | 1 | COV | Oxygen | 30.59 | -8.32 | -50.99 |
| 4 | 1 | COV | RunTime | -8.32 | 2.90 | 17.03 |
| 5 | 1 | COV | RunPulse | -50.99 | 17.03 | 200.09 |
| 6 | 2 | SEED | 1895925872.00 | 1895925872.00 | 1895925872.00 | |
| 7 | 2 | PARM | 47.41 | 10.37 | 173.34 | |
| 8 | 2 | COV | Oxygen | 22.35 | -4.44 | -21.18 |
| 9 | 2 | COV | RunTime | -4.44 | 1.76 | 1.25 |
| 10 | 2 | COV | RunPulse | -21.18 | 1.25 | 125.67 |
| 11 | 3 | SEED | 137653011.00 | 137653011.00 | 137653011.00 | |
| 12 | 3 | PARM | 48.21 | 10.36 | 170.52 | |
| 13 | 3 | COV | Oxygen | 23.59 | -5.25 | -19.76 |
| 14 | 3 | COV | RunTime | -5.25 | 1.66 | 5.00 |
| 15 | 3 | COV | RunPulse | -19.76 | 5.00 | 110.99 |
The following statements invoke the MI procedure and use the INEST= option in the MCMC statement:
proc mi data=Fitness1 mu0=50 10 180; mcmc inest=miest; var Oxygen RunTime RunPulse; run;
The "Model Information" table in Output 77.12.2 describes the method used in the multiple imputation process. The remaining tables for the example are identical to the tables in Output 77.9.2, Output 77.9.4, Output 77.9.5, and Output 77.9.6 in Example 77.9.
Output 77.12.2: Model Information