Pertimbangkan deret waktu sederhana:
> tp <- seq_len(10)
> tp
[1] 1 2 3 4 5 6 7 8 9 10
kita dapat menghitung matriks adjacency untuk deret waktu ini yang mewakili hubungan temporal antar sampel. Dalam menghitung matriks ini, kami menambahkan situs imajiner pada waktu 0 dan tautan antara pengamatan ini dan pengamatan aktual pertama pada waktu 1 dikenal sebagai tautan 0. Antara waktu 1 dan waktu 2, tautannya adalah tautan 1 dan seterusnya. Karena waktu adalah proses arah, situs terhubung ke tautan (dipengaruhi oleh) yang "hulu" dari situs. Karenanya setiap situs terhubung ke tautan 0, tetapi tautan 9 hanya terhubung ke situs 10; itu terjadi sementara setelah setiap situs kecuali situs 10. Matriks adjacency demikian didefinisikan dibuat sebagai berikut:
> 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 menyediakan dekomposisi dari matriks ini menjadi fungsi variasi Eigen sebagai skala temporal yang berbeda. Gambar di bawah ini menunjukkan fungsi yang diekstraksi (dari SVD$u
)
> SVD <- svd(adjmat, nu = length(tp), nv = 0)
Fungsi eigen adalah komponen periodik pada berbagai skala temporal. Mencoba tp <- seq_len(25)
(atau lebih lama) menunjukkan ini lebih baik daripada contoh pendek yang saya tunjukkan di atas.
Apakah analisis semacam ini memiliki nama yang tepat dalam statistik? Kedengarannya mirip dengan Analisis Spektrum Singular tetapi itu adalah dekomposisi dari deret waktu yang disematkan (matriks yang kolom-kolomnya adalah versi-versi lambat dari deret waktu).
Latar belakang: Saya datang dengan ide ini dengan memodifikasi ide dari ekologi spasial yang disebut Asymmetric Eigenvector Maps (AEM) yang mempertimbangkan proses spasial dengan arah yang diketahui dan membentuk matriks adjacency antara array spasial sampel yang berisi 1s di mana sampel dapat dihubungkan ke tautan dan 0 di mana tidak bisa, di bawah batasan bahwa tautan hanya dapat dihubungkan "hilir" - karenanya sifat asimetris analisis. Apa yang saya jelaskan di atas adalah versi satu dimensi dari metode AEM. Cetak ulang metode AEM dapat ditemukan di sini jika Anda tertarik.
Angka itu diproduksi dengan:
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)