Was bedeuten die Pfeile in einem PCA-Biplot?

14

Betrachten Sie den folgenden PCA-Biplot:

library(mvtnorm)
set.seed(1)
x  <- rmvnorm(2000, rep(0, 6), diag(c(5, rep(1,5))))
x  <- scale(x, center=T, scale=F)
pc <- princomp(x)
biplot(pc)

Bildbeschreibung hier eingeben

Es sind ein paar rote Pfeile eingezeichnet. Was bedeuten sie? Ich wusste, dass der erste mit "Var1" beschriftete Pfeil in die unterschiedlichste Richtung des Datensatzes zeigen sollte (wenn wir sie als 2000 Datenpunkte betrachten, wobei jeder ein Vektor der Größe 6 ist). Ich habe auch irgendwo gelesen, dass die unterschiedlichste Richtung die Richtung des 1. Eigenvektors sein sollte.

Einlesen des Biplot-Codes in R. Die Linie um die Pfeile lautet:

if(var.axes)
    arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L], 

Wo yist eigentlich die Ladungsmatrix, die die Eigenvektormatrix ist? Es sieht also so aus, als ob der 1. Pfeil tatsächlich von (0, 0)nach zeigt (y[1, 1], y[1, 2]). Ich verstehe, dass wir versuchen, einen hochdimensionalen Pfeil auf eine 2D-Ebene zu zeichnen. Deshalb nehmen wir das 1. und 2. Element des y[1, ]Vektors. Was ich jedoch nicht verstehe, ist:

Sollte nicht die erste Eigenvektor Richtung des Vektors von bezeichnet werden y[, 1], statt y[1, ]? (Wiederum ist hier ydie Eigenvektormatrix, die durch PCA oder durch Neuzusammenstellung von erhalten wird t(x) %*% x.) Dh die Eigenvektoren sollten Spaltenvektoren sein, nicht diese horizontalen Vektoren.

Obwohl wir sie in der 2D-Ebene zeichnen, sollten wir die erste Richtung zeichnen, um vom (0, 0)Zeigen auf (y[1, 1], y[2, 1])?

Luna
quelle
2
Ziehen Sie auch in Betracht, die Formatierung zu verwenden, die für Fragen auf der Website verfügbar ist. Weitere Informationen finden Sie in der Hilfe zu erweiterten Abschriften . Ich sehe, dass keine Ihrer vorherigen Fragen Antworten enthält. Wenn Sie sie so bearbeiten, dass sie etwas besser lesbar sind, landen sie an der Spitze der Liste und werden möglicherweise beantwortet.
Andy W
@ Andy W Ausgezeichnete Referenzen
conjugateprior
@Andy W: Nachdem ich Ihre ausgezeichneten Referenzen gelesen habe, denke ich immer noch, dass der R-Code biplot.princomp einen Fehler aufweist: Die Ladematrix (Eigenvektormatrix) sollte transponiert werden, bevor sie in biplot.princomp gesendet wird ... Irgendwelche Gedanken?
Luna
Es sieht so aus, als gäbe es keinen Bug .
Chl
@ Andy W: Möchten Sie Ihre Kommentare in eine "Antwort" einfügen, damit ich Ihre Antwort akzeptieren kann? Das ist großartig! Vielen Dank!
Luna

Antworten:

9

Nun, es sieht so aus, als sollte Kevin Wright das meiste Verdienst zuteil werden, um zu versuchen, die Verwirrung zu erklären (aus der R-Hilfe-Mailingliste );

Die Pfeile zeigen nicht in die unterschiedlichste Richtung der Daten. Die Hauptkomponenten zeigen in die unterschiedlichste Richtung der Daten. Sie zeichnen die Daten jedoch nicht auf der ursprünglichen Skala, sondern auf der gedrehten Skala, sodass die horizontale Achse die unterschiedlichste Richtung der Daten darstellt.

Die Pfeile zeigen in Richtung der Variablen, wie in die 2D-Ebene des Biplots projiziert.

Es gibt keinen Bug.

Kevin Wright

Michael Greenacre hat ein ausgezeichnetes kostenloses Online-Buch über Biplots, Biplots in der Praxis , und das einfache Lesen des ersten Kapitels sollte dazu beitragen, zu motivieren, woher die Koordinaten der Pfeile stammen. Es gibt auch einige andere Fragen auf der Website, die ähnlich sind und an denen Sie interessiert sein könnten. Weitere Beispiele finden Sie unter Interpretation von Biplots in der Hauptkomponentenanalyse in R und Interpretation des MDS- Faktorplots . Sehen Sie sich auch die Fragen mit Biplot in der Suche auf der Website an , da noch einige potenzielle Fragen auftauchen (es scheint, als wäre es angesichts der Anzahl der gestellten Fragen an dieser Stelle sogar sinnvoll, ein Biplot-Tag zu erstellen).

Andy W
quelle