sklearn中的因子分析:解释方差

时间:2016-12-30 00:18:21

标签: scikit-learn factor-analysis

scikit-learn中的PCA有一个名为“explain_variance”的属性,它捕获每个组件解释的差异。在scikit-learn中,我没有看到像FactorAnalysis这样的类似事情。如何计算因子分析的每个组件所解释的方差?

1 个答案:

答案 0 :(得分:7)

以下是如何做到这一点:

首先进行因子分析后得到组件矩阵和噪声方差,让fa成为您的拟合模型

m = fa.components_
n = fa.noise_variance_

对此矩阵进行平方

m1 = m**2

计算m1

的每列的总和
m2 = np.sum(m1,axis=1)

现在第一个因素解释的%差异将是

pvar1 = (100*m2[0])/np.sum(m2)

同样,第二个因素

pvar2 = (100*m2[1])/np.sum(m2)

但是,噪音成分也会解释差异,如果你在方差中考虑到这一点,则需要计算

pvar1_with_noise = (100*m2[0])/(np.sum(m2)+np.sum(n))
pvar2_with_noise = (100*m2[1])/(np.sum(m2)+np.sum(n))

等等。希望这会有所帮助。