Was sind die vier Achsen im PCA-Biplot?

18

Wenn Sie einen Biplot für eine PCA-Analyse erstellen, haben Sie die Hauptkomponente PC1-Scores auf der x-Achse und PC2-Scores auf der y-Achse. Aber was sind die anderen beiden Achsen rechts und oben auf dem Bildschirm?

Nils
quelle
1
Woher wissen wir, über welchen Bildschirm Sie sprechen?
FairMiles
@ttnphns hatte eine hervorragende Antwort hier
Haitao Du

Antworten:

12

Meinen Sie zB im Plot, dass der folgende Befehl zurückgibt?

biplot(prcomp(USArrests, scale = TRUE))

Biplot USA Verhaftungen

Wenn ja, sollen die obere und die rechte Achse zur Interpretation der roten Pfeile (Punkte, die die Variablen darstellen) in der Darstellung verwendet werden.

Wenn Sie wissen, wie die Hauptkomponentenanalyse funktioniert, und Sie R-Code lesen können, zeigt Ihnen der folgende Code, wie die Ergebnisse prcomp()von biplot.prcomp()vor dem endgültigen Plotten von zunächst behandelt werden biplot.default(). Diese beiden Funktionen werden im Hintergrund aufgerufen, wenn Sie mit zeichnen biplot(), und der folgende geänderte Code-Auszug stammt von biplot.prcomp().

x<-prcomp(USArrests, scale=TRUE)
choices = 1L:2L
scale = 1
pc.biplot = FALSE
scores<-x$x
lam <- x$sdev[choices]
n <- NROW(scores)
lam <- lam * sqrt(n)
lam <- lam^scale
yy<-t(t(x$rotation[, choices]) * lam)
xx<-t(t(scores[, choices])/lam)
biplot(xx,yy)

Kurz gesagt, im obigen Beispiel wird die Matrix der variablen Ladungen ( x$rotation) mit der Standardabweichung der Hauptkomponenten ( x$sdev) multipliziert mit der Quadratwurzel der Anzahl der Beobachtungen skaliert . Dadurch wird der Maßstab für die obere und die rechte Achse auf das festgelegt, was auf dem Plot angezeigt wird.

Es gibt auch andere Methoden, um die variablen Ladungen zu skalieren. Diese werden zB vom R-Paket vegan angeboten.

JTT
quelle
5
+1. Ich habe mir erlaubt, die Zahl in Ihre Antwort einzufügen.
Amöbe sagt Reinstate Monica
Darüber hinaus wäre es für zukünftige Referenzen sehr nützlich, wenn Sie Ihrer Antwort hinzufügen könnten, dass die PC-Punktzahlen (Achsen links und unten) auf Quadratsummeneinheiten skaliert sind: Sie sind nicht "roh". PC punktet.
Amöbe sagt Reinstate Monica
0.8biplot.default
1
Weitere Informationen finden Sie auch in diesem späteren Thread: Positionieren der Pfeile auf einem PCA-Biplot .
Amöbe sagt Reinstate Monica
11

Ich habe eine bessere Visualisierung für den Biplot. Bitte überprüfen Sie die folgende Abbildung.

Im Experiment versuche ich, 3D-Punkte in 2D (simulierter Datensatz) abzubilden.

Der Trick, um Biplot in 2d zu verstehen, besteht darin, den richtigen Winkel zu finden, um dasselbe in 3d zu sehen. Alle Datenpunkte sind nummeriert, Sie können die Zuordnung deutlich sehen.

Bildbeschreibung hier eingeben

Hier ist der Code, um die Ergebnisse zu reproduzieren.

require(rgl)
set.seed(0)

feature1=round(rnorm(50)*10+20)
feature2=round(rnorm(50)*10+30)
feature3=round(runif(50)*feature1)

d=data.frame(feature1,feature2,feature3)

head(d)

plot(feature1,feature2)
plot(feature2,feature3)
plot(feature1,feature3)

plot3d(d$feature1, d$feature2, d$feature3, type = 'n')
points3d(d$feature1, d$feature2, d$feature3, color = 'red', size = 10)
shift <- matrix(c(-2, 2, 0), 12, 3, byrow = TRUE)
text3d(d+shift,texts=1:50)
grid3d(c("x", "y", "z"))

pr.out=prcomp(d,scale.=T)
biplot(pr.out)
grid()
Haitao Du
quelle
2
+1. Beachten Sie jedoch, dass in Ihrer gedrehten 3D-Figur die Varianz der Punktwolke erhalten bleibt (horizontale Projektion, dh PC1, hat eine größere Varianz als die vertikale, dh PC2), während die roten Pfeile alle eine Einheitslänge haben (in 3D). Dies ist in dem Biplot nicht der Fall, der durch den biplotBefehl in R erzeugt und in Ihrer Abbildung auf der rechten Seite wiedergegeben wurde: Dort ist die Punktwolke standardisiert, aber die Pfeile haben Längen, die den Varianzen entsprechen.
Amöbe sagt Reinstate Monica
@amoeba guter Punkt. Ich habe nur die Pfeile manuell gezeichnet und vergessen, dass die Länge des Pfeils auch bestimmte Bedeutungen hat.
Haitao Du
Ich denke dein manuelles 3D / 2D "Biplot" entspricht eher dem, was die Funktion biplotmit scale=0Argument erzeugt .
Amöbe sagt Reinstate Monica