Multiple Imputation using NORM

#1
Hello there,

I am having trouble using NORM 2.03 for multiple imputation.

When the program creates imputation files, those variables that originally had decimals have lost them, and I cannot figure out why.

I ask the program to impute data with decimals in those variables that have decimals in the original data file. And when the program creates the imputation files, the imputed missing values show six decimals (as I asked), but the original non-missing values have lost their decimals (they now just show the period followed by zeros).

Here goes an example:

Original data:
4.325378
5.034826
-999
2.629572
-999
...

Imputed data:
4.000000
5.000000
3.532869
2.000000
7.592141
...

Does anybody now what is the reason for this and how to solve it?

Thanks all in advance.
 

Dason

Ambassador to the humans
#2
I've never used NORM and that sounds annoying. Can you just merge the two files to get a file that contains the imputed values for the original missing data and just the original data for the values that didn't need to be imputed?
 
#3
It is annoying, yes.

Merging files would be tedious, since I have hundreds of cases and multiple variables with missing values. It would be my last option...

Regardless, I hope there will be an explanation for it.
 

Dason

Ambassador to the humans
#4
Merging wouldn't be too bad. In R it would probably take 1-2 lines to do the merge itself. I'm guessing the imputation happens simultaneously for all the variables so that you end up with just a single output file for the imputed data set?

I hope you find a way to do this in NORM directly but I won't be able to help you there.
 
#5
Not, actually. It is multiple imputation and the program generates k different imputed data sets with different values (in my case, 40). So, it would take long to solve it merging files.

I also can use another software, but it seems very weird to me that this problem do not have a solution in NORM.

Thank you anyway, Dason.
 
#6
Here is the explanation:

NORM uses periods for decimals instead of commas, while SPSS uses commas. When I saved the original data from SPSS to a .dat file, the .dat file kept the commas, and I did not realize that I must replace them before using NORM. As a consequence, NORM lost the decimals in the original values.

Very simple.

I hope you won't loose time with things like this... :)
 

Lazar

Phineas Packard
#8
Why not use the MI built into SPSS? In any case you can tell SPSS if you want it to export using commas for decimals or periods. Export as a csv and try imputing again. I would recommend dropping NORM and using AMELIA II instead as it should be faster and will handle a wider variety of variable types.
 

Dason

Ambassador to the humans
#9
Or just use R :D

... Which is apparently what Lazar was hinting at with the Amelia suggestion. Silly me.
 
Last edited:
#10
As far as I know, the SPSS MI module is supposed to have some serious limitations. For instance, it does not include MI diagnostics that provide necessary information about whether the solution is acceptable and it does not include MI with the EM algorithm either.

Anyway, the problem was a very silly thing and I can perfectly use NORM.

But I will also take a look to Amelia II (...R :)).

Dason, I am from Spain, and Windows automatically stablishes commas for decimals in SPSS by default.

Thanks a lot, both of you.
 

Lazar

Phineas Packard
#11
Spss does not have diagnostic but you can save the iteration history and do it you self. Just plot the means and sds by iteration.
 
#12
I take note of that.

In my case, the EM method of MI is more desirable than the Multiple Linear Regression included in SPSS, since I have a considerable amount of missing values. But I would consider using SPSS with a lower percentage of missing values.

Thanks again.