Metode apa yang dapat digunakan untuk mendeteksi musiman dalam data?

56

Saya ingin mendeteksi musiman dalam data yang saya terima. Ada beberapa metode yang saya temukan seperti plot subseries musiman dan plot autocorrelation tetapi masalahnya saya tidak mengerti cara membaca grafik, ada yang bisa membantu? Hal lain adalah, apakah ada metode lain untuk mendeteksi musiman dengan atau tanpa hasil akhir dalam grafik?

Danial
sumber
1
Anda mungkin menyertakan grafik aktual yang sulit Anda pahami.
Karl
Lebih disukai data asli yang dapat digunakan untuk menghasilkan ACF "bermasalah".
IrishStat
1
lihat: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu, dan D Wang, 2011: Tentang mengubah El Nino: Pandangan dari waktu yang bervariasi setiap tahun siklus, variabilitas interannual dan keadaan rata-rata. J. Climate, 24 (24), 6486-6500

Jawaban:

70

Cara yang sangat baik untuk menemukan periodisitas dalam setiap seri data reguler adalah memeriksa spektrum kekuatannya setelah menghilangkan tren keseluruhan . (Ini cocok untuk penyaringan otomatis ketika kekuatan total dinormalisasi ke nilai standar, seperti kesatuan.) Penghapusan tren awal (dan perbedaan opsional untuk menghapus korelasi serial) sangat penting untuk menghindari periode yang membingungkan dengan perilaku lain.

Spektrum daya adalah transformasi Fourier diskrit dari fungsi autocovariance dari versi seri asli yang dihaluskan dengan semestinya. Jika Anda menganggap deret waktu sebagai sampel bentuk gelombang fisik, Anda dapat memperkirakan berapa banyak daya total gelombang yang dibawa dalam setiap frekuensi. Spektrum daya (atau periodogram ) memplot daya versus frekuensi. Siklik (yaitu, pola berulang atau musiman) akan muncul sebagai lonjakan besar yang terletak pada frekuensinya.

Sebagai contoh, pertimbangkan rangkaian waktu residual (simulasi) ini dari pengukuran harian yang dilakukan selama satu tahun (nilai 365).

serangkaian residu

Nilai berfluktuasi di sekitar tanpa tren yang jelas, menunjukkan bahwa semua tren penting telah dihapus. Fluktuasi tampak acak: tidak ada periodisitas yang tampak.0

Berikut ini plot lain dari data yang sama, yang diambil untuk membantu kami melihat kemungkinan pola periodik.

serangkaian residu, diisi hingga 0

Jika Anda terlihat sangat keras, Anda mungkin bisa melihat pola yang berisik tetapi berulang yang terjadi 11 hingga 12 kali. Urutan agak panjang dari nilai di atas nol dan di bawah nol setidaknya menunjukkan beberapa autokorelasi positif, menunjukkan seri ini tidak sepenuhnya acak.

Inilah periodogram, yang ditunjukkan untuk frekuensi hingga 91 (seperempat dari total panjang seri). Itu dibangun dengan jendela Welch dan dinormalisasi ke satuan luas (untuk seluruh periodogram, bukan hanya bagian yang ditunjukkan di sini).

periodogram

Kekuatannya seperti "white noise" (fluktuasi acak kecil) ditambah dua paku yang menonjol. Mereka sulit untuk dilewatkan, bukan? Semakin besar terjadi pada periode 12 dan semakin kecil pada periode 52. Dengan demikian metode ini telah mendeteksi siklus bulanan dan siklus mingguan dalam data ini. Itu benar-benar semua yang ada untuk itu. Untuk mengotomatiskan deteksi siklus ("musiman"), cukup pindai periodogram (yang merupakan daftar nilai) untuk maksimum lokal yang relatif besar.

Saatnya untuk mengungkapkan bagaimana data ini dibuat.

Data diurai menjadi sinyal plus noise

Nilai-nilai dihasilkan dari jumlah dua gelombang sinus, satu dengan frekuensi 12 (dari amplitudo kuadrat 3/4) dan yang lain dengan frekuensi 52 (dari amplitudo kuadrat 1/4). Inilah yang terdeteksi oleh paku dalam periodogram. Jumlah mereka ditampilkan sebagai kurva hitam tebal. Iid Normal noise variance 2 kemudian ditambahkan, seperti yang ditunjukkan oleh bar abu-abu terang memanjang dari kurva hitam ke titik-titik merah. Kebisingan ini memperkenalkan goyangan tingkat rendah di bagian bawah periodogram, yang sebaliknya hanya akan menjadi 0. Rata-rata dua pertiga dari total variasi dalam nilai adalah non-periodik dan acak, yang sangat bising: itu sebabnya jadi sulit untuk melihat periodisitas hanya dengan melihat titik-titiknya. Namun demikian (sebagian karena ada begitu banyak data) menemukan frekuensi dengan periodogram itu mudah dan hasilnya jelas.

