Ini adalah posting yang panjang jadi saya harap Anda bisa tahan dengan saya, dan tolong perbaiki saya di mana saya salah.
Tujuan saya adalah menghasilkan ramalan harian berdasarkan 3 atau 4 minggu dari data historis.
Data adalah data 15 menit dari muatan lokal salah satu garis transformator. Saya mengalami kesulitan menemukan urutan model proses ARIMA musiman. Pertimbangkan seri waktu permintaan listrik:
Original Time Series http://i.share.pho.to/80d86574_l.png
Ketika 3 minggu pertama diambil sebagai bagian dan dibedakan, plot ACF / PACF yang mengikuti dihitung:
Subset http://i.share.pho.to/5c165aef_l.png
Perbedaan pertama http://i.share.pho.to/b7300cc2_l.png
Perbedaan musiman dan pertama http://i.share.pho.to/570c5397_l.png
Sepertinya seri ini agak diam. Tetapi musiman juga bisa mingguan (lihat perbedaan Musiman minggu dan perbedaan urutan kedua [sini] http://share.pho.to/3owoq , bagaimana menurut Anda?)
Jadi mari kita simpulkan bahwa modelnya berbentuk:
Pada gambar terakhir lonjakan yang berbeda pada lag 96 menunjukkan komponen MA (1) musiman (mungkin AR (1) juga dapat sama karena ada lonjakan yang berbeda di PACF juga). Paku pada lag 1: 4 menunjukkan komponen MA (4) yang sesuai dengan peluruhan eksponensial dalam PACF dengan sedikit imajinasi. Dengan demikian model awal yang dipilih secara manual dapat berupa:
dengan
Series: x
ARIMA(0,1,4)(0,1,1)[96]
Coefficients:
ma1 ma2 ma3 ma4 sma1
-0.2187 -0.2233 -0.0996 -0.0983 -0.9796
s.e. 0.0231 0.0234 0.0257 0.0251 0.0804
sigma^2 estimated as 364612: log likelihood=-15138.91
**AIC=30289.82 AICc=30289.87 BIC=30323.18**
Fungsi auto.arima menghitung model berikut (dengan stepwise dan perkiraan pada TRUE, jika tidak diperlukan waktu lama untuk menyatu):
dengan
Series: x
ARIMA(1,1,1)(2,0,2)[96]
Coefficients:
ar1 ma1 sar1 sar2 sma1 sma2
0.7607 -1.0010 0.4834 0.4979 -0.3369 -0.4168
s.e. 0.0163 0.0001 0.0033 0.0116 0.0216 0.0255
sigma^2 estimated as 406766: log likelihood=-15872.02
**AIC=31744.99 AICc=31745.05 BIC=31784.25**
Yang berarti tidak ada perbedaan musiman yang diterapkan. Berikut adalah residu dari kedua model. Statistik Ljung Box memberikan nilai p yang sangat kecil, menunjukkan bahwa masih ada beberapa autokorelasi yang ada (? Koreksi saya jika saya salah).
Peramalan
Jadi untuk menentukan mana yang lebih baik, tes akurasi sampel out adalah yang terbaik. Jadi untuk kedua model perkiraan dibuat 24 jam ke depan yang dibandingkan satu sama lain. Hasilnya adalah: auto.arima http://i.share.pho.to/5d1dd934_l.png model manual http://i.share.pho.to/7ca69c97_l.png
Mobil:
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set -2.586653 606.3188 439.1367 -1.284165 7.599403 0.4914563 -0.01219792 NA
Test set -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420 0.70219229 1.617834
Manual
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229 7.509774 0.4875621 -0.002034122 NA
Test set 2.878919e+02 919.7398 696.0593 3.4756363 10.317420 0.7789892 0.731013599 1.281764
Pertanyaan
Seperti yang dapat Anda pikirkan, ini adalah analisis pada tiga minggu pertama suatu dataset. Saya berjuang dalam pikiran saya dengan pertanyaan-pertanyaan berikut:
- Bagaimana cara memilih model ARIMA terbaik (dengan mencoba semua pesanan yang berbeda dan memeriksa MASE / MAPE / MSE terbaik? Di mana pemilihan pengukuran kinerja dapat menjadi diskusi di dalamnya sendiri ..)
- Jika saya membuat model dan perkiraan baru untuk setiap perkiraan hari baru (seperti dalam perkiraan online), apakah saya perlu memperhitungkan tren tahunan dan bagaimana caranya? (Seperti dalam subset kecil seperti dugaan saya adalah bahwa tren diabaikan)
- Apakah Anda berharap bahwa urutan model tetap sama di seluruh dataset, yaitu ketika mengambil subset lain yang akan memberi saya model yang sama?
- Apa cara yang baik, dalam metode ini untuk mengatasi liburan? Atau apakah ARIMAX dengan boneka liburan eksternal diperlukan untuk ini?
- Apakah saya perlu menggunakan pendekatan seri Fourier untuk mencoba model
seasonality=672
seperti yang dibahas dalam periode musiman yang panjang ? - Jika demikian akan seperti ini
fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)
(di mana fungsi fourier sebagaimana didefinisikan dalam posting blog Hyndman) - Apakah komponen P dan Q awal termasuk dalam seri fourier?
Sebagian besar pengetahuan teoritis diperoleh dari FPP , hal-hal hebat!
Sebelum menyarankan untuk menggunakan perataan eksponensial atau regresi linier (dinamis), ini juga sedang dikerjakan untuk membandingkan.
Data
https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt
Kode
data<-read.csv("file", sep=";")
load<-data[,3]
Saya menghapus beberapa nilai nol dengan nilai sebelum minggu
stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)]
load[idx] <- load[idx-stepback]
ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))
Dimungkinkan juga untuk memposting contoh yang dapat direproduksi tetapi ini akan membuat posting lebih lama, tetapi mungkin jika diperlukan. Jadi, jika ada sesuatu yang harus saya berikan, beri tahu saya.
sumber