@Author:Runsen
在使用Python进行因子分析和主成分分析的时候,很多人报 :‘FactorAnalyzer’ object has no attribute 'analyze’和fa.loadings改成fa.loadings_。
这是版本的问题:
我们先到 Github的网站看看: https://github.com/EducationalTestingService/factor_analyzer
可以看到对应的更新文档,你就会发现’FactorAnalyzer’ object has no attribute ‘analyze’ 其实是你下载了最新的版本,因为很多FactorAnalyzer的文章都是2018年。
在最新版本没有analyze的APi,因此解决的方法可以回退pip install factor_analyzer==0.2.3
或者直接使用官方文档的示例: https://readthedocs.org/projects/factor-analyzer/
>>> import pandas as pd
>>> from factor_analyzer import FactorAnalyzer
>>> df_features = pd.read_csv('tests/data/test02.csv')
>>> fa = FactorAnalyzer(rotation=None)
>>> fa.fit(df_features)
FactorAnalyzer(bounds=(0.005, 1), impute='median', is_corr_matrix=False,
method='minres', n_factors=3, rotation=None, rotation_kwargs={},
use_smc=True)
>>> fa.loadings_
array([[-0.12991218, 0.16398154, 0.73823498],
[ 0.03899558, 0.04658425, 0.01150343],
[ 0.34874135, 0.61452341, -0.07255667],
[ 0.45318006, 0.71926681, -0.07546472],
[ 0.36688794, 0.44377343, -0.01737067],
[ 0.74141382, -0.15008235, 0.29977512],
[ 0.741675 , -0.16123009, -0.20744495],
[ 0.82910167, -0.20519428, 0.04930817],
[ 0.76041819, -0.23768727, -0.1206858 ],
[ 0.81533404, -0.12494695, 0.17639683]])
>>> fa.get_communalities()
array([0.588758 , 0.00382308, 0.50452402, 0.72841183, 0.33184336,
0.66208428, 0.61911036, 0.73194557, 0.64929612, 0.71149718])
loadings和loadings_ 一样