I have a data set of 30 cultural variables for 80 different countries. Each variable is measured for a different subset of countries. There are too many variables and too many missing values to do a simple factor analysis. I have therefore divided the set of cultural variables into four subsets so that variables in the same subset have as many countries in common as possible. Missing values in each subset are imputed using the expectation maximization method (R package norm2). I am doing a factor analysis to get four unrotated factors from each subset. A secondary factor analysis on the 16 factors (four from each subset) gives me a solution with 3 factors. I have used expectation maximization for missing values here again.

The primary factor analysis in each subset has one dominating factor (one eigenvalue much bigger than the rest). I am using unrotated factors or quartimax rotation in order to get most of the variance into the first factor to reflect this fact. My problem is that all the factors from the primary factor analyses get equal weight in the secondary factor analysis so that the dominance of a single factor is weakened. Can you suggest a solution that better reflects the fact that one factor is dominating?

  • $\begingroup$ I dared to remove 'sem' and 'hierarchical-clustering' tags, for they seem to me irrelevant here. You are talking of second-order factoring $\endgroup$
    – ttnphns
    Mar 11, 2020 at 20:23
  • $\begingroup$ @ttnphns: SEM may be a viable solution to my problem. $\endgroup$
    – A Fog
    Mar 12, 2020 at 8:06

1 Answer 1


I found a solution. The function umxEFA in R package umx can do an exploratory factor analysis with more variables than observations and with missing values. This eliminates the need for a hierarchical model. It takes two hours to calculate in my case, but the result is perfect. The algorithm is based on a structural equation model with the factors as latent variables.

I can recommend this function for EFA with missing values and/or with more variables than observations. Make sure you use umx version 3 or later.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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