Should data be normalized before or after imputation of missing data?

I am working on a metabolomics data set of 81 samples x 407 variables with ~17% missing data. I would like to compare a number of imputation methods to see which is best for my data.

Is there a general rule for the order of pre-treating a data set? Should I impute first and normalize after or normalize first?

I have tried both ways with k-nearest-neighbor imputation and normalization to the median and compared the results using PCA and there are very few differences in the factor maps.

However when using Random Forest imputation the imputation error is much higher if I normalize the data first (normalized data NRMSE = 0.708, raw data NRMSE = 0.122).

My two main questions are:

1. Should imputation or normalization of data come first? and

2. Does the order depend on the imputation function used?

• If your data are very non-normal (and e.g. needs a log-transformation to give approximate normality), then any imputation method assuming normality may not perform so well. On the other hand, if we are talking about normalizing variables by subtracting the mean and/or dividing by the standard deviation, it is not immediatly clear why it should matter much except that (a) if things are on very different scales it may help with computational stability and (b) you may have to do it again (if required for what you do), because the imputed values would likely change mean & standard deviation. – Björn May 26 '16 at 7:41
• Why are you normalizing at all? Instead, use a method that deals with your data. – Peter Flom May 26 '16 at 11:10
• Normalization is a standard pre-treatment in metabolomics data analysis. It removes the systematic variability that comes from instrumental analyses. Approximately 40% of my variables have a skewed distribution and while the scale for all data is the same the absolute values vary by 4 orders of magnitude. What are some imputation methods that do not assume normality? – Emma May 26 '16 at 20:33

In my opinion, since you are using kNN imputation, and kNN is based on distances you should normalize your data prior to imputation kNN. The problem is, the normalization will be affected by NA values which should be ignored.

For instance, take the e.coli, in which variables magnitude is quite homogeneous. Creating NA's artificially for percentages from .05 to .20 by 0.1 will produce mean square error (MSE) between original and imputed dataset as follow:

0.08380378; 0.08594711; 0.09165323; 0.1005489; 0.09978495; 0.1120758; 0.1046071; 0.1048477; 0.1087384; 0.1283818; 0.1201014; 0.1264724; 0.1337024; 0.1457246; 0.1365055; 0.154879;

Otherwise, if you take Breast Tissue dataset, which have a heterogeneous magnitude through data you will have,

889.4696; 927.6151; 773.7256; 1229.74; 3356.833; 645.8142; 755.98; 2110.523; 987.5008; 1796.339; 1603.461; 1476.863; 2887.509; 2001.222; 905.6305; 2334.935;

This is, with normalization you can keep a reasonable track of MSE.

• I think there are some slips in the writing here: for instance, I don't understand "that magnitude thought variables is quite homogeneous" – Silverfish Oct 18 '16 at 19:30
• Thanks! But I have no clue about some article that can sustain this. – Buzuzyma Oct 25 '16 at 21:32