Rozważ prosty szereg czasowy:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
możemy obliczyć macierz przyległości dla tych szeregów czasowych reprezentujących połączenia czasowe między próbkami. Przy obliczaniu tej macierzy dodajemy wyimaginowane miejsce w czasie 0, a połączenie między tą obserwacją a pierwszą rzeczywistą obserwacją w czasie 1 jest znane jako łącze 0. Pomiędzy czasem 1 a czasem 2, link jest linkiem 1 i tak dalej. Ponieważ czas jest procesem kierunkowym, strony są połączone z linkami „upstream” strony (na które wpływ mają). Dlatego każda strona jest połączona z linkiem 0, ale link 9 jest połączony tylko z witryną 10; występuje tymczasowo po każdej witrynie z wyjątkiem witryny 10. Tak zdefiniowana macierz przylegania jest tworzona w następujący sposób:
> 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
SVD zapewnia rozkład tej macierzy na funkcje własne zmienności w różnych skalach czasowych. Poniższy rysunek pokazuje wyodrębnione funkcje (z SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
Funkcje własne są składnikami okresowymi w różnych skalach czasowych. Próbowaćtp <- seq_len(25)
(lub dłużej) pokazuje to lepiej niż krótszy przykład, który pokazałem powyżej.
Czy tego rodzaju analiza ma właściwą nazwę w statystykach? Brzmi podobnie do analizy widma pojedynczego, ale jest to rozkład osadzonych szeregów czasowych (macierz, której kolumny są opóźnionymi wersjami szeregu czasowego).
Tło: wpadłem na ten pomysł, modyfikując pomysł z ekologii przestrzennej zwany Asymmetric Eigenvector Maps (AEM), który uwzględnia proces przestrzenny o znanym kierunku i tworząc macierz przyległości między przestrzennym układem próbek, który zawiera 1s, w których można połączyć próbkę do linku i 0, gdzie nie może, pod warunkiem, że linki można połączyć tylko „poniżej” - stąd asymetryczny charakter analizy. To, co opisałem powyżej, to jednowymiarowa wersja metody AEM. Przedruk metody AEM można znaleźć tutaj, jeśli jesteś zainteresowany.
Figura została wyprodukowana z:
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)