3
$\begingroup$

This question already has an answer here:

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.

$\endgroup$

marked as duplicate by Xi'an, whuber Mar 23 '15 at 17:42

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ 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 to mice. $\endgroup$ – Aleksandr Blekh Mar 23 '15 at 17:04
  • $\begingroup$ @AleksandrBlekh The OP's question is not a duplicate of the one you cite, since the one you cite is about imputation constraints and conditionalities as a general topic, while the OP is asking about a specific constraint within Amelia. $\endgroup$ – Alexis Mar 23 '15 at 17:49
  • $\begingroup$ @Alexis: Well, it depends on how you define a duplicate question. I think that it's not necessarily should cover exactly the same topic. The question I cite covers a wider topic, which includes one of this question's (it contains Amelia-specific discussion as well). Hence, my suggestion of marking this one as a possible duplicate (it seems that moderators agree with me on this). $\endgroup$ – Aleksandr Blekh Mar 23 '15 at 17:58
  • $\begingroup$ Even if this isn't a duplicate, it looks off-topic any way as a request for code or software advice. $\endgroup$ – Nick Cox Mar 23 '15 at 19:33
4
$\begingroup$

The Amelia documentation covers two solutions (p. 26):

  1. 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.

  2. 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.

$\endgroup$
  • $\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$ – Aleksandr Blekh Mar 23 '15 at 16:53
  • $\begingroup$ @AleksandrBlekh Yes, that was very sloppy of me. How do you feel about the edit? $\endgroup$ – Reinstate Monica Mar 23 '15 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 to mice. $\endgroup$ – Aleksandr Blekh Mar 23 '15 at 17:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.