Cara menyesuaikan model untuk rangkaian waktu yang berisi pencilan

9

Saya telah memasang model ARIMA (5,1,2) menggunakan auto.arima()fungsi dalam R dan dengan melihat urutan kita dapat mengatakan ini bukan model terbaik untuk perkiraan. Jika outlier ada dalam seri data, apa metode untuk mencocokkan model dengan data tersebut?

Anthony
sumber
Apakah Anda memiliki data / teori tentang poin-poin apa yang outlier? Anda tidak bisa hanya berasumsi bahwa poin "jauh" adalah outlier, tetapi jika Anda tahu bahwa sesuatu yang istimewa terjadi pada tanggal tertentu dan peristiwa itu akan memengaruhi data Anda, Anda dapat menambahkan variabel indikator ke model Anda untuk tanggal tersebut. Lihat komentar IrishStat, di bawah ini.
Wayne
Jika sesuatu yang istimewa terjadi pada 1 atau 2 minggu dalam periode itu dan itu mempengaruhi model, maka model itu mungkin salah. karena tidak ada alasan lain seperti variasi musiman, saya berasumsi bahwa outlier adalah penyebab yang mempengaruhi model.
Anthony

Jawaban:

7

Michael Chernick mengarahkan Anda ke arah yang benar. Saya juga akan melihat karya Ruey Tsay seperti yang ditambahkan ke tubuh pengetahuan ini. Lihat lebih lanjut di sini .

Anda tidak dapat bersaing dengan algoritma komputer otomatis saat ini. Mereka melihat banyak cara untuk mendekati deret waktu yang belum Anda pertimbangkan dan sering tidak didokumentasikan dalam kertas atau buku apa pun. Ketika seseorang bertanya bagaimana melakukan ANOVA, jawaban yang tepat dapat diharapkan ketika membandingkan dengan algoritma yang berbeda. Ketika seseorang mengajukan pertanyaan bagaimana saya melakukan pengenalan pola, banyak jawaban dimungkinkan karena heuristik terlibat. Pertanyaan Anda melibatkan penggunaan heuristik.

Cara terbaik untuk menyesuaikan model ARIMA, jika outlier ada dalam data adalah untuk mengevaluasi kemungkinan keadaan alam dan memilih pendekatan yang dianggap optimal untuk set data tertentu. Satu keadaan yang memungkinkan adalah proses ARIMA adalah sumber utama variasi yang dijelaskan. Dalam hal ini orang akan "mengidentifikasi tentatif" proses ARIMA melalui fungsi ACF / pacf dan kemudian memeriksa residu untuk kemungkinan outlier. Pencilan dapat berupa Pulsa, yaitu peristiwa satu kali ATAU pulsa musiman yang dibuktikan dengan pencilan sistematis pada beberapa frekuensi (misalnya, 12 untuk data bulanan). Jenis pencilan yang ketiga adalah di mana seseorang memiliki rangkaian pulsa yang berdekatan, masing-masing memiliki tanda dan besaran yang sama, ini disebut sebagai step atau level shift. Setelah memeriksa residu dari proses ARIMA tentatif seseorang kemudian dapat secara tentatif menambahkan struktur deterministik yang diidentifikasi secara empiris untuk membuat model gabungan tentatif. Atau jika sumber variasi utama adalah salah satu dari 4 jenis atau "outlier" maka seseorang akan lebih baik dilayani dengan mengidentifikasi mereka ab initio (pertama) dan kemudian menggunakan residu dari "model regresi" ini untuk mengidentifikasi struktur stokastik (ARIMA) . Sekarang dua strategi alternatif ini menjadi sedikit lebih rumit ketika seseorang memiliki "masalah" di mana parameter ARIMA berubah dari waktu ke waktu atau varians kesalahan berubah dari waktu ke waktu karena sejumlah kemungkinan penyebab, mungkin kebutuhan untuk kuadrat terkecil tertimbang atau transformasi daya seperti log / timbal balik, dll. Komplikasi lain / peluang adalah bagaimana dan kapan untuk membentuk kontribusi seri prediktor yang disarankan pengguna untuk membentuk model yang terintegrasi mulus menggabungkan memori, kausal dan seri dummy yang diidentifikasi secara empiris. Masalah ini semakin diperparah ketika seseorang memiliki seri trending dimodelkan terbaik dengan seri indikator bentuk0,0,0,0,1,2,3,4,... , atau dan kombinasi seri level shift seperti . Anda mungkin ingin mencoba dan menulis prosedur seperti itu di R, tetapi hidup ini singkat. Saya akan senang untuk benar-benar menyelesaikan masalah Anda dan menunjukkan dalam hal ini bagaimana prosedurnya bekerja, silakan kirim data atau kirimkan ke [email protected]1,2,3,4,5,...n0,0,0,0,0,0,1,1,1,1,1


