use DYDwide, clear gen treat = min(pages1, 300) * (group==1) / 100 // Handling missing data by IPW gen obs = !missing(logtotal3) logit obs treat $xvars if group==1 predict pobs1 logit obs $xvars if group==1 predict pobs2 gen weight = pobs2/pobs1 if group==1 replace weight = 1 if group==0 ivregress 2sls logtotal3 $xvars (treat=group) [pw=weight], eform(Ratio) // Handling missing data by ATR (Nagelkerke) reg treat group $xvars predict resid, resid regress logtotal3 treat $xvars resid, eform(Ratio) // Handling missing data by MI use imputed2, clear gen treat = min(pages1, 300) * (group==1) / 100 mim, category(fit): ivregress 2sls logtotal3 $xvars (treat=group), eform(Ratio) mim, mcerror eform