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 , stl
tampaknya 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 stl
dalam 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 stl
dalam 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.
sumber
Jawaban:
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.
sumber
Menurut @Julius dalam posting ini apakah mungkin untuk digunakan
stl
denganna.approx
, darizoo
paket, menggunakanstl(x, na.action = na.approx, ...)
. Ini semacam interpolasi .sumber
Anda mungkin juga ingin memeriksa paket Hafen
stlplus
. Detail ada di tesisnya.Anda dapat menginstalnya dari CRAN dengan
atau langsung dari github dengan
sumber