Hãy xem xét một chuỗi thời gian đơn giản:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
chúng ta có thể tính toán một ma trận kề trong chuỗi thời gian này biểu thị các liên kết tạm thời giữa các mẫu. Khi tính toán ma trận này, chúng tôi thêm một trang web tưởng tượng tại thời điểm 0 và liên kết giữa quan sát này và quan sát thực tế đầu tiên tại thời điểm 1 được gọi là liên kết 0. Giữa thời gian 1 và thời gian 2, liên kết là liên kết 1, v.v. Bởi vì thời gian là một quá trình định hướng, các trang web được kết nối với (bị ảnh hưởng bởi) các liên kết "ngược dòng" của trang web. Do đó mọi trang web được kết nối với liên kết 0, nhưng liên kết 9 chỉ được kết nối với trang web 10; nó xảy ra tạm thời sau mỗi trang web ngoại trừ trang 10. Ma trận kề do đó được xác định được tạo như sau:
> 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 cung cấp một sự phân tách của ma trận này thành các biến thể Eigen như các thang đo thời gian khác nhau. Hình dưới đây cho thấy các chức năng được trích xuất (từ SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
Các hàm riêng là các thành phần định kỳ ở các thang đo thời gian khác nhau. Thử tp <- seq_len(25)
(hoặc dài hơn) cho thấy điều này tốt hơn so với ví dụ ngắn hơn tôi đã trình bày ở trên.
Liệu loại phân tích này có một tên thích hợp trong thống kê? Nghe có vẻ tương tự như Phân tích phổ số ít nhưng đó là sự phân tách của chuỗi thời gian nhúng (một ma trận có các cột là các phiên bản bị trễ của chuỗi thời gian).
Bối cảnh: Tôi đã nảy ra ý tưởng này bằng cách sửa đổi một ý tưởng từ hệ sinh thái không gian gọi là Bản đồ Eigenvector Asymmetric (AEM) xem xét một quá trình không gian với hướng đã biết và hình thành ma trận kề giữa một mảng các mẫu có chứa 1 mẫu trong đó một mẫu có thể được kết nối đến một liên kết và 0 trong trường hợp không thể, theo ràng buộc rằng các liên kết chỉ có thể được kết nối "xuôi dòng" - do đó tính chất không đối xứng của phân tích. Những gì tôi mô tả ở trên là phiên bản một chiều của phương pháp AEM. Một bản in lại của phương pháp AEM có thể được tìm thấy ở đây nếu bạn quan tâm.
Con số này được sản xuất với:
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)