Ich möchte verstehen, wie ich den Prozentsatz der Varianz eines Datensatzes nicht in dem von PCA bereitgestellten Koordinatenraum, sondern gegen einen etwas anderen Satz von (gedrehten) Vektoren erhalten kann.
set.seed(1234)
xx <- rnorm(1000)
yy <- xx * 0.5 + rnorm(1000, sd = 0.6)
vecs <- cbind(xx, yy)
plot(vecs, xlim = c(-4, 4), ylim = c(-4, 4))
vv <- eigen(cov(vecs))$vectors
ee <- eigen(cov(vecs))$values
a1 <- vv[, 1]
a2 <- vv[, 2]
theta = pi/10
rotmat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), 2, 2)
a1r <- a1 %*% rotmat
a2r <- a2 %*% rotmat
arrows(0, 0, a1[1], a1[2], lwd = 2, col = "red")
arrows(0, 0, a2[1], a2[2], lwd = 2, col = "red")
arrows(0, 0, a1r[1], a1r[2], lwd = 2, col = "green3")
arrows(0, 0, a2r[1], a2r[2], lwd = 2, col = "green3")
legend("topleft", legend = c("eigenvectors", "rotated"), fill = c("red", "green3"))
Grundsätzlich weiß ich also, dass die von PCA gegebene Varianz des Datensatzes entlang jeder der roten Achsen durch die Eigenwerte dargestellt wird. Aber wie könnte ich die äquivalenten Varianzen erhalten, die den gleichen Betrag summieren, aber die zwei verschiedenen Achsen in Grün projizieren , die eine Drehung um pi / 10 der Hauptkomponentenachsen sind. Wenn ich zwei orthogonale Einheitsvektoren vom Ursprung gegeben habe, wie kann ich die Varianz eines Datensatzes entlang jeder dieser willkürlichen (aber orthogonalen) Achsen erhalten, so dass die gesamte Varianz berücksichtigt wird (dh die Summe der "Eigenwerte" entspricht der von PCA).
quelle
Antworten:
Wenn die Vektoren orthogonal sind, können Sie einfach die Varianz der skalaren Projektion der Daten auf jeden Vektor nehmen. Angenommen, wir haben eine Datenmatrix ( Punkte x Dimensionen) und einen Satz orthonormaler Spaltenvektoren . Angenommen, die Daten sind zentriert. Die Varianz der Daten entlang der Richtung jedes Vektors ist durch .n d { v 1 , . . . , v k } v i Var ( X v i )X n d {v1,...,vk} vi Var(Xvi)
Wenn es so viele Vektoren wie die ursprünglichen Dimensionen gibt ( ), entspricht die Summe der Varianzen der Projektionen der Summe der Varianzen entlang der ursprünglichen Dimensionen. Wenn jedoch weniger Vektoren als die ursprünglichen Dimensionen vorhanden sind ( ), ist die Summe der Varianzen im Allgemeinen geringer als bei PCA. Eine Möglichkeit, sich PCA vorzustellen, besteht darin, genau diese Größe zu maximieren (unter der Bedingung, dass die Vektoren orthogonal sind).k < dk=d k<d
Möglicherweise möchten Sie auch (den erklärten Varianzanteil) berechnen , der häufig verwendet wird, um zu messen, wie gut eine bestimmte Anzahl von PCA-Dimensionen die Daten darstellt. Es sei die Summe der Varianzen entlang jeder ursprünglichen Dimension der Daten. Dann: S.R2 S
Dies ist nur das Verhältnis der summierten Varianzen der Projektionen und der summierten Varianzen entlang der ursprünglichen Dimensionen.
Eine andere Möglichkeit, über nachzudenken , besteht darin, die Anpassungsgüte zu messen, wenn wir versuchen, die Daten aus den Projektionen zu rekonstruieren. Es nimmt dann die bekannte Form an, die für andere Modelle verwendet wird (z. B. Regression). Angenommen, der te Datenpunkt ist ein Zeilenvektor . Speichern von jeder der Basisvektoren entlang der Spalten der Matrix . Die Projektion des - ten Datenpunktes auf alle Vektoren in ist gegeben durch . Wenn es weniger Vektoren als die ursprünglichen Dimensionen gibt ( i x ( i ) V i V p ( i ) = x ( i ) V k < d x ( i ) = p ( i ) V TR2 i x(i) V i V p(i)=x(i)V k<d ) können wir uns dies als lineare Abbildung der Daten in einen Raum mit reduzierter Dimensionalität vorstellen. Wir können etwa den Datenpunkt von der niedrigen dimensionalen Darstellung durch Mapping wieder in den ursprünglichen Datenraum rekonstruieren: . Der mittlere quadratische Rekonstruktionsfehler ist der mittlere quadratische euklidische Abstand zwischen jedem ursprünglichen Datenpunkt und seiner Rekonstruktion:x^(i)=p(i)VT
Die Güte der Anpassung wird auf die gleiche Weise wie bei anderen Modellen definiert (dh als eins minus dem Bruchteil der ungeklärten Varianz). Angesichts des mittleren quadratischen Fehlers des Modells ( ) und der Gesamtvarianz der modellierten Menge ( ) ist . Im Kontext unserer Datenrekonstruktion ist der mittlere quadratische Fehler (der Rekonstruktionsfehler). Die Gesamtvarianz ist (die Summe der Varianzen entlang jeder Dimension der Daten). Damit:R2 MSE Vartotal R2=1−MSE/Vartotal E S
Die beiden Ausdrücke für sind äquivalent. Wie oben ist eins , wenn es so viele Vektoren wie die ursprünglichen Dimensionen gibt ( ) . Wenn jedoch , ist im Allgemeinen kleiner als für PCA. Eine andere Möglichkeit, über PCA nachzudenken, besteht darin, den quadratischen Rekonstruktionsfehler zu minimieren.R2 k=d R2 k<d R2
quelle
try[ing] to reconstruct the data from the projections