scikit-learn中的PCA有一个名为“explain_variance”的属性,它捕获每个组件解释的差异。在scikit-learn中,我没有看到像FactorAnalysis这样的类似事情。如何计算因子分析的每个组件所解释的方差?
答案 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))
等等。希望这会有所帮助。