sklearn 中的因子分析:解释方差
Posted
技术标签:
【中文标题】sklearn 中的因子分析:解释方差【英文标题】:Factor Analysis in sklearn: Explained Variance 【发布时间】:2017-05-14 07:51:33 【问题描述】:scikit-learn 中的 PCA 有一个名为“explained_variance”的属性,它捕获每个组件解释的方差。对于 scikit-learn 中的 FactorAnalysis,我没有看到类似的情况。如何计算因子分析中每个组件解释的方差?
【问题讨论】:
【参考方案1】:你可以这样做:
在进行因子分析后,首先获取分量矩阵和噪声方差,让 fa 成为您的拟合模型
m = fa.components_
n = fa.noise_variance_
对该矩阵求平方
m1 = m**2
计算 m1 的每一列的总和
m2 = np.sum(m1,axis=1)
现在由第一个因素解释的 %variance 将是
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))
等等。希望这会有所帮助。
【讨论】:
这实际上对我不起作用。我得到的“pvar1”等数字加起来都是 100%,最后一个因素总是有余数。他们不应该按解释的方差量降序排序吗?以上是关于sklearn 中的因子分析:解释方差的主要内容,如果未能解决你的问题,请参考以下文章