EducationalTestingService / factor_analyzer

A Python module to perform exploratory & confirmatory factor analyses.
GNU General Public License v2.0
235 stars 68 forks source link

how to get Proportion Explained, RMSR and chi-squared? #104

Open FlorinAndrei opened 2 years ago

FlorinAndrei commented 2 years ago

Is your feature request related to a problem? Please describe. Dataset:

ifanmot.csv

R code:

fan <- principal(ifanmot[,1:42],nfactors=3,rotate="varimax")
print(fan,cut=.5,sort=TRUE)

R output:

Principal Components Analysis
Call: principal(r = ifanmot[, 1:42], nfactors = 3, rotate = "varimax")
Standardized loadings (pattern matrix) based upon correlation matrix

                       RC1  RC2  RC3
SS loadings           9.63 5.53 4.96
Proportion Var        0.23 0.13 0.12
Cumulative Var        0.23 0.36 0.48
Proportion Explained  0.48 0.27 0.25
Cumulative Proportion 0.48 0.75 1.00

Mean item complexity =  1.7
Test of the hypothesis that 3 components are sufficient.

The root mean square of the residuals (RMSR) is  0.06 
 with the empirical chi square  2531.01  with prob <  1.2e-194 

Fit based upon off diagonal values = 0.97

Describe the solution you'd like Using FactorAnalyzer(n_factors=3, rotation="varimax", method="principal") in Python I know how to get SS loadings, Proportion Var, and Cumulative Var and I get the same values as with R.

I do not know how to get Proportion Explained (and Cumulative Proportion would be nice, although I can compute that). Proportion Explained would be very useful to assess the performance of the PCA. But I can't get it from the Python library.

Same question for the hypothesis that 3 components are sufficient, and the RMSR and chi-squared.

desilinguist commented 2 years ago

Closely related to #99.