I am trying to learn how to perform factor analysis in Pandas using the factor-analyzer module. I'm checking my work by running the same analysis in Stata.
The initial, exploratory factor analysis showed one factor with an eigenvalue greater than 1 (in both Stata and Pandas). In Stata, I ran my factor command to only include one factor:
factor varlist, pcf factors(1)
In Pandas, I ran the following:
FactorAnalyzer(n_factors=1, rotation=None, method="principal", impute='drop')
I expected to see the same factor loading charts in Stata and Pandas, and they were almost the same, except that the signs were reversed (all negative in Pandas).
I then reran the FactorAnalyzer (Pandas) model without constraining it to one factor (e.g., I allowed the default 3 factors), the factor loadings for Factor 1 are identical to the results from Stata.
I assume the programs must be doing something different when you constrain the model to 1 factor (maybe Stata is just suppressing additional factors in the output?), but I'd like to be sure I understand what's going on. Any insight/help is appreciated!