In dieser Frage geht es um eine effiziente Methode zur Berechnung von Hauptkomponenten.
Viele Texte zur linearen PCA befürworten die Verwendung der Singulärwertzerlegung der fallweisen Daten . Das heißt, wenn wir Daten und wollen die Variablen (seine ersetzen Spalten ) von Hauptkomponenten, wir tun SVD: X = U S V ' (. Sq Wurzeln des Eigenwerts), singuläre Werte die Hauptdiagonale von Besatzungs S , rechte Eigenvektoren V sind die orthogonale Rotationsmatrix von Achsenvariablen in Achsenkomponenten, linke Eigenvektoren U sind wie V , nur für Fälle. Wir können dann Komponentenwerte berechnen als C = X V = U S.
Eine andere Möglichkeit, eine PCA von Variablen durchzuführen, besteht in der Zerlegung der quadratischen Matrix (dh R kann Korrelationen oder Kovarianzen usw. zwischen den Variablen sein). Die Zerlegung kann eine Eigenzerlegung oder eine Singulärwertzerlegung sein: Bei einer quadratischen symmetrischen positiven semidefiniten Matrix ergeben sie dasselbe Ergebnis R = V L V ' mit Eigenwerten als Diagonale von L und V wie zuvor beschrieben. Komponentenwerte werden C = X V .
Nun meine Frage: Wenn Daten eine große Matrix sind und die Anzahl der Fälle (was häufig der Fall ist) viel größer als die Anzahl der Variablen ist, wird erwartet, dass Weg (1) viel langsamer ist als Weg (2), weil way (1) einen recht teuren Algorithmus (wie SVD) auf eine große Matrix anwendet; es berechnet und speichert eine riesige Matrix U, die wir in unserem Fall wirklich nicht brauchen (die PCA von Variablen). Wenn ja, warum sprechen sich dann so viele Lehrbücher dafür aus oder erwähnen nur so (1)? Vielleicht ist es ist effizient und ich bin etwas fehlt?
Joliffe, Principal component analysis, 2nd ed.
Eigentlich beschreibt Joliffe beide Möglichkeiten, aber im Kernkapitel über PCA sagt er, soweit ich mich erinnern kann, nur über Weg 1.
R
svd