2016-12-30 5 views
0

PCA в scikit-learn имеет атрибут «explain_variance», который фиксирует дисперсию, объясняемую каждым компонентом. Я не вижу подобного подобного для FactorAnalysis в scikit-learn. Как я могу вычислить дисперсию, объясняемую каждым компонентом для анализа факторов?Факторный анализ в sklearn: Разъяснение Разница

ответ

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)) 

и так далее. Надеюсь это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^