Warum sind PCA-Eigenvektoren orthogonal, aber korreliert?

8

Ich habe einige großartige Beiträge gesehen, in denen PCA erklärt wurde und warum bei diesem Ansatz die Eigenvektoren einer (symmetrischen) Korrelationsmatrix orthogonal sind. Ich verstehe auch die Möglichkeiten zu zeigen, dass solche Vektoren orthogonal zueinander sind (z. B. führt die Verwendung der Kreuzprodukte der Matrix dieser Eigenvektoren zu einer Matrix mit Einträgen außerhalb der Diagonale, die Null sind).

Meine erste Frage ist, wenn Sie die Korrelationen der Eigenvektoren einer PCA betrachten, warum sind die nicht diagonalen Einträge der Korrelationsmatrix ungleich Null (dh wie können die Eigenvektoren korreliert werden, wenn sie orthogonal sind)?

Diese Frage bezieht sich nicht direkt auf PCA, aber ich habe sie in diesen Zusammenhang gestellt, da ich auf diese Weise auf das Problem gestoßen bin. Ich benutze R und speziell das Psychopaket, um PCA auszuführen.

Wenn es hilft, ein Beispiel zu haben, hat dieser Beitrag auf StackOverflow einen, der sehr praktisch und verwandt ist (auch in R). In diesem Beitrag zeigt der Autor der besten Antwort, dass die PCA-Ladungen (Eigenvektoren) unter Verwendung von Faktorenkongruenz oder Kreuzprodukten orthogonal sind. In seinem Beispiel ist die Matrix Ldie PCA-Ladematrix. Das einzige, was nicht auf diesem Link steht, ist, dass cor(L)die Ausgabe erzeugt wird, nach der ich frage, ob die Nicht-Null-Korrelationen zwischen den Eigenvektoren angezeigt werden sollen.

Ich bin besonders verwirrt darüber, wie orthogonale Vektoren nach dem Lesen dieses Beitrags korreliert werden können, was zu beweisen scheint, dass Orthogonalität gleichbedeutend mit mangelnder Korrelation ist: Warum sind PCA-Eigenvektoren orthogonal und in welcher Beziehung stehen die PCA-Scores nicht korreliert ?

Meine zweite Frage lautet: Wenn die PCA-Eigenvektoren zur Berechnung der PCA-Scores verwendet werden, sind die Scores selbst (wie erwartet) nicht korreliert. Gibt es einen Zusammenhang mit meiner ersten Frage dazu, warum Eigenvektoren korreliert sind, aber nicht die Scores?

Heidelbeere
quelle
1
Es hört sich so an, als würden Sie die Korrelationsmatrix der Eigenvektoren berechnen. Die Eigenvektoren sind orthogonal , was bedeutet, dass die Punktprodukte zwischen ihnen Null sind, nicht die Korrelationen. Was nicht korreliert sein sollte, sind die Projektionen der Daten auf die Eigenvektoren, nicht auf die Eigenvektoren selbst.
user20160
1
Eigenvektoren sind nur feste Größen, keine Zufallsvariablen. Es macht keinen Sinn, über Korrelationen zwischen ihnen zu sprechen, weil sie nicht schwanken.
Moss Murderer
2
Der Schlüssel ist, dass Eigenvektoren keinen Mittelwert Null haben (z. B. ist es durchaus möglich, dass alle Elemente eines Eigenvektors positiv sind). Die Tatsache, dass sie orthogonal sind, bedeutet also nicht, dass ihre Elemente nicht korreliert sind (um die Korrelation zu berechnen, müssen wir die Mittelwerte subtrahieren).
Amöbe
2
@Moss Im Gegenteil, die von PCA ausgegebenen Eigenvektoren sind tatsächlich Zufallsvariablen, da sie Funktionen der Daten sind. Dies könnte zu Verwirrung führen, da "Orthogonalität ... von Eigenvektoren" jetzt mehrere Interpretationen hat: Orthogonalität als euklidische Vektoren, fehlende Korrelation ihrer Komponenten (als Zufallsvariablen) und sogar Orthogonalität der Eigenvektoren des wahren zugrunde liegenden Multivariaten Verteilung zur Generierung der Daten angenommen.
whuber
@whuber: Das macht Sinn. Ich dachte an Eigenvektoren als Parameter und nicht als Statistik.
Moss Murderer

Antworten:

3

