Pourquoi le premier vecteur propre de l'ACP ressemble-t-il au dérivé d'une tendance sous-jacente?

8

J'utilise l'ACP pour analyser plusieurs séries temporelles spatialement liées, et il semble que le premier vecteur propre correspond à la dérivée de la tendance moyenne de la série (exemple illustré ci-dessous). Je suis curieux de savoir pourquoi le premier vecteur propre se rapporte à la dérivée de la tendance par opposition à la tendance elle-même?

Les données sont organisées dans une matrice où les lignes sont les séries chronologiques pour chaque entité spatiale et les colonnes (et à leur tour les dimensions dans l'ACP) sont les années (c'est-à-dire dans l'exemple ci-dessous, 10 séries chronologiques chacune de 7 ans). Les données sont également centrées sur la moyenne avant l'ACP.

Stanimirovic et al., 2007 arrivent à la même conclusion, mais leur explication est un peu au-delà de ma compréhension de l'algèbre linéaire.

Exemple

[Mise à jour] - ajout de données comme suggéré.

[Update2] - RÉPONDU. J'ai trouvé que mon code n'utilisait pas correctement la transposition de la matrice de vecteur propre lors du traçage des résultats ( excel_walkthrough ) (merci @amoeba). Il semble que ce soit juste une coïncidence que la relation vecteur transposition-vecteur propre / dérivée existe pour cette configuration particulière. Comme décrit mathématiquement et intuitivement dans ce post, le premier vecteur propre est en effet lié à la tendance sous-jacente et non à sa dérivée .

paul j
la source
Lorsque vous dites «moyenne centrée», voulez-vous dire que les moyennes des colonnes sont soustraites, des moyennes des lignes ou les deux?
amoeba
Veuillez expliquer ce que vous entendez par «dérivée d'une tendance», étant donné qu'un vecteur propre est un nombre tandis que les graphiques vous suggèrent de concevoir le dérivé comme une fonction .
whuber
@amoeba - les moyennes des colonnes sont soustraites (pour chaque année, soustrayez la moyenne dans l'espace)
paul j
@whuber - "dérivé d'une tendance" se référait simplement à la dérivée / première différence d'une tendance sous-jacente. Dans l'exemple ci-dessus, la ligne noire en pointillés dans le premier graphique est ma "tendance sous-jacente" (le mouvement moyen). La première différence de cette ligne est la ligne noire continue dans le deuxième graphique, qui équivaut à peu près au premier vecteur propre déduit de l'ACP (tous deux sur une échelle normalisée).
paul j
Je suis toujours perdu: cette ligne noire continue varie entre -1,4 et +1,4. Dans quel sens cela «équivaut à peu près» à quelque chose?
whuber

Réponses:

6

Ignorons le centrage moyen pendant un moment. Une façon de comprendre les données consiste à visualiser chaque série chronologique comme étant approximativement un multiple fixe d'une "tendance" globale, qui est elle-même une série chronologique (avec nombre de périodes). J'y ferai référence ci-dessous comme «ayant une tendance similaire».x=(x1,x2,,xp)p=7

En écrivant pour ces multiples (avec le nombre de séries chronologiques), la matrice de données est approximativementϕ=(ϕ1,ϕ2,,ϕn)n=10

X=ϕx.

Les valeurs propres PCA (sans centrage moyen) sont les valeurs propres de

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

car n'est qu'un nombre. Par définition, pour toute valeur propre et tout vecteur propre correspondant ,ϕϕλβ

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

où encore une fois le nombre peut être commuté avec le vecteur . Soit la plus grande valeur propre, donc (sauf si toutes les séries temporelles sont identiques à zéro à tout moment) .xβxλλ>0

Comme le côté droit de est un multiple de et le côté gauche est un multiple non nul de , le vecteur propre doit également être un multiple de .(1)xββx

En d'autres termes, lorsqu'un ensemble de séries chronologiques est conforme à cet idéal (que toutes sont des multiples d'une série chronologique commune), alors

  1. Il existe une valeur propre positive unique dans l'ACP.

  2. Il existe un espace propre correspondant unique couvert par la série temporelle commune .x

Familièrement, (2) dit "le premier vecteur propre est proportionnel à la tendance".

"Centrage moyen" dans PCA signifie que les colonnes sont centrées. Étant donné que les colonnes correspondent aux temps d'observation des séries chronologiques, cela revient à supprimer la tendance temporelle moyenne en fixant séparément la moyenne de toutes les séries temporelles à zéro à chacun des temps. Ainsi, chaque série temporelle est remplacée par un résiduel , où est la moyenne de . Mais c'est la même situation que précédemment, en remplaçant simplement les par leurs écarts par rapport à leur valeur moyenne. npϕix(ϕiϕ¯)xϕ¯ϕiϕ

A l' inverse, quand il est unique très grande valeur propre dans l'APC, nous retenons un seul élément principal et une approximation de la matrice près de données d' origine . Ainsi, cette analyse contient un mécanisme pour vérifier sa validité:X

Toutes les séries chronologiques ont des tendances similaires si et seulement s'il y a une composante principale dominant toutes les autres.

Cette conclusion s'applique à la fois à l'ACP sur les données brutes et à l'ACP sur les données centrées sur la (colonne) moyenne.


Permettez-moi d'illustrer. À la fin de cet article, il y a du Rcode pour générer des données aléatoires selon le modèle utilisé ici et analyser leur premier PC. Les valeurs de et sont probablement qualitativement celles indiquées dans la question. Le code génère deux lignes de graphiques: un "tracé d'éboulis" montrant les valeurs propres triées et un tracé des données utilisées. Voici un ensemble de résultats.xϕ

Les figures

Les données brutes apparaissent en haut à droite. Le tracé d'éboulis en haut à gauche confirme que la plus grande valeur propre domine toutes les autres. Au-dessus des données, j'ai tracé le premier vecteur propre (premier composant principal) sous la forme d'une ligne noire épaisse et la tendance générale (les moyennes par le temps) sous la forme d'une ligne rouge en pointillés. Ils coïncident pratiquement.

Les données centrées apparaissent en bas à droite. Vous maintenant la "tendance" dans les données est une tendance à la variabilité plutôt qu'au niveau. Bien que le tracé d'éboulis soit loin d'être agréable - la plus grande valeur propre ne prédomine plus - néanmoins le premier vecteur propre fait un bon travail pour retracer cette tendance.

#
# 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"
}
whuber
la source
Cela est parfaitement logique pour expliquer pourquoi "le premier vecteur propre est proportionnel à la tendance", et c'est ce que j'attendais avant les résultats de l'analyse. Cependant, ce que Stanimivroc et moi voyons, c'est que le premier vecteur propre est proportionnel au DÉRIVÉ (ou à la première différence) de la tendance ... et non à la tendance elle-même.
paul j
Oui - et que pensez-vous que vous regardez après avoir effectué le centrage moyen?
whuber
Juste les données sous-jacentes centrées sur 0 ... voici un exemple bidimensionnel . Dans mon cas, c'est 7-Dimensions (axes) au lieu de deux. La forme / tendance des données ne change pas grâce au centrage moyen ... elles sont simplement centrées pour aider à garantir que l'ACP donne des résultats significatifs.
paul j
2
@paulj Merci d'avoir publié les données. Je ne peux pas reproduire ta figure. Quand je fais le centrage moyen puis PCA (SVD), j'obtiens PC1 de signe constant (et grossissant grossièrement de façon monotone, similaire à votre "tendance" et au de whuber ), comme je m'y attendais. x
amoeba
1
@amoeba - merci ... vous avez raison. J'ai trouvé que mon code n'utilisait pas correctement la transposition de la matrice de vecteur propre lors du traçage des résultats ( excel_walkthrough ). Il semble que ce soit juste une coïncidence que la relation transposition / dérivée première existe. Merci encore.
paul j
0

La dérivée des données (~ première différence) supprime les dépendances ponctuelles dans les données qui sont dues à la non-stationnarité (cf. ARIMA). Ce que vous récupérez ensuite est approximativement le signal stationnaire stable, que je suppose que le SVD récupère.

LE Rogerson
la source
1
Je ne vois pas comment cela répond à la question de la ressemblance de PC1 et de la dérivée de la moyenne.
amoeba
Merci à vous deux pour vos réponses. Je suis également d'accord avec @amoeba ... Je comprends que la dérivée (ou la première différence comme vous l'avez dit) aide à rendre les données stationnaires, mais pourquoi cette première différence équivaudrait-elle essentiellement au premier composant principal de cette configuration?
paul j
Je n'ai pas non plus une telle intuition sur la raison pour laquelle cela pourrait être. Cela vaut peut-être la peine d'exécuter des simulations pour voir si c'est le cas empiriquement, mais je ne suis pas sûr que ce soit analytiquement transparent.
LE Rogerson
1
Merci @LERogerson ... ouais, j'ai exécuté quelques simulations, et le résultat semble tenir. L' article de Stanimirovic que j'ai posté ci-dessus a les mêmes conclusions et offre une explication complexe de l'algèbre linéaire, mais c'est juste un peu hors de ma portée / pas très intuitif.
paul j
@paulj Pour être honnête, je ne comprends pas très bien l'exemple donné dans votre message. Si je regarde votre figure 1 et imaginez ce qui se passe après un centrage moyen, la ligne noire en pointillés doit être à zéro constant et la plupart des séries temporelles doivent être entièrement au-dessus ou entièrement en dessous de zéro. Cela me suggère que le PC1 devrait être de signe constant, mais votre PC1 montré sur la figure 2 change de signe plusieurs fois. Cela est étrange. Voulez-vous peut-être ajouter vos données à votre question?
amoeba