Bei der Hauptkomponentenanalyse (PCA) müssen häufig zwei Ladungen gegeneinander aufgetragen werden, um die Beziehungen zwischen den Variablen zu untersuchen. In dem dem PLS R-Paket beiliegenden Dokument zur Durchführung der Hauptkomponentenregression und der PLS-Regression gibt es ein anderes Diagramm, das als Korrelationsladungsdiagramm bezeichnet wird (siehe Abbildung 7 und Seite 15 im Dokument). Die Korrelationsbelastung ist , wie erläutert, die Korrelation zwischen den Bewertungen (von der PCA oder PLS) und den tatsächlich beobachteten Daten.
Es scheint mir, dass Ladungen und Korrelationsladungen ziemlich ähnlich sind, außer dass sie etwas anders skaliert sind. Ein reproduzierbares Beispiel in R mit dem eingebauten Datensatz mtcars lautet wie folgt:
data(mtcars)
pca <- prcomp(mtcars, center=TRUE, scale=TRUE)
#loading plot
plot(pca$rotation[,1], pca$rotation[,2],
xlim=c(-1,1), ylim=c(-1,1),
main='Loadings for PC1 vs. PC2')
#correlation loading plot
correlationloadings <- cor(mtcars, pca$x)
plot(correlationloadings[,1], correlationloadings[,2],
xlim=c(-1,1), ylim=c(-1,1),
main='Correlation Loadings for PC1 vs. PC2')
Was ist der Unterschied in der Interpretation dieser Diagramme? Und welches Grundstück (falls vorhanden) eignet sich am besten für die Praxis?
quelle
R
prcomp
Paket nennt Eigenvektoren rücksichtslos "Ladungen". Ich rate , diese Bedingungen getrennt zu halten. Belastungen sind Eigenvektoren, die auf die jeweiligen Eigenwerte skaliert sind.Antworten:
Warnung:
R
Verwendet den Begriff "Ladungen" auf verwirrende Weise. Ich erkläre es unten.Betrachten Sie Datensatz mit (zentrierten) Variablen in Spalten und N Datenpunkten in Zeilen. Die Durchführung der PCA dieses Datensatzes entspricht einer Singularwertzerlegung X = U S V ⊤ . Spalten von U S sind Hauptkomponenten (PC „scores“) und Spalten von VX N X=USV⊤ US V sind Hauptachsen. Die Kovarianzmatrix ist durch , also sind die HauptachsenVEigenvektoren der Kovarianzmatrix.1N−1X⊤X=VS2N−1V⊤ V
"Ladungen" sind als Spalten von , dh sie sind Eigenvektoren, die durch die Quadratwurzeln der jeweiligen Eigenwerte skaliert werden. Sie unterscheiden sich von Eigenvektoren! Siehe meine Antwort hierzur Motivation.L=VSN−1√
Mit diesem Formalismus können wir eine Kreuzkovarianzmatrix zwischen Originalvariablen und standardisierten PCs berechnen:
Um die terminologische Verwirrung zu beseitigen: Was das R-Paket "Ladungen" nennt, sind Hauptachsen, und was es "Korrelationsladungen" nennt, sind (für PCA, die auf der Korrelationsmatrix durchgeführt werden) tatsächlich Ladungen. Wie Sie selbst bemerkt haben, unterscheiden sie sich nur in der Skalierung. Was besser zu zeichnen ist, hängt davon ab, was Sie sehen möchten. Betrachten Sie ein folgendes einfaches Beispiel:
Schauen wir uns jetzt noch einmal die mtcars an Datensatz von . Hier ist ein Biplot der PCA, die mit der Korrelationsmatrix erstellt wurde:
Und hier ist ein Biplot der PCA, die auf der Kovarianzmatrix erstellt wurde:
PS Es gibt viele verschiedene Varianten von PCA-Biplots. In meiner Antwort finden Sie einige weitere Erklärungen und eine Übersicht: Positionieren der Pfeile auf einem PCA-Biplot . Den schönsten Biplot, der jemals auf CrossValidated veröffentlicht wurde, finden Sie hier .
quelle
cases X variables
. Traditionell macht die lineare Algebra in den meisten statistischen Analysetexten den Fall zu einem Zeilenvektor. Vielleicht ist es beim maschinellen Lernen anders?