Warum ähnelt der erste Eigenvektor in PCA der Ableitung eines zugrunde liegenden Trends?


8

Ich verwende PCA, um mehrere räumlich verwandte Zeitreihen zu analysieren, und es scheint, dass der erste Eigenvektor der Ableitung des mittleren Trends der Reihe entspricht (Beispiel unten dargestellt). Ich bin gespannt, warum sich der erste Eigenvektor auf die Ableitung des Trends im Gegensatz zum Trend selbst bezieht.

Die Daten sind in einer Matrix angeordnet, in der die Zeilen die Zeitreihen für jede räumliche Einheit und die Spalten (und wiederum die Dimensionen in der PCA) die Jahre sind (dh im folgenden Beispiel 10 Zeitreihen mit jeweils 7 Jahren). Die Daten sind auch vor der PCA im Mittel zentriert.

Stanimirovic et al., 2007, kommen zu dem gleichen Schluss, aber ihre Erklärung liegt etwas außerhalb meines Verständnisses der linearen Algebra.

Beispiel

[Update] - Hinzufügen von Daten wie vorgeschlagen.

[Update2] - BEANTWORTET. Ich habe festgestellt, dass mein Code beim Plotten der Ergebnisse ( excel_walkthrough ) die Transponierung der Eigenvektormatrix falsch verwendet hat ( excel_walkthrough ) (danke @amoeba). Es sieht so aus, als ob es nur ein Zufall ist, dass die Transponierungs-Eigenvektor / Ableitungs-Beziehung für diesen speziellen Aufbau existiert. Wie in diesem Beitrag mathematisch und intuitiv beschrieben, bezieht sich der erste Eigenvektor tatsächlich auf den zugrunde liegenden Trend und nicht auf seine Ableitung .


Wenn Sie "Mittelwert zentriert" sagen, meinen Sie damit, dass Spaltenmittelwerte subtrahiert werden, Zeilenmittelwerte oder beides?
Amöbe

Bitte erläutern Sie, was Sie unter "Ableitung eines Trends" verstehen, da ein Eigenvektor eine Zahl ist, während die Grafiken darauf hindeuten, dass Sie die Ableitung als Funktion verstehen .
whuber

@amoeba - die Spaltenmittelwerte werden abgezogen (für jedes Jahr den Durchschnitt über den Raum herausnehmen)
paul j

@whuber - "Ableitung eines Trends" bezieht sich einfach auf die Ableitung / erste Differenz eines zugrunde liegenden Trends. Im obigen Beispiel ist die gestrichelte schwarze Linie im ersten Diagramm mein "zugrunde liegender Trend" (die mittlere Bewegung). Der erste Unterschied dieser Linie ist die durchgezogene schwarze Linie im zweiten Diagramm, die ungefähr dem ersten Eigenvektor entspricht, der aus PCA abgeleitet wurde (beide auf einer normalisierten Skala).
Paul

Ich bin immer noch verloren: Diese durchgezogene schwarze Linie variiert zwischen -1,4 und +1,4. Inwiefern ist das "ungefähr gleich"?
whuber

Antworten:


6

Lassen Sie uns die Mittelwertzentrierung für einen Moment ignorieren. Eine Möglichkeit, die Daten zu verstehen, besteht darin, jede Zeitreihe als ungefähr ein festes Vielfaches eines gesamten "Trends" , der selbst eine Zeitreihe (mit die Anzahl der Zeiträume). Ich werde dies im Folgenden als "mit einem ähnlichen Trend" bezeichnen.x=(x1,x2,,xp)p=7

Wenn Sie für diese Vielfachen schreiben (mit die Anzahl der Zeitreihen), ist die Datenmatrix ungefährϕ=(ϕ1,ϕ2,,ϕn)n=10

X=ϕx.

Die PCA-Eigenwerte (ohne mittlere Zentrierung) sind die Eigenwerte von

XX=(xϕ)(ϕx)=x(ϕϕ)x=(ϕϕ)xx,

weil nur eine Zahl ist. Per Definition gilt für jeden Eigenwert und jeden entsprechenden Eigenvektor ,ϕϕλβ

(1)λβ=XXβ=(ϕϕ)xxβ=((ϕϕ)(xβ))x,

wobei wiederum die Zahl mit dem Vektor . Sei der größte Eigenwert, also (es sei denn, alle Zeitreihen sind zu allen Zeiten identisch Null) .x λ λ > 0xβxλλ>0

Da die rechte Seite von ein Vielfaches von und die linke Seite ein Vielfaches ungleich Null von , muss der Eigenvektor auch ein Vielfaches von sein.x β β x(1)xββx

