Funkcje własne macierzy przyległości szeregu czasowego?

15

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

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)
Przywróć Monikę - G. Simpson
źródło
Jaka jest analiza? Czy masz na myśli: „czy te funkcje własne są przydatne?” Funkcje własne „większości” macierzy oscylują, a wyższe liczby oscylują szybciej; ale co ci mówią?
petrelharp
@petrelharp Nie, wiem, do czego można użyć funkcji własnych (opis wzorca przestrzennego lub czasowego w danych wielowymiarowych dla jednego), ale zastanawiałem się, czy to podejście zostało opracowane gdzie indziej, pod jakąś nazwą, której nie znałem, więc mogłem czytaj więcej o tym podejściu.
Przywróć Monikę - G. Simpson,

Odpowiedzi: