Considere uma série temporal simples:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
podemos calcular uma matriz de adjacência para essa série temporal que representa os links temporais entre amostras. Ao calcular essa matriz, adicionamos um site imaginário no tempo 0 e o link entre essa observação e a primeira observação real no tempo 1 é conhecido como link 0. Entre o tempo 1 e o tempo 2, o link é o link 1 e assim por diante. Como o tempo é um processo direcional, os sites são conectados a (afetados por) links "upstream" do site. Portanto, todo site está conectado ao link 0, mas o link 9 está conectado apenas ao site 10; ocorre temporalmente após cada site, exceto o site 10. A matriz de adjacência assim definida é criada da seguinte maneira:
> 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
O SVD fornece uma decomposição dessa matriz em funções próprias de variação como diferentes escalas temporais. A figura abaixo mostra as funções extraídas (de SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
As funções próprias são componentes periódicos em várias escalas temporais. Tentar tp <- seq_len(25)
(ou mais) mostra isso melhor do que o exemplo mais curto que mostrei acima.
Esse tipo de análise tem um nome próprio nas estatísticas? Parece semelhante à Análise de espectro singular, mas é uma decomposição de uma série temporal incorporada (uma matriz cujas colunas são versões atrasadas da série temporal).
Antecedentes: Eu tive essa idéia modificando uma idéia da ecologia espacial chamada Mapas assimétricos de vetores próprios (AEM), que considera um processo espacial com direção conhecida e formando uma matriz de adjacência entre uma matriz espacial de amostras que contém 1s onde uma amostra pode ser conectada para um link e um 0 onde não pode, sob a restrição de que os links só podem ser conectados "a jusante" - daí a natureza assimétrica da análise. O que eu descrevi acima é uma versão unidimensional do método AEM. Uma reimpressão do método AEM pode ser encontrada aqui, se você estiver interessado.
A figura foi produzida com:
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)