// MI Example 3
use "https://statisticalhorizons.com/wp-content/uploads/hip.dta", clear
drop if wave == 4 // Not sure these are the correct data
xtset sid
preserve
drop if missing(cesd, srh, adl, walk, pain)
bysort sid: drop if _N < 3
eststo clear
eststo: xtreg cesd srh walk adl pain ib3.wave, fe
restore
preserve
eststo: xtreg cesd srh walk adl pain ib3.wave, fe
restore
preserve
mi set mlong
mi register impute cesd srh walk adl pain wave
mi impute mvn cesd srh walk adl pain wave, ///
add(10) burnin(500) burnbetween(30)
eststo: mi estimate, post: xtreg cesd srh walk adl pain ib3.wave, fe
restore
preserve
reshape wide adl pain srh walk cesd, i(sid) j(wave)
mi set mlong
mi register impute cesd* srh* walk* adl* pain*
mi impute mvn cesd* srh* walk* adl* pain*, ///
add(10) burnin(500) burnbetween(200)
mi reshape long adl pain srh walk cesd, i(sid) j(wave)
eststo: mi estimate, post: xtreg cesd srh walk adl pain ib3.wave, fe
restore
// Table 6.4
esttab, wide se nonumbers mtitle("LD by person" "LD by person-wave" "MI by person-wave" "MI by person")
Feb 15, 2018
Multiple imputation of longitudinal data
This allows replicating the third example in Allison (2002, pp. 74-76).
Labels:
esttab,
mi estimate,
mi impute,
mi reshape,
Missing values,
Textbooks,
xtreg