I am doing multiple imputation using chained equations in Stata to deal with item-missing data. One of the variables on which I did imputation was income. However after I did imputation, the imputed values of income contain negative values though the mean and standard deviation of income after imputation are almost similar to those before imputation. I used linear regression to impute income (though the distribution of income in the study population is not normal). While using other options of imputing income such as predictive mean matching, truncated regression, Poisson regression and negative binomial regression, the imputation model fails to converge. How should I deal with such negative imputed values? May I just ignore this and continue with further analysis of my multiple-imputed data?
I think you just continue with your analysis. For one thing, negative income is not impossible. If you lose money (e.g. on investments) and don't make any, that would be negative income.
If you are using Royston's ice package to do the multiple imputation, you can truncate the distribution of income at 0 with the
interval() option. For example, if you wanted to bound income between zero and some maximum:
ice income x1 x2 x3, saving(imputed) m(5) interval(income:0 maxincome)
help ice##interval for more details. You can also leave the upper end unbounded (not quite sure of the syntax from the documentation, but the author of ice has responded well to my inquiries in the past). ice can be found within Stata by typing:
net describe ice, from("http://www.homepages.ucl.ac.uk/~ucakjpr/stata/")
If you are using Stata's (versions 11 and up) built-in mi command to do the multiple imputation, you can truncate the distribution of income at 0 using the
truncreg method for income. For example, if you wanted to bound income between zero and some maximum:
mi impute chained (truncreg) income, ll(0) ul(maxincome) (regress) x1 x2 x3
If you did not want to specify
mi impute chained (truncreg) income, ll(0) (regress) x1 x2 x3
help mi_impute and
help mi_impute_truncreg for more details.