Instruksi dan saran yang bagus untuk menghitung periodogram muncul di situs Numerical Recipes : lihat bagian "estimasi spektrum daya menggunakan FFT." Rmemiliki kode untuk estimasi periodogram . Ilustrasi ini dibuat di Mathematica 8; periodogram dihitung dengan fungsi "Fourier" -nya.

whuber
sumber
2
Asumsi "setelah menghilangkan tren keseluruhan" adalah Tumit Achilles karena mungkin ada banyak tren waktu, banyak level bergeser yang semuanya dikecualikan dalam contoh Anda. Gagasan bahwa rangkaian input bersifat deterministik dalam sifatnya terbang di hadapan kemungkinan yang ada. keberadaan struktur ARIMA musiman dan reguler. Nilai Satu Kali Tidak Biasa yang Tidak Diolah akan mendistorsi skema identifikasi berbasis periodogram karena bias ke bawah pada perkiraan periodogram yang menghasilkan non-signifikansi. Jika efek mingguan dan / atau bulanan berubah pada beberapa titik di masa lalu, prosedur berbasis periodogram akan gagal
IrishStat
@Irish Saya pikir komentar Anda mungkin agak berlebihan. Yang paling mendasar adalah mencari dan memperlakukan "Nilai Satu Kali Tidak Biasa" (alias outlier), jadi ini hanya perlu disebutkan untuk menekankan bahwa beberapa penduga deret waktu mungkin sensitif terhadap outlier. "Deterministik di alam" salah mengartikan ide-ide dasar: tidak ada yang mengandaikan ada determinisme (sebagaimana dibuktikan oleh sejumlah besar kebisingan dalam simulasi). Simulasi ini menggabungkan sinyal periodik yang pasti sebagai model - selalu perkiraan pada kenyataannya - hanya untuk menggambarkan hubungan antara periodogram dan musiman. (Lanjutan ...)
whuber
2
Ya, perubahan musiman dapat mengaburkan periodogram (dan ACF, dll.), Terutama perubahan frekuensi (tidak mungkin) atau fase (mungkin). Referensi dalam posting saya memberikan solusi untuk mengatasinya: mereka merekomendasikan menggunakan jendela bergerak untuk estimasi periodogram. Ada seni untuk ini, dan jelas ada jebakan, sehingga banyak analisis deret waktu akan mendapat manfaat dari perawatan ahli, seperti yang Anda anjurkan. Tetapi pertanyaannya adalah apakah ada "metode lain untuk mendeteksi musim" dan tak dapat disangkal bahwa periodogram adalah opsi yang kuat secara statistik, efisien secara komputasi, mudah ditafsirkan.
whuber
Di dunia saya menggunakan sinus / cosinus adalah "efek deterministik" seperti indikator bulan dalam setahun. Menyesuaikan model yang ditentukan sebelumnya membatasi nilai yang dipasang pada pola yang ditentukan pengguna, seringkali di bawah standar. Data harus "didengarkan" sebagai membantu analis / perangkat lunak komputer canggih untuk secara efektif membedakan antara input tetap dan stokastik. dari seri. Menurut pendapat saya pemanfaatan periodogram "oversells" pemodelan statistik sederhana
IrishStat
2
@whuber Mengulang hal yang sama mungkin tidak berguna. Namun, mungkin bagus juga untuk memperbaiki paragraf di bawah periodogram untuk mengatakan paku terletak pada "frekuensi" 12 dan 52 kali per tahun, dan bukan "periode". Memperbaiki plot juga untuk mengatakan "frekuensi" dan bukan "titik" mungkin bagus juga jika Anda pikir itu tidak terlalu mengganggu.
Celelibi
19

Berikut adalah contoh menggunakan data bulanan pada klaim pengangguran log dari sebuah kota di New Jersey (dari Stata, hanya karena itulah saya menganalisis data ini pada awalnya). ACF musiman

Ketinggian garis menunjukkan korelasi antara variabel dan sth lag itu sendiri; area abu-abu memberi Anda perasaan apakah korelasi ini signifikan (kisaran ini hanya panduan dan bukan cara yang paling dapat diandalkan untuk menguji signifikansi). Jika korelasi ini tinggi, ada bukti korelasi serial. Catat punuk yang terjadi di sekitar periode 12, 24, dan 36. Karena ini adalah data bulanan, ini menunjukkan bahwa korelasinya semakin kuat ketika Anda melihat periode tepat 1, 2, atau 3 tahun sebelumnya. Ini adalah bukti musiman musiman.

Anda dapat menguji hubungan ini secara statistik dengan regresi variabel pada variabel dummy yang menunjukkan komponen musiman --- di sini, boneka bulanan. Anda dapat menguji signifikansi bersama boneka tersebut untuk menguji musiman.

