2016-12-30 8 views
0

PCA in scikit-learn hat ein Attribut namens "explained_variance", das die von jeder Komponente erklärte Varianz erfasst. Ich sehe keine ähnliche Sache für FactorAnalysis in scikit-learn. Wie kann ich die von jeder Komponente für die Faktoranalyse erläuterte Varianz berechnen?Faktorenanalyse in sklearn: Erklärte Varianz

Antwort

5

Hier ist, wie Sie es tun können:

zuerst die Komponenten-Matrix und der Rauschvarianz erhalten, sobald Sie Faktorenanalyse durchgeführt haben, lassen fa

m = fa.components_ 
n = fa.noise_variance_ 

Square Ihr angepasste Modell sein diese Matrix

m1 = m**2 

Berechnen Sie die Summe von jeder der Spalten von m1

m2 = np.sum(m1,axis=1) 

die% Abweichung von dem ersten Faktor nun erklärte

pvar1 = (100*m2[0])/np.sum(m2) 

sein wird, in ähnlicher Weise, zweiter Faktor

pvar2 = (100*m2[1])/np.sum(m2) 
jedoch

, gibt es auch eine Abweichung von der Rauschkomponente erklärt, wenn Sie Konto dass in Ihrer Varianz erklärt, müssen Sie berechnen

pvar1_with_noise = (100*m2[0])/(np.sum(m2)+np.sum(n)) 
pvar2_with_noise = (100*m2[1])/(np.sum(m2)+np.sum(n)) 

und so weiter. Hoffe das hilft.