Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Suppose we have a data set test:


The . denotes missing values. When would it be better to use the average of the non-missing values to impute the missing values rather than assuming that the data comes from a normal distribution?

share|improve this question

Don Rubin wrote an influential paper proving that there is no single imputation method that will produce unbiased inferences (where "single imputation" means the imputing of only one value for a missing observation). However, in the same paper he pointed out that it may well be possible to create multiple imputations whose mean is an unbiased estimate of the missing value, and whose contributions to increased variance in subsequent analysis is a reasonable estimate of the added uncertainty due to data missingness.

This is his paper:

Rubin, D. B. (1976). Inference and missing data. Biometrika, 63(3):581–592.

And this an update to it: Rubin, D. B. (1996). Multiple imputation after 18+ years. Journal of the American Statistical Association, 91(434):473–489.

And this a gentle introduction to the topic of multiple imputation:

Schafer, J. L. (1999). Multiple imputation: a primer. Statistical Methods in Medical Research, 8:3–15.

There are a variety of statistical software packages that support multiple imputation (e.g. mice in R, or ice in Stata, or indeed Stata's built-in multiple imputation capabilities in recent versions).

share|improve this answer
I understand Rubin's point to be that you can get an unbiased point estimate using careful single imputation, but the standard errors will be wrong. However, in many cases mean imputation will have other problems, in particular distorting patterns of association with other variables. – Maarten Buis Jun 25 '14 at 18:58
@MaartenBuis Thank you, I have tried to correct that in my revision... does that work? – Alexis Jun 25 '14 at 19:24
Not really. The point of (multiple) imputation is not to estimate missing values, those are assumed to be lost forever. However, you often do know other things about those individuals/firms/cows, i.e. other variables are observed for those observations. With (multiple) imputation you want to make the most effective use of that observed data, which you would throw away if you just ignored all observations with at least one missing value. – Maarten Buis Jun 26 '14 at 7:59
Suggestion: ... no single imputation method that will produce unbiased inference. This means that with single imputation the standard errors, $p$-values and confidence intervals will be off in the sense that they will ignore the uncertainty introduced by the imputation. – Maarten Buis Jun 26 '14 at 8:05

It is never a good idea to do this, but, if there is very little missing data then it will do relatively little harm, will be much easier to implement and, depending on your final audience, may be a lot easier to explain. However, a relatively sophisticated audience may object to the single mean imputation.

share|improve this answer
One can also perform sensitivity analyses by, say, bracketing results based on mean imputation with results including reasonable minimum and maximum imputations. – Alexis Jun 25 '14 at 19:28

The question: "What imputation method is the best choice" is alway dependend on the dataset you look at

Taking the mean, in general is a valid imputation method. As somebody already mentioned, it is easy to explain for publications and it has its advantages in computing speed.

Mean as a imputation method is a good choice for series which randomly fluctuate around a certain value/level.

For the series shown, mean doesn look appropriate. Since it is also just one variable you cannot use classical multivariate algorithms as provided by mice, Amelia, VIM.

You would have to look especially at time series algorithms. One simple, yet for your example good like approach would be a linear interpolation.

x <- c(1,8,12,14,NA,NA,19)

Here is the output for a linear interpolation:

[1]  1.00000  8.00000 12.00000 14.00000 15.66667 17.33333 19.00000

This is probably a better result than the mean.

There are also more advanced time series methods in the imputeTS package (by me) or one in the forecast package (by Rob Hyndman)

share|improve this answer

Your Answer


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.