Mit anderen Worten, wenn eine Reihe von Zeitreihen diesem Ideal entspricht (dass alle Vielfache einer gemeinsamen Zeitreihe sind), dann

  1. Es gibt einen eindeutigen positiven Eigenwert in der PCA.

  2. Es gibt einen eindeutigen entsprechenden Eigenraum, der von der gemeinsamen Zeitreihe überspannt wird .x

Umgangssprachlich sagt (2) "der erste Eigenvektor ist proportional zum Trend."

"Mittlere Zentrierung" in PCA bedeutet, dass die Spalten zentriert sind. Da die Spalten den Beobachtungszeiten der Zeitreihen entsprechen, bedeutet dies, den durchschnittlichen Zeittrend zu entfernen, indem der Durchschnitt aller Zeitreihen zu jeder der Zeiten separat auf Null gesetzt wird . Somit wird jede Zeitreihe durch ein Residuum , wobei der Mittelwert des . Dies ist jedoch die gleiche Situation wie zuvor, indem einfach die durch ihre Abweichungen von ihrem Mittelwert ersetzt werden. p ϕ i x ( ϕ i - ˉ ϕ ) x ˉ ϕ ϕ i ϕnpϕix(ϕiϕ¯)xϕ¯ϕiϕ

Wenn umgekehrt in der PCA ein eindeutiger, sehr großer Eigenwert vorhanden ist, können wir eine einzelne Hauptkomponente beibehalten und die ursprüngliche Datenmatrix genau approximieren . Daher enthält diese Analyse einen Mechanismus zur Überprüfung ihrer Gültigkeit:X

Alle Zeitreihen weisen genau dann ähnliche Trends auf, wenn eine Hauptkomponente alle anderen dominiert.

Diese Schlussfolgerung gilt sowohl für PCA für die Rohdaten als auch für PCA für die (Spalten-) mittleren zentrierten Daten.


Gestatten Sie mir zu veranschaulichen. Am Ende dieses Beitrags befindet sich RCode zum Generieren von Zufallsdaten gemäß dem hier verwendeten Modell und zum Analysieren des ersten PCs. Die Werte von und sind qualitativ wahrscheinlich die in der Frage gezeigten. Der Code generiert zwei Grafikzeilen: ein "Geröllplot" mit den sortierten Eigenwerten und ein Plot der verwendeten Daten. Hier ist eine Reihe von Ergebnissen.ϕxϕ

Zahlen

Die Rohdaten werden oben rechts angezeigt. Das Geröllplot oben links bestätigt, dass der größte Eigenwert alle anderen dominiert. Über den Daten habe ich den ersten Eigenvektor (erste Hauptkomponente) als dicke schwarze Linie und den Gesamttrend (das Mittel nach Zeit) als gestrichelte rote Linie dargestellt. Sie sind praktisch zufällig.

Die zentrierten Daten werden unten rechts angezeigt. Sie jetzt ist der "Trend" in den Daten eher ein Trend in der Variabilität als in der Ebene. Obwohl die Geröllkurve alles andere als schön ist - der größte Eigenwert überwiegt nicht mehr -, kann der erste Eigenvektor diesen Trend gut nachvollziehen.

#
# Specify a model.
#
x <- c(5, 11, 15, 25, 20, 35, 28)
phi <- exp(seq(log(1/10)/5, log(10)/5, length.out=10))
sigma <- 0.25 # SD of errors
#
# Generate data.
#
set.seed(17)
D <- phi %o% x * exp(rnorm(length(x)*length(phi), sd=0.25))
#
# Prepare to plot results.
#
par(mfrow=c(2,2))
sub <- "Raw data"
l2 <- function(y) sqrt(sum(y*y))
times <- 1:length(x)
col <- hsv(1:nrow(X)/nrow(X), 0.5, 0.7, 0.5)
#
# Plot results for data and centered data.
#
k <- 1 # Use this PC
for (X in list(D, sweep(D, 2, colMeans(D)))) {
  #
  # Perform the SVD.
  #
  S <- svd(X)
  X.bar <- colMeans(X)
  u <- S$v[, k] / l2(S$v[, k]) * l2(X) / sqrt(nrow(X))
  u <- u * sign(max(X)) * sign(max(u))
  #
  # Check the scree plot to verify the largest eigenvalue is much larger
  # than all others.
  #
  plot(S$d, pch=21, cex=1.25, bg="Tan2", main="Eigenvalues", sub=sub)
  #
  # Show the data series and overplot the first PC.
  #
  plot(range(times)+c(-1,1), range(X), type="n", main="Data Series",
       xlab="Time", ylab="Value", sub=sub)
  invisible(sapply(1:nrow(X), function(i) lines(times, X[i,], col=col[i])))
  lines(times, u, lwd=2)
  #
  # If applicable, plot the mean series.
  #
  if (zapsmall(l2(X.bar)) > 1e-6*l2(X)) lines(times, X.bar, lwd=2, col="#a03020", lty=3)
  #
  # Prepare for the next step.
  #
  sub <- "Centered data"
}

