Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

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

share|improve this question

migrated from stackoverflow.com Jan 8 '13 at 17:07

This question came from our site for professional and enthusiast programmers.

    
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. –  Seth Jan 7 '13 at 21:28
    
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. –  Martin Pohl Jan 7 '13 at 21:48

1 Answer 1

up vote 5 down vote accepted

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.

share|improve this answer
    
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. –  Wayne Jan 8 '13 at 21:24
    
@Wayne: Thats true, and it indeed happened. But you can set boundaries with Amelia, which I did after I had this problem. –  Martin Pohl Jan 8 '13 at 21:49
    
@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. –  Martin Pohl Jan 8 '13 at 22:29
    
@Martin. Yes, that's right. The imputed value is calculated as the predicted value + a random draw from the residual distribution. –  Stef van Buuren Jan 9 '13 at 9:20

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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