Prosedur ini tidak tepat, karena pengujian mensyaratkan bahwa istilah kesalahan tidak dihubungkan secara seri. Jadi, sebelum menguji boneka musiman ini, kita perlu menghapus korelasi serial yang tersisa (biasanya dengan memasukkan kelambatan variabel). Mungkin ada pulsa, istirahat, dan semua masalah deret waktu lainnya yang perlu Anda koreksi juga untuk mendapatkan hasil yang sesuai dari tes. Anda tidak bertanya tentang hal itu, jadi saya tidak akan menjelaskan secara detail (ditambah, ada banyak pertanyaan CV tentang topik-topik itu). (Hanya untuk memberi makan rasa ingin tahu Anda, seri ini membutuhkan bulan boneka, satu lag itu sendiri, dan komponen pergeseran untuk menyingkirkan korelasi serial.)

Charlie
sumber
4

Musiman dapat dan memang sering berubah seiring waktu sehingga langkah-langkah ringkasan bisa sangat tidak memadai untuk mendeteksi struktur. Kita perlu menguji transiensi dalam koefisien ARIMA dan sering kali berubah dalam "boneka musiman". Misalnya dalam cakrawala 10 tahun mungkin tidak ada efek Juni untuk tahun k pertama tetapi 10 tahun k terakhir ada bukti efek Juni. Efek Juni komposit sederhana mungkin tidak signifikan karena efeknya tidak konstan dari waktu ke waktu. Dengan cara yang sama komponen ARIMA musiman mungkin juga berubah. Perhatian harus diberikan untuk memasukkan perubahan tingkat lokal dan atau tren waktu setempat sambil memastikan bahwa varians kesalahan tetap konstan dari waktu ke waktu. Seseorang seharusnya tidak mengevaluasi transformasi seperti GLS / kuadrat terkecil tertimbang atau transformasi daya seperti log / akar kuadrat, dll. pada data asli tetapi pada kesalahan dari model tentatif. Asumsi Gaussian tidak ada hubungannya sama sekali dengan data yang diamati tetapi semua harus dilakukan dengan kesalahan dari model. Hal ini disebabkan oleh dasar-dasar uji statistik yang menggunakan rasio variabel chi-square non-sentral ke variabel chi-square sentral.

Jika Anda ingin memposting seri contoh dari dunia Anda, saya akan dengan senang hati memberi Anda dan daftar analisis menyeluruh yang mengarah pada deteksi struktur musiman.

IrishStat
sumber
1

Jawaban Charlie bagus, dan dari sanalah saya mulai. Jika Anda tidak ingin menggunakan grafik ACF, Anda bisa membuat variabel dummy k-1 untuk periode waktu k yang ada. Kemudian Anda dapat melihat apakah variabel dummy signifikan dalam regresi dengan variabel dummy (dan kemungkinan istilah tren).

Jika data Anda adalah triwulanan: dummy Q2 adalah 1 jika ini adalah kuartal kedua, kalau tidak, 0 dummy Q3 adalah 1 jika ini adalah kuartal ketiga, kalau tidak, dummy Q4 adalah 1 jika ini adalah kuartal keempat, atau 0 Catatan kuartal 1 adalah kasus dasar (semua 3 boneka nol)

Anda mungkin ingin juga memeriksa "penguraian deret waktu" di Minitab - sering disebut "dekomposisi klasik". Pada akhirnya, Anda mungkin ingin menggunakan sesuatu yang lebih modern, tetapi ini adalah tempat yang sederhana untuk memulai.

zbicyclist
sumber
0

Saya ingin menerima tawaran bantuan dari pengguna IrishStat atau siapa pun di seri contoh dunia nyata saya. Saya mencoba untuk menghasilkan indeks musiman berdasarkan 5 tahun terakhir dari harga berjangka minyak mentah. Saya telah berhasil menghasilkan rata-rata sederhana Musiman yang dapat dilihat di sini .

Namun, saya ingin mereproduksi grafik musiman bergulir tahunan (saya menebak bergulir berarti awal & akhir untuk tahun ini adalah nilai yang sama) dan berada pada skala nol hingga 100 seperti yang ditunjukkan pada gambar di bawah ini: masukkan deskripsi gambar di sini

Ada 15 tahun data tingkat harga harian dalam spreadsheet yang dapat diunduh. Contoh atau petunjuk tentang cara mencapai hal di atas akan sangat dihargai.

Andrej Kirda
sumber
-1

Saya agak baru untuk R sendiri, tetapi pemahaman saya tentang fungsi ACF adalah bahwa jika garis vertikal berjalan di atas garis putus-putus atas, atau di bawah garis putus-putus bawah, ada beberapa autoregresi (termasuk musim). Coba buat vektor sinus

Bill Yarberry
sumber
Pemasangan sinus / cosinus dll dapat berguna untuk beberapa deret waktu fisik / listrik tetapi Anda harus mengetahui MSB, Bias Spesifikasi Model.
IrishStat
1
Autoregresi tidak menyiratkan musiman.
Jens