I have a general question about the Amelia package. I'm no mathematician or statistician, but I had to use R and impute and analyze some data, and Amelia showed results that fitted my expectations. I'll have to defend my choice soon, but I haven't totally grasped what Amelia does.

I'm particularly interested in a simple as possible explanation in how Amelia imputation works. I've read that it uses a bootstrapping-based algorithm, but how does it chose the values?

The data had mainly value >0 (chemical concentrations, water temperature and pH-value).

  • $\begingroup$ I'd start with the package author's website, which has links to papers about the operation of Amelia. Gary King at Harvard Also, the vignette (pdf) has a fairly comprehensive introduction to the package and algorithm. $\endgroup$ – Seth Jan 7 '13 at 21:28
  • $\begingroup$ Thank you for your fast answer. I've allready read the vignette, but as I said I'm no mathematician. It's just to technical for me. I guess a simplification of 2.2 from the vignette, including the EM algorithm with bootstraping would be good. $\endgroup$ – Martin Pohl Jan 7 '13 at 21:48

Amelia assumes that the data follow a multivariate normal distribution, so all information about the relations in the data can be summarized by just means and covariances. When data are incomplete, Amelia uses the well-known EM algorithm to find corrected estimates of the means and covariances. See Little and Rubin (2002) for more detail.

In their original form the EM estimates cannot be used to create multiple imputations, as the estimates do not reflect the fact that they have been estimated from a finite sample. In order to solve this, Amelia first takes m bootstrap samples, and applies the EM-algorithm to each of these bootstrap samples. The m estimates of means and variances will now be different. The first set of estimates is used to draw the first set of imputed values by a form of regression analysis, the second set is used to calculate the second set of imputed values, and so on.

As Amelia assumes a multivariate normal distribution, it will work best when your data are approximately normally distributed (possibly after a transformation), and when the statistics you calculate from the data in your complete-data analysis are near the center of the distribution, like means, modes or regression weights.

  • $\begingroup$ I'm no expert, but it sounds like this may raise some caution flags, since the input values are constrained, while the normal distribution is not. You could thus end up with negative imputed values, etc. People often use normal approximation when it's not totally appropriate, and get lucky because things are far enough away from the boundaries, but the OP may need to look closely at the results. $\endgroup$ – Wayne Jan 8 '13 at 21:24
  • $\begingroup$ @Wayne: Thats true, and it indeed happened. But you can set boundaries with Amelia, which I did after I had this problem. $\endgroup$ – Martin Pohl Jan 8 '13 at 21:49
  • $\begingroup$ @Stef van Burren: Thank you! Especially the information that it is a regression analysis helps me. So to summarize it for a amateur like me: The bootstraping creates samples based on the distribution, and the EM-algorhytm fits those samples to the original data. The decision for which value will be put in place of the missing value is made by regression. $\endgroup$ – Martin Pohl Jan 8 '13 at 22:29
  • 2
    $\begingroup$ @Martin. Yes, that's right. The imputed value is calculated as the predicted value + a random draw from the residual distribution. $\endgroup$ – Stef van Buuren Jan 9 '13 at 9:20
  • $\begingroup$ Great explanation, upvoted. Can the random draw from the residual distribution be omitted? Would that be a sensible thing to do if all I care about is filling in missing values, and no further statistical analysis is required? $\endgroup$ – t0x1n Oct 18 '14 at 13:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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