options ls=80; data msng500; infile 'H:\talks\CPC\datamat500.txt'; input ybmi agecent male inactive ybmiobs1 ybmiobs2 agecentobs inactiveobs; run; /* analysis of complete dataset */ proc reg data=msng500; model ybmi=agecent male inactive/clb; run; /* CC analysis under mechanism 1*/ proc reg data=msng500; model ybmiobs1=agecentobs male inactiveobs/clb; run; /* CC analysis under mechanism 2 */ proc reg data=msng500; model ybmiobs2=agecentobs male inactiveobs/clb; run; /* MI under mechanism 1 */ proc mi data=msng500 out=mi1 noprint seed=12137; mcmc chain=multiple displayinit initial=em(itprint); var ybmiobs1 agecentobs male inactiveobs; run; /* analysis of ybmiobs1 imputed values */ proc reg data=mi1 outest=outreg covout; model ybmiobs1=agecentobs male inactiveobs; by _Imputation_; run; /* combining estimates from ybmiobs1 analysis */ proc mianalyze data=outreg; var Intercept agecentobs male inactiveobs; run; /* impute under mech 2 */ proc mi data=msng500 out=mi2 noprint seed=12137; mcmc chain=multiple displayinit initial=em(itprint); var ybmiobs2 agecentobs male inactiveobs; run; /* analysis of ybmiobs2 imputed values */ proc reg data=mi2 outest=outreg2 covout; model ybmiobs2=agecentobs male inactiveobs; by _Imputation_; run; /* combining estimates from ybmiobs1 analysis */ proc mianalyze data=outreg2; var Intercept agecentobs male inactiveobs; run;