Saya sudah mendapatkan data bulanan dari tahun 1993 hingga 2015 dan ingin melakukan perkiraan data ini. Saya menggunakan paket tsoutliers untuk mendeteksi outliers, tetapi saya tidak tahu bagaimana cara melanjutkan perkiraan dengan set data saya.
Ini kode saya:
product.outlier<-tso(product,types=c("AO","LS","TC"))
plot(product.outlier)
Ini adalah output saya dari paket tsoutliers
ARIMA(0,1,0)(0,0,1)[12]
Coefficients:
sma1 LS46 LS51 LS61 TC133 LS181 AO183 AO184 LS185 TC186 TC193 TC200
0.1700 0.4316 0.6166 0.5793 -0.5127 0.5422 0.5138 0.9264 3.0762 0.5688 -0.4775 -0.4386
s.e. 0.0768 0.1109 0.1105 0.1106 0.1021 0.1120 0.1119 0.1567 0.1918 0.1037 0.1033 0.1040
LS207 AO237 TC248 AO260 AO266
0.4228 -0.3815 -0.4082 -0.4830 -0.5183
s.e. 0.1129 0.0782 0.1030 0.0801 0.0805
sigma^2 estimated as 0.01258: log likelihood=205.91
AIC=-375.83 AICc=-373.08 BIC=-311.19
Outliers:
type ind time coefhat tstat
1 LS 46 1996:10 0.4316 3.891
2 LS 51 1997:03 0.6166 5.579
3 LS 61 1998:01 0.5793 5.236
4 TC 133 2004:01 -0.5127 -5.019
5 LS 181 2008:01 0.5422 4.841
6 AO 183 2008:03 0.5138 4.592
7 AO 184 2008:04 0.9264 5.911
8 LS 185 2008:05 3.0762 16.038
9 TC 186 2008:06 0.5688 5.483
10 TC 193 2009:01 -0.4775 -4.624
11 TC 200 2009:08 -0.4386 -4.217
12 LS 207 2010:03 0.4228 3.746
13 AO 237 2012:09 -0.3815 -4.877
14 TC 248 2013:08 -0.4082 -3.965
15 AO 260 2014:08 -0.4830 -6.027
16 AO 266 2015:02 -0.5183 -6.442
Saya punya pesan peringatan ini juga.
Warning messages:
1: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
2: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
3: In locate.outliers.oloop(y = y, fit = fit, types = types, cval = cval, :
stopped when ‘maxit’ was reached
4: In arima(x, order = c(1, d, 0), xreg = xreg) :
possible convergence problem: optim gave code = 1
5: In auto.arima(x = c(5.77, 5.79, 5.79, 5.79, 5.79, 5.79, 5.78, 5.78, :
Unable to fit final model using maximum likelihood. AIC value approximated
Keraguan:
- Jika saya tidak salah, paket tsoutliers akan menghapus outlier yang dideteksi dan melalui penggunaan dataset dengan outlier dihapus, itu akan memberi kita model arima terbaik yang cocok untuk kumpulan data, apakah itu benar?
- Set data seri penyetelan digeser ke bawah banyak karena penghapusan pergantian level, dll. Bukankah ini berarti bahwa jika peramalan dilakukan pada seri yang disesuaikan, output ramalan akan sangat tidak akurat, karena data yang lebih baru sudah lebih dari 12, sementara data yang disesuaikan menggesernya menjadi sekitar 7-8.
- Apa arti pesan peringatan 4 dan 5? Apakah ini berarti tidak dapat melakukan auto.arima menggunakan seri yang disesuaikan?
- Apa arti [12] dalam ARIMA (0,1,0) (0,0,1) [12] artinya? Apakah ini hanya frekuensi / periodisitas dari dataset saya, yang saya set ke bulanan? Dan apakah ini juga berarti bahwa seri data saya juga musiman?
- Bagaimana cara mendeteksi musiman di set data saya? Seperti dari visualisasi plot seri waktu, saya tidak dapat melihat tren yang jelas, dan jika saya menggunakan fungsi penguraian, itu akan menganggap bahwa ada tren musiman? Jadi apakah saya hanya percaya apa yang dikatakan para tsoutlier kepada saya, di mana ada tren musiman, karena ada MA pesanan 1?
- Bagaimana saya terus melakukan peramalan dengan data ini setelah mengidentifikasi pencilan ini?
- Bagaimana cara memasukkan pencilan ini ke model peramalan lainnya - Penghalusan Eksponensial, ARIMA, Model Strutural, Random Walk, theta? Saya yakin saya tidak bisa menghapus outlier karena ada pergeseran level, dan jika saya hanya mengambil data seri yang disesuaikan, nilainya akan terlalu kecil, jadi apa yang harus saya lakukan?
Apakah saya perlu menambahkan outlier ini sebagai regressor di auto.arima untuk perkiraan? Bagaimana cara kerjanya?
Paket 'tsoutliers' mengimplementasikan prosedur yang dijelaskan oleh Chen dan Liu (1993) [1]. Deskripsi paket dan prosedurnya juga diberikan dalam dokumen ini .
Secara singkat, prosedur ini terdiri dari dua tahap utama:
Seri ini kemudian disesuaikan untuk pencilan yang terdeteksi dan tahap (1) dan (2) diulang sampai tidak ada pencilan yang terdeteksi atau sampai jumlah iterasi maksimum tercapai.
Tahap pertama (pendeteksian outlier) juga merupakan proses berulang. Pada akhir setiap iterasi residual dari model ARIMA disesuaikan untuk outlier yang terdeteksi dalam tahap ini. Proses ini diulangi sampai tidak ada lagi outlier yang ditemukan atau sampai jumlah iterasi maksimum tercapai (secara default 4 iterasi). Tiga peringatan pertama yang Anda dapatkan terkait dengan loop batin ini, yaitu, panggung keluar setelah empat iterasi.
Anda dapat meningkatkan jumlah iterasi maksimum melalui argumen
maxit.iloop
dalam fungsitso
. Dianjurkan untuk tidak mengatur jumlah iterasi yang tinggi pada tahap pertama dan membiarkan proses beralih ke tahap kedua di mana model ARIMA dipasang kembali atau dipilih lagi.Peringatan 4 dan 5 terkait dengan proses pemasangan model ARIMA dan memilih model, masing-masing untuk fungsi
stats::arima
danforecast:auto.arima
. Algoritma yang memaksimalkan fungsi kemungkinan tidak selalu menyatu ke solusi. Anda dapat menemukan beberapa detail yang terkait dengan masalah ini, misalnya, di pos ini dan pos ini[1] Chung Chen dan Lon-Mu Liu (1993) "Estimasi Bersama Parameter Model dan Efek Outlier dalam Time Series", Jurnal Asosiasi Statistik Amerika , 88 (421), hlm. 284-297. DOI: 10.1080 / 01621459.1993.10594321 .
sumber