Рассмотрим простой временной ряд:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
мы можем вычислить матрицу смежности для этого временного ряда, представляющего временные связи между выборками. При вычислении этой матрицы мы добавляем воображаемый сайт в момент времени 0, а связь между этим наблюдением и первым фактическим наблюдением в момент времени 1 называется ссылкой 0. Между моментом 1 и временем 2 ссылка является ссылкой 1 и так далее. Поскольку время - это направленный процесс, сайты связаны (затронуты) ссылками, которые находятся «вверх по течению» от сайта. Следовательно, каждый сайт связан с ссылкой 0, но ссылка 9 связана только с сайтом 10; это происходит временно после каждого сайта, кроме сайта 10. Определенная таким образом матрица смежности создается следующим образом:
> 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 обеспечивает разложение этой матрицы на собственные функции вариации в виде различных временных масштабов. На рисунке ниже показаны извлеченные функции (из SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
Собственные функции являются периодическими компонентами в различных временных масштабах. Попытка tp <- seq_len(25)
(или дольше) показывает это лучше, чем короткий пример, который я показал выше.
Имеет ли этот вид анализа правильное имя в статистике? Это звучит похоже на Singular Spectrum Analysis, но это декомпозиция встроенного временного ряда (матрицы, столбцы которой представляют собой запаздывающие версии временных рядов).
Предыстория: я пришел к этой идее, модифицировав идею из пространственной экологии, называемую Asymmetric Eigenvector Maps (AEM), которая рассматривает пространственный процесс с известным направлением и формирует матрицу смежности между пространственным массивом выборок, который содержит единицы, где образец может быть связан к ссылке и 0, где это невозможно, при условии, что ссылки могут быть связаны только «вниз по течению» - отсюда и асимметричный характер анализа. То, что я описал выше, является одномерной версией метода AEM. Перепечатка метода AEM может быть найдена здесь, если вы заинтересованы.
Фигура была изготовлена с:
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)