PCA в scikit-learn имеет атрибут «explain_variance», который фиксирует дисперсию, объясняемую каждым компонентом. Я не вижу подобного подобного для FactorAnalysis в scikit-learn. Как я могу вычислить дисперсию, объясняемую каждым компонентом для анализа факторов?Факторный анализ в sklearn: Разъяснение Разница
0
A
ответ
5
Вот как вы можете это сделать:
Сначала получите матрицу компонентов и дисперсию шума, как только вы выполнили факторный анализ, пусть фа быть ваша встроенная модель
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))
и так далее. Надеюсь это поможет.