Dies macht durchaus Sinn, warum "der erste Eigenvektor proportional zur Tendenz ist" und was ich vor den Ergebnissen der Analyse erwartet hatte. Was Stanimivroc und ich jedoch sehen, ist, dass der erste Eigenvektor proportional zum DERIVATIV (oder zur ersten Differenz) des Trends ist ... und nicht zur Tendenz selbst.
Paul

Ja - und was sehen Sie wohl, nachdem Sie die mittlere Zentrierung durchgeführt haben?
whuber

Nur die zugrunde liegenden Daten zentrieren sich um 0 ... hier ist ein zweidimensionales Beispiel. In meinem Fall sind es 7-Dimensionen (Achsen) anstelle von zwei. Die Form / der Trend der Daten ändert sich nicht durch Mittelwertzentrierung. Sie werden lediglich zentriert, um sicherzustellen, dass die PCA aussagekräftige Ergebnisse liefert.
Paul

2
@paulj Danke für die Veröffentlichung der Daten. Ich kann deine Figur nicht reproduzieren. Wenn ich die mittlere Zentrierung und dann PCA (SVD) durchführe, erhalte ich PC1 mit konstantem Vorzeichen (und ungefähr monoton ansteigend, ähnlich wie bei Ihrem "Trend" und bei Whubers ), wie ich erwartet hatte. x
Amöbe

1
@amoeba - danke ... du bist richtig. Ich habe festgestellt, dass mein Code beim Zeichnen der Ergebnisse die Transponierung der Eigenvektormatrix falsch verwendet hat ( excel_walkthrough ). Es sieht so aus, als wäre es nur ein Zufall, dass die Beziehung zwischen Transponierung und erster Ableitung besteht. Danke nochmal.
Paul J

0

Die Ableitung der Daten (~ erste Differenz) beseitigt die punktweisen Abhängigkeiten in den Daten, die auf Nichtstationarität zurückzuführen sind (vgl. ARIMA). Was Sie dann wiederherstellen, ist ungefähr das stabile stationäre Signal, das die SVD wohl wiederherstellt.


1
Ich sehe nicht, wie dies die Frage nach der Ähnlichkeit von PC1 und der Ableitung des Mittelwerts beantwortet.
Amöbe

Vielen Dank für Ihre Antworten. Ich stimme auch @amoeba zu ... Ich verstehe, dass die Ableitung (oder der erste Unterschied, wie Sie sagten) dazu beiträgt, die Daten stationär zu machen, aber warum sollte dieser erste Unterschied im Wesentlichen der ersten Hauptkomponente in diesem Aufbau entsprechen?
Paul

Ich habe auch keine so starke Vorstellung davon, warum das so sein könnte. Vielleicht lohnt es sich, einige Simulationen durchzuführen, um festzustellen, ob dies empirisch der Fall ist, aber ich bin mir nicht sicher, ob es analytisch transparent ist.
LE Rogerson

1
Danke @LERogerson ... ja, ich habe ein paar Simulationen durchgeführt und das Ergebnis scheint zu stimmen. Das Stanimirovic-Papier, das ich oben veröffentlicht habe, hat die gleichen Ergebnisse und bietet eine komplexe Erklärung der linearen Algebra, aber es ist nur ein wenig außerhalb meiner Reichweite / nicht sehr intuitiv.
Paul

@paulj Um ehrlich zu sein, verstehe ich das Beispiel in Ihrem Beitrag nicht ganz. Wenn ich mir Ihre Abbildung 1 anschaue und mir vorstelle, was nach der mittleren Zentrierung passiert, sollte die schwarze gestrichelte Linie konstant Null sein und die meisten Zeitreihen sollten entweder vollständig über oder vollständig unter Null liegen. Dies legt für mich nahe, dass der PC1 ein konstantes Vorzeichen haben sollte, aber Ihr in Abbildung 2 gezeigter PC1 ändert das Vorzeichen mehrmals. Das ist merkwürdig. Möchten Sie vielleicht Ihre Daten zu Ihrer Frage hinzufügen?
Amöbe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.