Perkiraan Seri Waktu dengan Data Harian: ARIMA dengan regressor

15

Saya menggunakan serangkaian data penjualan harian yang berisi sekitar 2 tahun titik data harian. Berdasarkan beberapa tutorial / contoh online, saya mencoba mengidentifikasi musiman dalam data. Tampaknya ada periodisitas / musiman musiman, bulanan, dan mungkin tahunan.

Misalnya, ada hari gajian, khususnya pada hari gajian pertama efek bulan yang berlangsung selama beberapa hari selama seminggu. Ada juga beberapa efek khusus liburan, yang dapat diidentifikasi dengan jelas dengan mencatat pengamatan.

Dilengkapi dengan beberapa pengamatan ini, saya mencoba yang berikut:

  1. ARIMA (dengan Arimadan auto.arimadari paket R-forecast), menggunakan regressor (dan nilai default lainnya yang diperlukan dalam fungsi). Regressor yang saya buat pada dasarnya adalah sebuah matriks dengan nilai 0/1:

    • Variabel 11 bulan (n-1)
    • 12 variabel liburan
    • Tidak dapat mengetahui bagian gajian ... karena efeknya sedikit lebih rumit daripada yang saya kira. Efek gajian bekerja secara berbeda, tergantung pada hari kerja tanggal 1 bulan itu.

    Saya menggunakan 7 (yaitu, frekuensi mingguan) untuk memodelkan deret waktu. Saya mencoba tes - perkiraan 7 hari sekaligus. Hasilnya masuk akal: akurasi rata-rata untuk perkiraan 11 minggu sampai rata-rata mingguan RMSE hingga 5%.

  2. Model TBATS (dari paket R-forecast) - menggunakan beberapa musiman (7, 30.4375, 365.25) dan jelas tidak ada regressor. Keakuratannya secara mengejutkan lebih baik daripada model ARIMA pada rata-rata mingguan RMSE 3.5%.

    Dalam hal ini, model tanpa kesalahan ARMA berkinerja lebih baik. Sekarang Jika saya menerapkan koefisien hanya untuk Efek Liburan dari model ARIMA yang dijelaskan dalam # 1, untuk hasil model TBATS, rata-rata mingguan RMSE meningkat menjadi 2,95%

Sekarang tanpa memiliki banyak latar belakang atau pengetahuan tentang teori-teori yang mendasari model-model ini, saya berada dalam dilema apakah pendekatan TBATS ini bahkan valid. Meskipun itu meningkatkan RMSE secara signifikan dalam tes 11 minggu, saya bertanya-tanya apakah itu dapat mempertahankan akurasi ini di masa depan. Atau bahkan jika menerapkan efek Liburan dari ARIMA ke hasil TBATS dapat dibenarkan. Setiap pemikiran dari setiap / semua kontributor akan sangat dihargai.

Tautan untuk Data Uji

Catatan: Lakukan "Simpan Tautan Sebagai", untuk mengunduh file.

CKI
sumber
1
Selamat datang di situs ini, @CKI. Jika Anda dapat mengunggah data ke suatu tempat di web, Anda dapat memposting tautan di sini.
gung - Reinstate Monica
Saya tertarik untuk mengetahui lebih banyak tentang bagaimana para regresor dibentuk.
orbital
6 hari dalam seminggu boneka, 11 boneka bulanan dan hari libur adalah 0/1 regresi sederhana. Hari yang tetap pada bulan tersebut, lead dan lag di sekitar hari libur, tren waktu, denyut nadi musiman dan denyut nadi didasarkan pada pencarian heuristik.
Tom Reilly
Jadi CKI, bagaimana Anda menyelesaikannya?
Tom Reilly
Halo CKI, dapatkah Anda membagikan beberapa skrip R yang digunakan untuk membuat matriks musiman
Ahmed

Jawaban:

9

Anda harus mengevaluasi model dan prakiraan dari asal yang berbeda di berbagai cakrawala dan bukan satu nomor untuk mengukur suatu pendekatan.

Saya berasumsi bahwa data Anda berasal dari AS. Saya lebih suka 3+ tahun data harian karena Anda dapat memiliki dua hari libur mendarat di akhir pekan dan tidak membaca hari kerja. Sepertinya dampak Thanksgiving Anda adalah hari libur di 2012 atau ada kesalahan rekaman dari beberapa jenis dan menyebabkan model kehilangan efek Hari Thanksgiving.

