Komentar: Pertama saya ingin mengatakan besar terima kasih kepada penulis yang baru tsoutliers paket yang menerapkan Chen dan Liu deteksi time series outlier yang diterbitkan dalam Journal of American Association statistik pada tahun 1993 dalam perangkat lunak Open Source .
Paket mendeteksi 5 jenis pencilan yang berbeda secara iteratif dalam data deret waktu:
- Additive Outlier (AO)
- Innovation Outlier (IO)
- Level Shift (LS)
- Perubahan sementara (TC)
- Pergeseran Tingkat Musiman (SLS)
Yang lebih hebat lagi adalah bahwa paket ini mengimplementasikan auto.arima dari paket perkiraan sehingga mendeteksi outlier tidak ada masalah. Paket ini juga menghasilkan plot yang bagus untuk pemahaman yang lebih baik tentang data deret waktu.
Di bawah ini adalah pertanyaan saya:
Saya mencoba menjalankan beberapa contoh menggunakan paket ini dan itu berhasil. Pencilan aditif dan pergeseran level bersifat intuitif. Namun, saya memiliki 2 pertanyaan berkaitan dengan menyerahkan outlier Perubahan Sementara dan outlier Inovatif yang saya tidak bisa mengerti.
Contoh Perubahan Sementara Sementara:
Perhatikan contoh berikut:
library(tsoutliers)
library(expsmooth)
library(fma)
outlier.chicken <- tsoutliers::tso(chicken,types = c("AO","LS","TC"),maxit.iloop=10)
outlier.chicken
plot(outlier.chicken)
Program ini dengan tepat mendeteksi perubahan level dan perubahan sementara di lokasi berikut.
Outliers:
type ind time coefhat tstat
1 LS 12 1935 37.14 3.153
2 TC 20 1943 36.38 3.350
Di bawah ini adalah plot dan pertanyaan saya.
- Bagaimana cara menulis perubahan sementara dalam format persamaan? (Pergeseran level dapat dengan mudah ditulis sebagai variabel biner, kapan saja sebelum 1935 / Obs 12 adalah 0 dan setiap saat setelah 1935 dan setelah adalah 1.)
Persamaan untuk perubahan sementara dalam manual paket dan artikel diberikan sebagai:
di mana adalah 0,7. Saya hanya berusaha menerjemahkan ini ke contoh di atas.
- Pertanyaan kedua saya adalah tentang outlier inovasi, saya belum pernah
menemukan outlier inovasi dalam praktek. contoh numersial atau contoh kasus akan sangat membantu.
Sunting: @Irishstat, fungsi tsoutliers melakukan pekerjaan yang sangat baik dalam mengidentifikasi outlier dan menyarankan model ARIMA yang sesuai. Melihat dataset Nile, lihat aplikasi auto.arima di bawah ini dan kemudian terapkan tsoutliers (dengan default yang mencakup auto.arima):
auto.arima(Nile)
Series: Nile
ARIMA(1,1,1)
Coefficients:
ar1 ma1
0.2544 -0.8741
s.e. 0.1194 0.0605
sigma^2 estimated as 19769: log likelihood=-630.63
AIC=1267.25 AICc=1267.51 BIC=1275.04
Setelah menerapkan fungsi tsoutliers, ia mengidentifikasi outlier LS dan outlier aditif dan merekomendasikan pesanan ARIMA (0,0,0).
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))
nile.outliers
Series: Nile
ARIMA(0,0,0) with non-zero mean
Coefficients:
intercept LS29 AO43
1097.7500 -242.2289 -399.5211
s.e. 22.6783 26.7793 120.8446
sigma^2 estimated as 14401: log likelihood=-620.65
AIC=1249.29 AICc=1249.71 BIC=1259.71
Outliers:
type ind time coefhat tstat
1 LS 29 1899 -242.2 -9.045
2 AO 43 1913 -399.5 -3.306
tsoutliers
telah diubah namanya tso
untuk menghindari konflik dengan fungsi dengan nama yang sama dalam paket forecast
.