Komentar tambahan setelah menerima / menganalisis data / data harian untuk nilai tukar mata uang asing / 18 = 765 nilai mulai 1/1/2007

masukkan deskripsi gambar di sini

Data memiliki acf:

masukkan deskripsi gambar di sini

Setelah mengidentifikasi model arma dari bentuk dan sejumlah outlier acf dari residu menunjukkan keacakan karena nilai acf sangat kecil. AUTOBOX mengidentifikasi sejumlah pencilan:(1,1,0)(0,0,0)

masukkan deskripsi gambar di sini

Model terakhir:

masukkan deskripsi gambar di sini

termasuk kebutuhan untuk augmentasi stabilisasi varian a la TSAY di mana perubahan varians dalam residu diidentifikasi dan dimasukkan. Masalah yang Anda miliki dengan menjalankan otomatis Anda adalah bahwa prosedur yang Anda gunakan, seperti seorang akuntan, percaya data daripada menantang data melalui Intervensi Deteksi (alias, Deteksi Outlier). Saya telah memposting analisis lengkap di sini .

masukkan deskripsi gambar di sini

IrishStat
sumber
@IrishStat: Di masa mendatang, dapatkah Anda menggunakan opsi pemformatan? (kunci yang benar untuk memasukkan tautan adalah ctrl-l, bukan ctrl-c).
user603
@ user603 Saya hanya menggunakan opsi tambahkan grafik. Saya tidak tahu apa yang Anda maksud dengan ctrl-l atau cntrl-c. Mungkin Anda bisa membantu saya, silakan hubungi saya di dave / @ / autobox.com dan mungkin Anda bisa berjalan / berbicara dengan saya melalui ini.
IrishStat
@IrishStat: lihat di sini .
user603
@ user603 OK tapi saya masih tidak tahu apa yang Anda maksud dengan ctrl-l dan cntrl-c. Saya menggunakan transfer gambar di mana saya dapat memasukkan gambar. Jika saya mengetik cntrl-g, saya hanya mendapatkan layar pop-up kosong.
IrishStat
@IrishStat: tidak apa-apa - metode tautannya bahkan lebih baik daripada ctrl-l :). PS: tujuan saya adalah untuk membantu Anda membuat jawaban / komentar Anda lebih menarik, secara kosmetik, dengan menyembunyikan tautan-tautan panjang yang memotong aliran teks. Tautan tersebut menjelaskan kepada Anda cara mencapai itu.
user603
6

Tidak ada siap untuk menggunakan fungsi counterpart to arima yang kuat di R (belum) ; harus ada yang muncul, itu akan terdaftar di sini . Mungkin alternatifnya adalah menurunkan berat badan pengamatan yang mendekati sehubungan dengan aturan deteksi outlier sederhana univariat, tapi saya juga tidak melihat siap untuk menggunakan paket untuk menjalankan regresi ARMA tertimbang. Alternatif lain yang mungkin dilakukan adalah Winsorize poin-poin yang ada:

#parameters
para     <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796)) 
#outliers
out      <- sample(1:100, 20)               
#contaminated series
y1[out]  <- rnorm(20, 10, 1)                
plot( y1, type="l")
lines(y0, col="red")

contoh kontaminasi acak

#winsorized series
y2      <- rep(NA, length(y1))
a1      <- (y1-median(y1)) / mad(y1)
a2      <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
   if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}       

seri dibersihkan

