Saya memiliki banyak deret waktu dalam kolom format 1 ini di mana saya memiliki format tanggal (d / m / tahun) dan banyak kolom yang mewakili deret waktu berbeda seperti di sini:
DATE TS1 TS2 TS3 ...
24/03/2003 0.00 0.00 ...
17/04/2003 -0.05 1.46
11/05/2003 0.46 -3.86
04/06/2003 -2.21 -1.08
28/06/2003 -1.18 -2.16
22/07/2003 0.00 0.23
Dengan R, bagaimana saya bisa mengelompokkan deret waktu yang menunjukkan tren serupa?
r
time-series
clustering
daveal81
sumber
sumber
code
sangat mirip dengan yang ingin saya lakukanJawaban:
Langkah 1
Lakukan transformasi Fourier cepat pada data deret waktu. Ini menguraikan data deret waktu Anda menjadi komponen rata-rata dan frekuensi dan memungkinkan Anda untuk menggunakan variabel untuk pengelompokan yang tidak menunjukkan autokorelasi berat seperti banyak deret waktu mentah.
Langkah 2
Jika deret waktu bernilai nyata, buang bagian kedua dari elemen transformasi Fourier cepat karena mereka berlebihan.
Langkah 3
Pisahkan bagian nyata dan imajiner dari setiap elemen transformasi Fourier yang cepat.
Langkah 4
Lakukan pengelompokan berbasis model pada bagian nyata dan imajiner dari setiap elemen frekuensi.
Langkah 5
Plot persentil dari deret waktu oleh kluster untuk memeriksa bentuknya.
Sebagai alternatif, Anda bisa menghilangkan komponen DC dari transformasi Fourier cepat untuk menghindari cluster Anda yang didasarkan pada rata-rata dan bukannya pada seri yang ditentukan oleh transformasi Fourier, yang mewakili bentuk deret waktu.
Anda juga akan ingin menghitung amplitudo dan sudut fase dari transformasi Fourier cepat sehingga Anda dapat menjelajahi distribusi spektrum deret waktu dalam kluster. Lihat jawaban StackOverflow ini tentang cara melakukannya untuk data bernilai nyata.
Anda juga bisa memetakan persentil bentuk deret waktu dengan klaster dengan menghitung deret Fourier dari amplitudo dan sudut fasa (perkiraan deret waktu yang dihasilkan tidak akan cocok dengan deret waktu asli). Anda juga bisa memetakan persentil dari data deret waktu mentah berdasarkan kluster. Berikut adalah contoh plot seperti itu, yang muncul dari analisis harmonis data NDVI yang baru saja saya lakukan hari ini:
Akhirnya, jika deret waktu Anda tidak stasioner (yaitu, perubahan mean dan varians dari waktu ke waktu), mungkin lebih tepat untuk menggunakan transformasi wavelet daripada transformasi Fourier. Anda akan melakukannya dengan biaya informasi tentang frekuensi sambil mendapatkan informasi tentang lokasi.
sumber