Considérons une simple série chronologique:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
nous pouvons calculer une matrice d'adjacence pour cette série temporelle représentant les liens temporels entre les échantillons. Dans le calcul de cette matrice, nous ajoutons un site imaginaire au temps 0 et le lien entre cette observation et la première observation réelle au temps 1 est appelé lien 0. Entre le temps 1 et le temps 2, le lien est le lien 1 et ainsi de suite. Parce que le temps est un processus directionnel, les sites sont connectés à (affectés par) des liens qui sont "en amont" du site. Par conséquent, chaque site est connecté au lien 0, mais le lien 9 est uniquement connecté au site 10; elle se produit temporellement après chaque site sauf le site 10. La matrice d'adjacence ainsi définie est créée comme suit:
> adjmat <- matrix(0, ncol = length(tp), nrow = length(tp))
> adjmat[lower.tri(adjmat, diag = TRUE)] <- 1
> rownames(adjmat) <- paste("Site", seq_along(tp))
> colnames(adjmat) <- paste("Link", seq_along(tp)-1)
> adjmat
Link 0 Link 1 Link 2 Link 3 Link 4 Link 5 Link 6 Link 7
Site 1 1 0 0 0 0 0 0 0
Site 2 1 1 0 0 0 0 0 0
Site 3 1 1 1 0 0 0 0 0
Site 4 1 1 1 1 0 0 0 0
Site 5 1 1 1 1 1 0 0 0
Site 6 1 1 1 1 1 1 0 0
Site 7 1 1 1 1 1 1 1 0
Site 8 1 1 1 1 1 1 1 1
Site 9 1 1 1 1 1 1 1 1
Site 10 1 1 1 1 1 1 1 1
Link 8 Link 9
Site 1 0 0
Site 2 0 0
Site 3 0 0
Site 4 0 0
Site 5 0 0
Site 6 0 0
Site 7 0 0
Site 8 0 0
Site 9 1 0
Site 10 1 1
Le SVD fournit une décomposition de cette matrice en fonctions propres de variation sous différentes échelles temporelles. La figure ci-dessous montre les fonctions extraites (de SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
Les fonctions propres sont des composantes périodiques à différentes échelles temporelles. Essayer tp <- seq_len(25)
(ou plus) le montre mieux que l'exemple plus court que j'ai montré ci-dessus.
Ce type d'analyse a-t-il un nom propre dans les statistiques? Cela ressemble à l' analyse du spectre singulier, mais c'est une décomposition d'une série chronologique intégrée (une matrice dont les colonnes sont des versions décalées de la série temporelle).
Contexte: J'ai eu cette idée en modifiant une idée de l'écologie spatiale appelée Cartes de vecteurs propres asymétriques (AEM) qui considère un processus spatial avec une direction connue et formant une matrice d'adjacence entre une matrice spatiale d'échantillons qui contient 1s où un échantillon peut être connecté à un lien et à un 0 où il ne le peut pas, sous la contrainte que les liens ne peuvent être connectés qu'en "aval" - d'où la nature asymétrique de l'analyse. Ce que j'ai décrit ci-dessus est une version unidimensionnelle de la méthode AEM. Une réimpression de la méthode AEM peut être trouvée ici si vous êtes intéressé.
La figure a été réalisée avec:
layout(matrix(1:12, ncol = 3, nrow = 4))
op <- par(mar = c(3,4,1,1))
apply(SVD$u, 2, function(x, t) plot(t, x, type = "l", xlab = "", ylab = ""),
t = tp)
par(op)
layout(1)