간단한 시계열을 고려하십시오.
> 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 와 비슷 하지만 내장 된 시계열 (열이 시계열의 지연 버전 인 행렬)을 분해 한 것입니다.
배경 : 나는 알려진 방향으로 알려진 공간 프로세스를 고려한 비대칭 고유 벡터 맵 (AEM)이라는 공간 생태학의 아이디어를 수정하고 샘플을 연결할 수있는 1을 포함하는 1의 샘플을 포함하는 공간 배열 사이에 인접 행렬을 형성함으로써이 아이디어를 생각해 냈습니다. 링크와 링크가 "다운 스트림"으로 만 연결될 수 있다는 제약 조건 하에서 링크에 0이 될 수 있습니다. 따라서 분석의 비대칭 적 특성입니다. 위에서 설명한 것은 AEM 방법의 1 차원 버전입니다. 관심이 있다면 여기 에서 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)