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

Scikit learn sklearn中的因子分析:解释方差,scikit-learn,factor-analysis,Scikit Learn,Factor Analysis,scikit learn中的PCA具有一个名为“解释的方差”的属性,该属性捕获每个组件解释的方差。我在scikit learn中没有看到类似的因子分析。如何计算因子分析中每个成分解释的方差?以下是如何计算: 首先得到成分矩阵和噪声方差,一旦你进行了因子分析,让fa成为你的拟合模型 m = fa.components_ n = fa.noise_variance_ 将这个矩阵平方 m1 = m**2 计算m1中每列的总和 m2 = np.sum(m1,axis=1) 现在,由第一个因素解释的

scikit learn中的PCA具有一个名为“解释的方差”的属性,该属性捕获每个组件解释的方差。我在scikit learn中没有看到类似的因子分析。如何计算因子分析中每个成分解释的方差?

以下是如何计算:

首先得到成分矩阵和噪声方差,一旦你进行了因子分析,让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))

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

这实际上对我不起作用。我得到的“pvar1”等的数字加起来都是100%,最后一个因素总是有余数。它们不应该按解释的方差量降序排列吗?