6

I'm using R's factanal function for factor analysis. I know from reading that there are various ways of picking how many factors to use in the analysis. I don't know which to choose, or how to do any of them.

Here's the data I have so far from factanal. I don't understand what SS loadings are, or why degrees_of_freedom is not = min(#rows,#columns) - #factors.

Just judging from the Cumulative Var, which I think I understand, I would guess that 2 is the right number of factors, but am I right? And if so, how can I convince others that this is the right number of factors?

factanal(x = charges[3:8], factors = 1)

#                Factor1
# SS loadings      4.779
# Proportion Var   0.797

Test of the hypothesis that 1 factor is sufficient. The chi square statistic is 279.13 on 9 degrees of freedom. The p-value is 6.9e-55

factanal(x = charges[3:8], factors = 2, scores = "regression")

#                Factor1 Factor2
# SS loadings      2.817   2.544
# Proportion Var   0.470   0.424
# Cumulative Var   0.470   0.894

Test of the hypothesis that 2 factors are sufficient. The chi square statistic is 77.1 on 4 degrees of freedom. The p-value is 7.15e-16

factanal(x = charges[3:8], factors = 3)

#                Factor1 Factor2 Factor3
# SS loadings      2.769   2.618   0.063
# Proportion Var   0.461   0.436   0.010
# Cumulative Var   0.461   0.898   0.908

The degrees of freedom for the model is 0 and the fit was 0.1047

Max Ghenis
  • 780
  • 1
  • 9
  • 17
David Shobe
  • 141
  • 2
  • 2
  • 4

2 Answers2

11

There are several approaches to determining the number of factors to extract for exploratory factor analysis (EFA). However, practically all of them boil down to be either visual, or analytical.

Visual approaches are mostly based on visual representation of factors' eigenvalues (so called scree plot - see this page and this page), depending on extracted factor number. A scree plot allows to determine the number of factors to extract by detecting an area, where the curve makes relatively sharp drop (called "elbow"). Note that the scree plot term is also applicable to principal component analysis (PCA) - for a basic example, see this page.

Analytical approaches are based on various criteria and heuristics, including Kaiser criterion (eigenvalue greater than one), variance explained criterion (this heuristic's cut-off values vary from 0.8-0.9 to as low as 0.5, depending on researcher's specific goals), parallel analysis, Very Simple Structure (VSS) criterion, Velicer's MAP test and other techniques (see more details here and here, as well as via links within).

While I've tried to answer your question briefly and give mainly an overview of the topic, there are many nice answers to similar or related questions on Cross Validated, which I highly recommend you to review. For example, for PCA vs. EFA basic arguments, see this discussion. For much more advanced arguments on this topic, see this and this discussion. For applying VSS criterion, using R, see this discussion. For parallel analysis, see this discussion.

Aleksandr Blekh
  • 7,867
  • 2
  • 27
  • 93
  • 1
    Technically the Kaiser criterion for *common factor analysis* (CFA) is **eigenvalue greater than *zero***. In Kaiser's paper he used the term "factor analysis" to apply to the eigendecomposition of the correlation matrix—what we today call principal component analysis. The equivalent logic of for the eigendecomposition of the correlation matrix with the diagonal replaced with the "communalities" (what we today call CFA) works out to be $\lambda>0$. See http://doyenne.com/Software/files/PA_for_PCA_vs_FA.pdf – Alexis Jan 25 '15 at 18:38
  • 1
    @Alexis: Thank you for your clarification. The referenced paper is indeed interesting and I will study it. However, it seems to cover a special case of applying _Kaiser criterion_ in the context of **parallel analysis**, which to the best of my knowledge is _not always_ the case. I also wanted to mention that I find using the abbreviation CFA for _common factor analysis_ a bit questionable, considering the popularity of using CFA to refer to _confirmatory factor analysis_. Perhaps, it helps that the paper does not seem to involve any references to the latter meaning of the abbreviation. – Aleksandr Blekh Jan 26 '15 at 02:12
  • 1
    @AlexksandrBlekh I think I disagree: my point about Kaiser holds *from his actual paper*, the link I provided simple drew out the math, albeit in the context of Horn's parallel analysis. Eigenvalue > 1 was articulated for principal component analysis, not for common factor analysis. The math in the latter works out to eigenvalue > 0. "CFA" is a semantic... refer to it as FA or something else or don't use acronyms as you like. :) – Alexis Jan 26 '15 at 03:47
  • @Alexis: Fair enough! Thank you, again, for clarifying. Point taken (still requires me to analyze the papers, though, to _really understand_ those things :-). – Aleksandr Blekh Jan 26 '15 at 04:44
  • 1
    Updated link: https://alexisdinno.com/Software/files/PA_for_PCA_vs_FA.pdf – Alexis Oct 12 '17 at 00:23
-1

I think that I cant help you specifically with R, but a common step on verifying the number of factors is to either look at the loadings and retaining as many factors as those ones with a value of 1 or more. This is the most straight way to pick the factors. If you want, you can manage to get the "scree plot", wich gives you a more visual insight on the number of factors but is more subjective. In that plot, when you get a "fall" in the curve plotted might indicate the number of factors. This approach is good when you want to reduce the number of variables of a big dataset with many variables highly correlated. So two is the number of factors to extract in your case.

Instead, if you want to really cluster variables and this factor has a meaning on people or economic behavior, you might want to select only the two or three highest loadings, because you will be able to access the Component Plot in Rotated Space, i.e. the graphical representation of the variables in a two-dimensional (or three-dimensional) space, wich gives you clues on interpreting the factor if this is your goal.

Since you put the theoretical references for your studies at the end of your work, you will be telling others that you are not doing something sparse - it´s based on proofs stated by others. Statistically speaking, you could run a correlation analysis between the scores obtained from the pca with the response variable, for example. If the PCA was ok and the original variables are also correlated with this response variable, your factor will also be and you´ll have a very solid and understandable number to convince people.

Hope this helped you in some way.If I have said anything wrong, anyone please correct me.

leonardop
  • 9
  • 3
  • 1
    Same comment to you as to @AleksandrBlekh ... The eigenvalue > 1 rule articulated by Kaiser was for the eigendecomposition of the correlation matrix (ie.. PCA, not factor analysis, though he used that label). The math for common factor analysis works out to retain if eigenvalues > 0. See [Gently Clarifying the Application of Horn’s Parallel Analysis to Principal Component Analysis Versus Factor Analysis](http://doyenne.com/Software/files/PA_for_PCA_vs_FA.pdf) – Alexis Jan 25 '15 at 20:20
  • 1
    The most important comment here is that the Kaiser criterion is woefully generous. Any factor accounting for more than the variance attributable to one average item is retained. That is nearly always choosing too many factors. Which makes it more of a pity that this remains the SPSS default :-(. Better by far to use a method which corrects for chance, like parallel analysis or, better still, move to EFA, or full SEM modelling. – tim Oct 17 '16 at 09:13
  • @leonardop Updated link: https://alexisdinno.com/Software/files/PA_for_PCA_vs_FA.pdf – Alexis Oct 12 '17 at 00:23