Sei ein Zufallsvektor mit dem erwarteten Wert und der Varianz . Wir suchen nach solchen geordneten Vektoren , die die Varianz von maximieren . Im Wesentlichen lösen wirDa wir nur an der Richtung solcher Vektoren interessiert sind, nehmen wir zusätzlich die Einheitslänge der Vektoren . Vektoren sind eigentlich nicht zufällig (weil wir jetzt theoretisch arbeiten, ersetzen wir in Wirklichkeit das unbekannte und das unbekannteXX=(x1,x2,,xd)TμΣuiuiTX

maxuiVar(uiTX)
s.t.uiTui=1.
uiTui=1uiΣμmit empirischer Stichproben-Kovarianzmatrix bzw. Mittelwert erklärte @whuber dies aus einer anderen Perspektive), alsoDas Optimierungsproblem kann mit der Lagrange-Funktion trivial gelöst werden Von dort erhalten wir die notwendige Bedingung für eingeschränkte Extrema die auf reduziert werden kann das ist per Definition das Problem von Eigenwerten und Eigenvektoren. Da eine symmetrische und positive semidefinite Matrix ist, gilt der Spektralsatz und wir können eine orthonormale Basis finden, die erfüllt
Var(uiTX)=uiTΣui.
L(ui,λi):=uiTΣuiλi(uiTui1).
L(ui,λi)ui=2Σui2λiui=0,
Σui=λiui,
ΣΣ=QΛQ1=QΛQT , wobei aus orthogonalen Eigenvektoren besteht und eine diagonale Matrix mit Eigenwerten ist, die alle real sind.QΛ

Jetzt können wir zeigen, dassTrivial fürAlso nicht die Eigenvektoren, sondern die Projektionen sind unkorreliert.

cov(uiTX,ujTX)=uiTΣuj=λjuiTuj=0,ji.
i=j:cov(uiTX,ujTX)=λi.
Exabyte
quelle
1

Beachten Sie, dass dies Ldie Ladematrix ist, auch bekannt als die Eigenvektoren selbst. Dies ist nicht die PCA-Datenmatrix. Die Eigenvektoren müssen Orthogonalität liefern, aber nicht . Nehmen Sie zum Beispiel die Matrix:cov=0

> X <- iris
> X$Species <- as.numeric(X$Species)
> head(X)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2       1
2          4.9         3.0          1.4         0.2       1
3          4.7         3.2          1.3         0.2       1
4          4.6         3.1          1.5         0.2       1
5          5.0         3.6          1.4         0.2       1
6          5.4         3.9          1.7         0.4       1

In PCA erhalten Sie nicht nur die Eigenvektoren der Kovarianz- / Korrelationsmatrix (abhängig von der Methode), sondern sie sind auch orthonormal ( für jeden Eigenvektor ), also wir erhalten:uj=1uj

> prcomp(X)$rotation
                     PC1         PC2        PC3         PC4        PC5
Sepal.Length  0.33402494 -0.68852577  0.4414776 -0.43312829  0.1784853
Sepal.Width  -0.08034626 -0.68474905 -0.6114140  0.30348725 -0.2423462
Petal.Length  0.80059273  0.09713877  0.1466787  0.49080356 -0.2953177
Petal.Width   0.33657862  0.06894557 -0.4202025  0.06667133  0.8372253
Species       0.35740442  0.20703034 -0.4828930 -0.68917499 -0.3482135

und

> cor(prcomp(X)$rotation)
            PC1         PC2         PC3          PC4          PC5
PC1  1.00000000  0.62712979  0.57079328  0.147574029 -0.072934736
PC2  0.62712979  1.00000000 -0.22763304 -0.058852698  0.029086459
PC3  0.57079328 -0.22763304  1.00000000 -0.053565825  0.026473556
PC4  0.14757403 -0.05885270 -0.05356582  1.000000000  0.006844526
PC5 -0.07293474  0.02908646  0.02647356  0.006844526  1.000000000

Beachten Sie jedoch, dass die PCA-Daten sind

> head(prcomp(X)$x)
           PC1        PC2          PC3          PC4          PC5
[1,] -2.865415 -0.2962946 -0.041870662 -0.078464301 -0.032047052
[2,] -2.892047  0.1837851  0.175540800 -0.143582265  0.053428970
[3,] -3.054980  0.1748266 -0.049705391 -0.045339514 -0.001205543
[4,] -2.920230  0.3315818 -0.003376012  0.065785303 -0.053882996
[5,] -2.906852 -0.2959169 -0.147159821 -0.004802747 -0.074130194
[6,] -2.489852 -0.7338212 -0.194029844  0.073567444  0.003409809

und seine Korrelation ist

> round(cor(prcomp(X)$x),14)
    PC1 PC2 PC3 PC4 PC5
PC1   1   0   0   0   0
PC2   0   1   0   0   0
PC3   0   0   1   0   0
PC4   0   0   0   1   0
PC5   0   0   0   0   1
Spätzle
quelle