/******************* interact.do Example file demonstrating ways of imputing interactions. Written by Russell Dimond, Summer 2012 for the Social Science Computing Cooperative at UW-Madison ********************/ clear all set more off // create random data set obs 10000 set seed 88 gen g=(runiform()>.5) gen x=(invnorm(runiform())) gen y=x+x*g+(invnorm(runiform())) // drop values at random replace x=. if runiform()<.2 replace y=. if runiform()<.2 // complete cases analysis reg y g##c.x preserve // passive interaction mi set wide mi register imputed x y //g mi register regular g mi impute chained (regress) x y = g, add(10) mi estimate: reg y g##c.x restore preserve // JAV gen xg=x*g mi set wide mi register imputed x y xg mi register regular g mi impute chained (regress) x xg y = g, add(10) mi estimate: reg y x xg g restore preserve // impute groups separately mi set wide mi register imputed x y mi register regular g mi impute chained (regress) x y, by(g) add(10) mi estimate: reg y g##c.x