3
$\begingroup$

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$
4
  • $\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$ Mar 23, 2015 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, 2015 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$ Mar 23, 2015 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, 2015 at 19:33

1 Answer 1

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$
3
  • $\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 to mice. $\endgroup$ Mar 23, 2015 at 17:03

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