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.

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

I have a data set with approximately 500 observations on eight key variables. There are a lot of missing data; only about 1/12 of the observations are complete. I am using PROC MI and MIANALYZE in SAS to run various regressions on multiply imputed data, and this is working well. (There are about 200 variables in total, and there are high correlations among them which helps multiple imputation.)

However, I would also like to do factor analysis on the imputed data. This does not appear to be easily done in SAS, and it poses some interesting challenges:

  1. The signs of the factors are arbitrary, so different imputations could yield opposite signs;
  2. What was factor 1 in one imputation could be factor 2 in another imputation (although in this case, with so few key variables, it is likely that one factor is enough),

and probably other issues as well.

I could do exploratory factor analysis on each imputed data set, of course, and I could then average them on a sort of ad-hoc basis, but this seems very sloppy.

Some Googling did not reveal any solutions, but ... well, Google doesn't always find everything.

Any help, ideas, references appreciated. I have access to SAS and to R.

share|improve this question
@Stef's advise is right. Use procrustes rotation to identify which factor in one sample corresponds (similar) to which in the other. The rotation leaves you orthogonal rotation matrix which you can use to "translate" one loading matrix into the other if they proved to be in accordance. – ttnphns Dec 27 '12 at 10:55
If you were doing a confirmatory FA using SEM, I think you could deal with the missing data under the same MAR assumption with expectation-maximization/ML (e.g. However, I'm not sure how to take advantage of the all of the auxiliary information you have, or how this might apply to exploratory FA. Just a thought. – D L Dahly Dec 27 '12 at 14:07
up vote 6 down vote accepted

Factor analysis or principal components analysis may indeed yield solutions whose answers are rotated or mirrored versions of each other, so averaging the person scores is not a good idea. Several authors have explored the use of Procrustes analysis to correct for the rotational indetermination, so try searching on 'multiple imputation' and 'procrustes'.

share|improve this answer
Thanks @Stef I will do that – Peter Flom Dec 27 '12 at 12:50

Do confirmatory factor analysis instead, which would help fixing the loadings to have the same sign in all the imputations. At its heart, EFA is exploratory, while MI framework is that of parameter estimation. They just don't go together well: MI is not particularly suitable either for testing or exploratory analysis. EFA only makes sense if you know nothing about your data, which is rarely the case: if you designed the instrument, you must have had some idea in mind what you wanted to measure, and can just cut to the meat of that with CFA.

share|improve this answer
Interesting comment, @StasK. I see EFA used a lot when you know something about the data, or suspect something; I see CFA used relatively little. – Peter Flom Aug 8 '13 at 13:35
EFA is easier to do: just dump everything into the kitchen sink. With CFA, you have to get yourself into trouble of writing some syntax of grouping variables into factors, or drawing the diagrams in Stata or AMOS GUI. Few people have the extra 5 minutes to do that... although they do seem to have the couple of months to revise the papers thus written. – StasK Aug 8 '13 at 13:58
This is an interesting suggestion. So, if I have a large data set, where only a small percentage of cases would be affected by case wise deletion (say 4-5%), would it be sensible to conduct EFA on the original data set and than perform repeated CFA on the imputed data sets? How would you go about pooling the resulting loadings and extracted factor scores? – crash Oct 23 '13 at 13:53
EFA followed by CFA is rarely a good thing to do. You are using your data twice, and your type I error is essentially out of control. – StasK Oct 23 '13 at 19:20

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.