Januari biasanya rendah dalam dataset jika Anda terlihat sebagai% tahun ini. Akhir pekan sangat tinggi. Dummiesis mencerminkan perilaku ini .... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

Saya telah menemukan bahwa menggunakan komponen AR dengan data harian mengasumsikan bahwa dua minggu terakhir dari pola minggu adalah bagaimana pola secara umum yang merupakan asumsi besar. Kami mulai dengan 11 boneka bulanan dan 6 boneka harian. Beberapa keluar dari model. B ** 1 berarti ada dampak kelambatan sehari setelah liburan. Ada 6 hari khusus dalam sebulan (hari 2,3,5,21,29,30 ---- 21 mungkin palsu?) Dan 3 tren waktu, 2 pulsa musiman (di mana hari dalam seminggu mulai menyimpang dari tipikal, 0 sebelum data ini dan 1 setiap 7 hari sesudahnya) dan 2 outlier (perhatikan ucapan syukur!) Ini hanya membutuhkan waktu kurang dari 7 menit untuk berjalan. Unduh semua hasil di sini www.autobox.com/se/dd/daily.zip

Ini termasuk lembar XLS cepat dan kotor untuk memeriksa untuk melihat apakah model masuk akal. Tentu saja,% XLS sebenarnya buruk karena merupakan tolok ukur kasar.

Coba perkirakan model ini:

Y(T) =  .53169E+06                                                                                        
       +[X1(T)][(+  .13482E+06B** 1)]                                       M_HALLOWEEN
       +[X2(T)][(+  .17378E+06B**-3)]                                       M_JULY4TH
       +[X3(T)][(-  .11556E+06)]                                            M_MEMORIALDAY
       +[X4(T)][(-  .16706E+06B**-4+  .13960E+06B**-3-  .15636E+06B**-2                                                 
       -  .19886E+06B**-1)]                                                 M_NEWYEARS
       +[X5(T)][(+  .17023E+06B**-2-  .26854E+06B**-1-  .14257E+06B** 1)]   M_THANKSGIVI
       +[X6(T)][(-  71726.    )]                                            MONTH_EFF01
       +[X7(T)][(+  55617.    )]                                            MONTH_EFF02
       +[X8(T)][(+  27827.    )]                                            MONTH_EFF03
       +[X9(T)][(-  37945.    )]                                            MONTH_EFF09
       +[X10(T)[(-  23652.    )]                                            MONTH_EFF10
       +[X11(T)[(-  33488.    )]                                            MONTH_EFF11
       +[X12(T)[(+  39389.    )]                                            FIXED_EFF_N10107
       +[X13(T)[(+  63399.    )]                                            FIXED_EFF_N10207
       +[X14(T)[(+  .13727E+06)]                                            FIXED_EFF_N10307
       +[X15(T)[(+  .25144E+06)]                                            FIXED_EFF_N10407
       +[X16(T)[(+  .32004E+06)]                                            FIXED_EFF_N10507
       +[X17(T)[(+  .29156E+06)]                                            FIXED_EFF_N10607
       +[X18(T)[(+  74960.    )]                                            FIXED_DAY02
       +[X19(T)[(+  39299.    )]                                            FIXED_DAY03
       +[X20(T)[(+  27660.    )]                                            FIXED_DAY05
       +[X21(T)[(-  33451.    )]                                            FIXED_DAY21
       +[X22(T)[(+  43602.    )]                                            FIXED_DAY29
       +[X23(T)[(+  68016.    )]                                            FIXED_DAY30
       +[X24(T)[(+  226.98    )]                                            :TIME TREND        1                   1/  1   1/ 3/2011   I~T00001__010311stack
       +[X25(T)[(-  133.25    )]                                            :TIME TREND      423                  61/  3   2/29/2012   I~T00423__010311stack
       +[X26(T)[(+  164.56    )]                                            :TIME TREND      631                  91/  1   9/24/2012   I~T00631__010311stack
       +[X27(T)[(-  .42528E+06)]                                            :SEASONAL PULSE  733                 105/  5   1/ 4/2013   I~S00733__010311stack
       +[X28(T)[(-  .33108E+06)]                                            :SEASONAL PULSE  370                  53/  6   1/ 7/2012   I~S00370__010311stack
       +[X29(T)[(-  .82083E+06)]                                            :PULSE           326                  47/  4  11/24/2011   I~P00326__010311stack
       +[X30(T)[(+  .17502E+06)]                                            :PULSE           394                  57/  2   1/31/2012   I~P00394__010311stack
      +                    +   [A(T)]
Tom Reilly
sumber