I am using Amelia for multiple imputation, and I am satisfied with the imputed results. But I want to restrict the imputed variable to positive values. Is there a way that Amelia can handle it or should I use some other package which can take care of it.
1 Answer
The Amelia documentation covers two solutions (p. 26):
Use the log-transformed values of the variable you wish to be constrained as positive $x$ in the imputation procedure. The log of a positive number is in $\mathbb{R}$, so $\log(x)$ respects the interval of the normal distribution. Exponentiate the imputed values of $x$ to retrieve the data values on the original scale.
Alternatively, you can impose a constraint on the data values by specifying bounds. This is implemented in Amelia using rejection sampling, so if your bounds are incongruent with what is observed in the data, the algorithm will sample very slowly because it will reject at least most of its sampled values.
-
$\begingroup$ Unless I misunderstood your first point, I actually disagree with it. AFAIK, log-transformed values are (multivariate) normal only for log-normal distribution. $\endgroup$ Mar 23, 2015 at 16:53
-
$\begingroup$ @AleksandrBlekh Yes, that was very sloppy of me. How do you feel about the edit? $\endgroup$– Sycorax ♦Mar 23, 2015 at 16:55
-
$\begingroup$ The wording is better (good), but I still see the problem here. Covering an interval of values is not the same as being normally distributed, is it? Take a look at my relevant answer and that discussion, in general. Actually, I think that this question is a possible duplicate of the above-referenced one. In my dissertation data analysis, I've discovered that the data is not MV normal. That was the reason I had to switch from using
Amelia
for multiple imputation tomice
. $\endgroup$ Mar 23, 2015 at 17:03
Amelia
for multiple imputation tomice
. $\endgroup$