I have a data set that I am trying to perform multiple imputation with chained equations on, using -mi impute chained-. The data comes from a questionnaire that includes something called the "CAGE." It's a four yes-no item scale about drinking (alcohol). Before those four items, there is a "screener" that asks whether you drink alcohol at all. If you say no, you are supposed to skip the four items. If you say yes, you are supposed to answer them. Finally, the four items get scored by summing them. If a person answers no to the "screener" we are supposed set all four items (and the score) to 0. (A score >= 2 is considered indicative of problem drinking.)
There are several dozen observations in the data set (overall N about 4,000) in which the "screener" was not answered and neither were any of the four items. While I personally think that the notion that these data can be considered missing at random is pretty ludicrous, considering the stigmatized content, my collaborators are intent on forging ahead with MI.
The problem I have is that when I try:
Stata tells me that I can't use an imputed variable in specifying the conditional. And the manual does indeed say that's the case--you can only condition on a non-imputed variable.
But I need to impute the missing values of the cage_screen and cage1-cage4, and it does not make sense to impute cage1-cage4 unless the imputed value of cage_screen == 1. (It's a bit like imputing answers to questions about pregnancy in a male. What do you do if gender is, itself an imputed variable?)
How do I accomplish this? I appreciate any suggestions.
There are several dozen observations in the data set (overall N about 4,000) in which the "screener" was not answered and neither were any of the four items. While I personally think that the notion that these data can be considered missing at random is pretty ludicrous, considering the stigmatized content, my collaborators are intent on forging ahead with MI.
The problem I have is that when I try:
Code:
mi register cage_screen cage1 cage2 cage3 cage4 imputed mi impute chained (logit, augment) cage_screen /// (logit, augment conditional(if cage_screen == 1)) cage1 cage2 cage3 cage4 /// other imputations... = regular variables, force
But I need to impute the missing values of the cage_screen and cage1-cage4, and it does not make sense to impute cage1-cage4 unless the imputed value of cage_screen == 1. (It's a bit like imputing answers to questions about pregnancy in a male. What do you do if gender is, itself an imputed variable?)
How do I accomplish this? I appreciate any suggestions.
Comment