STL pada deret waktu dengan nilai yang hilang untuk deteksi anomali


12

Saya mencoba mendeteksi nilai-nilai anomali dalam serangkaian waktu data iklim dengan beberapa pengamatan yang hilang. Mencari di web saya menemukan banyak pendekatan yang tersedia. Dari semua itu, dekomposisi pertama tampaknya menarik, dalam arti menghilangkan tren dan komponen musiman dan mempelajari sisanya. Membaca STL: Prosedur Dekomposisi Tren Musiman Berdasarkan Loess , stltampaknya fleksibel dalam menentukan pengaturan untuk menetapkan variabilitas, tidak terpengaruh oleh pencilan dan mungkin diterapkan meskipun nilai-nilai hilang. Namun, mencoba menerapkannya dalam R, dengan pengamatan selama empat tahun dan mendefinisikan semua parameter menurut http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stl.html , saya menemukan kesalahan:

"time series contains internal NAs"(kapan na.action=na.omit), dan
"series is not periodic or has less than two periods"(kapan na.action=na.exclude).

Saya telah mengecek frekuensi yang didefinisikan dengan benar. Saya telah melihat pertanyaan yang relevan di blog, tetapi tidak menemukan saran yang dapat menyelesaikan ini. Apakah tidak mungkin diterapkan stldalam seri dengan nilai yang hilang? Saya sangat enggan untuk menginterpolasi mereka, karena saya tidak ingin memperkenalkan (dan akibatnya mendeteksi ...) artefak. Untuk alasan yang sama, saya tidak tahu bagaimana disarankan menggunakan pendekatan ARIMA saja (dan jika nilai yang hilang masih menjadi masalah).

Silakan bagikan jika Anda tahu cara untuk menerapkan stldalam seri dengan nilai yang hilang, atau jika Anda yakin pilihan saya secara metodologis tidak masuk akal, atau jika Anda memiliki saran yang lebih baik. Saya cukup baru di bidang ini dan diliputi oleh tumpukan (tampaknya ...) informasi yang relevan.


Saya mempunyai masalah yang sama. Metode STL harus bisa hanya mengisi nilai-nilai yang hilang melalui LOESS, tetapi implementasi R ini tampaknya tidak melakukannya.
jf328

Jawaban:


5

Model ARIMA mudah menggabungkan variabel dummy untuk menangani nilai yang hilang. Ini disebut Indikator Pulsa. Metodologi ini mudah dan didokumentasikan dalam http://www.unc.edu/~jbhill/tsay.pdf . Secara umum metode ini mengekstrak dari informasi seri residu saat ini mengenai Pulsa, Pergeseran Level, Pulsa Musiman dan Tren Waktu Lokal.


terima kasih atas saran dan artikelnya yang sangat menarik!
effie

3

Menurut @Julius dalam posting ini apakah mungkin untuk digunakan stldengan na.approx, dari zoopaket, menggunakan stl(x, na.action = na.approx, ...). Ini semacam interpolasi .


0

Anda mungkin juga ingin memeriksa paket Hafenstlplus . Detail ada di tesisnya.

Anda dapat menginstalnya dari CRAN dengan

install.packages("stlplus")

atau langsung dari github dengan

devtools::install_github("hafen/stlplus").
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.