pengguna603
sumber
Prosedur berbasis aturan berfungsi untuk seri ini tetapi setelah melihat data time series selama hampir 42 tahun mungkin tidak berfungsi secara umum. Pertimbangkan seri sederhana yang memiliki proses proyeksi otomatis misal1,9,1,9,1,9,5,9,9, 1,9,1,9 di mana nilai ke-7 luar biasa ATAU secara umum seri yang memiliki struktur autoproyekif yang kuat dari beberapa bentuk yang tidak diketahui ATAU seri yang memiliki 1,2,1,1,1,2,1,1,1,1, 2,1,20,1,2,1,2,1,1,1,2,1,2,2,19,2,1,1,2,1,2,1,1,2,2,2, 2,21 seri bulanan yang tidak memiliki pulsa NAMUN memang memiliki DUMMY MUSIM yang tidak ditentukan. Mendeteksi 12,24, dan 36 sebagai BAD akan membuang bayi dengan air mandi.
IrishStat
Semua yang Anda katakan adalah benar, yaitu Anda memberikan bantuan pita yang akan membantu luka jika 1) seri itu diam yang mengasumsikan antara lain tidak ada perubahan level, tidak ada tren dan lain-lain, tidak ada struktur ARIMA; dan 2) seri tersebut harus non-musiman atau telah sebelumnya tidak disertifikasi; . Ini adalah pengalaman saya bahwa asumsi seperti itu hampir tidak pernah berlaku dan pengguna mengabaikan peringatan Anda ketika mereka mencoba untuk bergulat dengan deret waktu yang memiliki "ketidaksempurnaan". Komentar saya di sini tidak dimaksudkan untuk menjadi argumentatif tetapi lebih mencerahkan (untuk beberapa!)
IrishStat
@IrishStat OP telah memperbarui pertanyaannya dan menyatakan bahwa tidak ada musim.
user603
Apakah Anda Christophe?
IrishStat
2

Ada literatur yang cukup besar tentang model deret waktu yang kuat. Martin dan Yohai adalah salah satu kontributor utama. Pekerjaan mereka kembali ke tahun 1980-an. Saya melakukan beberapa pekerjaan pada mendeteksi outlier dalam deret waktu, tetapi Martin benar-benar salah satu dari banyak kontributor untuk deteksi outlier dan estimasi parameter di hadapan outlier atau residu berekor berat dalam deret waktu.

Michael R. Chernick
sumber
Apa perangkat lunak yang digunakan untuk peramalan Robust? Apakah cocok untuk seri univariat?
Anthony
@Anthony Itu pertanyaan yang sangat bagus. Saya belum melakukan pemodelan deret waktu yang kuat. dug Martin mendirikan perusahaan bernama Insightful (mereka sebenarnya memiliki beberapa nama toko) yang memasarkan SPlus. Saya cukup yakin bahwa dia memasukkan metode yang kuat dalam perangkat lunak SPlus. Mungkin sekarang ada versi dalam R. Saya akan memeriksanya. Berikut adalah artikel Wikipedia termasuk sejarah SPlus. en.wikipedia.org/wiki/S-PLUS
Michael R. Chernick
@Anthony Ini adalah sumber yang disediakan oleh Rob Hyndman tentang apa yang tersedia di R pada analisis deret waktu. Ini termasuk apa yang ada di CRAN dan mencakup berbagai metode termasuk penyaringan yang kuat. cran.r-project.org/web/views/TimeSeries.html
Michael R. Chernick
2

Apakah tujuan model Anda untuk memperkirakan atau menganalisis sejarah? jika ini bukan untuk peramalan, dan Anda tahu bahwa ini adalah outlier, maka cukup tambahkan variabel dummy, yaitu 1 pada tanggal tersebut dan 0 pada tanggal lainnya. dengan cara ini koefisien dummy akan menangani outliers, dan Anda akan dapat menafsirkan koefisien lainnya dalam model.

jika ini untuk perkiraan, maka Anda harus bertanya pada diri sendiri dua pertanyaan: apakah pencilan ini akan terjadi lagi? jika mereka mau, apakah saya harus menjelaskannya?

Sebagai contoh, katakanlah seri data Anda memiliki outlier ketika Lehman brothers turun. itu adalah peristiwa yang Anda tidak punya cara untuk memprediksi, tentu saja, namun Anda tidak bisa mengabaikannya karena sesuatu seperti ini pasti akan terjadi di masa depan. jika Anda melempar boneka untuk outlier, maka Anda secara efektif menghapus ketidakpastian acara ini dari varians kesalahan. perkiraan Anda akan meremehkan risiko ekor - bukan hal yang baik, mungkin, untuk manajemen risiko. namun, jika Anda ingin membuat perkiraan penjualan awal, boneka itu akan berfungsi, karena Anda tidak tertarik pada ekornya, Anda tertarik pada skenario yang paling mungkin - jadi Anda tidak harus memperhitungkan peristiwa yang tidak terduga untuk tujuan ini.

Oleh karena itu, tujuan model Anda memengaruhi cara Anda berurusan dengan pencilan.

Aksakal
sumber