Ramalan ARIMA dengan musim dan tren, hasil yang aneh

9

karena saya melangkah ke peramalan dengan model ARIMA, saya mencoba memahami bagaimana saya dapat meningkatkan ramalan berdasarkan ARIMA yang sesuai dengan musiman dan pergeseran.

Data saya adalah seri waktu berikut (lebih dari 3 tahun, dengan tren yang jelas ke atas dan musim yang terlihat, yang tampaknya tidak didukung oleh autokorelasi pada kelambatan 12, 24, 36 ??).

    > bal2sum3years.ts
             Jan     Feb     Mar     Apr     May     Jun     Jul     Aug          
    2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729 
    2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888 
    2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416 
             Sep     Oct     Nov     Dec
    2010 2232261 2394644 2468479 2816287
    2011 2480940 2699780 2760268 3206372
    2012 2951516 3119176 3032960 3738256

Model yang disarankan oleh auto.arima(bal2sum3years.ts)memberi saya model berikut:

    Series: bal2sum3years.ts 
    ARIMA(0,0,0)(0,1,0)[12] with drift         

    Coefficients:
              drift
          31725.567
    s.e.   2651.693

    sigma^2 estimated as 2.43e+10:  log likelihood=-321.02
    AIC=646.04   AICc=646.61   BIC=648.39

Namun, acf(bal2sum3years.ts,max.lag=35)tidak menunjukkan koefisien acf lebih tinggi dari 0,3. Namun, musiman data cukup jelas - lonjakan pada awal setiap tahun. Inilah yang terlihat seperti seri pada grafik: Seri Waktu Asli

Perkiraan menggunakan fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE), disebut oleh fungsi forecast(fit), menghasilkan 12 bulan berikutnya berarti sama dengan 12 bulan terakhir dari data ditambah konstan. Ini bisa dilihat dengan menelepon plot(forecast(fit)),

Data Aktual dan Prakiraan

Saya juga telah memeriksa residu, yang tidak berkorelasi otomatis tetapi memiliki rata-rata positif (bukan nol).

Fit tidak memodelkan deret waktu asli dengan tepat, menurut saya (biru deret waktu asli, merah adalah fitted(fit):

Asli vs pas

Tamu adalah, apakah modelnya salah? Apakah saya melewatkan sesuatu? Bagaimana saya bisa meningkatkan model? Tampaknya model ini benar-benar membutuhkan 12 bulan terakhir dan menambahkan konstanta untuk mencapai 12 bulan ke depan.

Saya seorang pemula relatif dalam model dan statistik perkiraan waktu.

zima
sumber
" Cocok tidak memodelkan deret waktu asli dengan tepat, menurut saya " - mengapa Anda mengharapkannya ??
Glen_b -Reinstate Monica
@ Glen_b, pendapat ini didasarkan pada perbedaan yang saya lihat ketika saya melihat plot. Jika saya mencoba meramalkan, misalnya, penjualan bulanan untuk keperluan akuntansi, kesalahannya mungkin signifikan ...
zima
" Perbedaan yang saya lihat ketika saya melihat plot " adalah cara lain untuk mengatakan " tidak memodelkan deret waktu secara tepat ". Ini bukan sengketa. Ekspresi keinginan Anda untuk ramalan yang lebih baik adalah keinginan yang sama yang dimiliki setiap peramal. Dalam banyak kasus itu bisa sangat penting. Namun demikian, keinginan ini tidak memasukkan lebih banyak informasi ke dalam data. Setiap model ARIMA - memang, setiap model deret waktu yang relevan dengan tugas ini - memiliki istilah kesalahan nol. Akan selalu ada ketidakcocokan antara data dan kecocokan. Adakah sesuatu yang membuat Anda berpikir model Anda telah melewatkan sesuatu yang dapat dimodelkan?
Glen_b -Reinstate Monica
Saya baru saja memikirkan sesuatu .. Mungkin model ARIMA memang tidak dapat mencerminkan data karena tidak mempertimbangkan sifat data - aktivitas pengguna di situs web. Saya pikir mungkin ada peristiwa lain yang mempengaruhi angka, bukan hanya musiman - seperti acara khusus, promosi .. Mungkin metode prediksi lainnya (bukan ARIMA), tetapi yang lebih kompleks yang melibatkan teknik Pembelajaran Mesin, dapat memprediksi nilai dengan lebih baik. Saya akan memeriksanya.
zima
Cukup masuk akal. Jika demikian, Anda harus dapat mengidentifikasi kegagalan tersebut dalam residu. Perhatikan bahwa model ARIMA dan model deret waktu struktural dapat memasukkan hal-hal seperti acara khusus dan promosi melalui ketentuan regresi; model regresi deret waktu cukup umum.
Glen_b -Reinstate Monica

Jawaban:

9

saya[12]

Ya, memang, model yang disarankan adalah "Juni ini = Juni lalu + konstanta + kesalahan", dan juga untuk bulan-bulan lainnya.

Apa yang salah dengan itu tepatnya? Tampaknya ini adalah deskripsi yang sangat baik untuk data Anda.

Anda mungkin menemukan dekomposisi deret waktu lebih intuitif dan lebih mudah untuk dijelaskan, mungkin bahkan sesuatu yang didasarkan pada Model Struktural Dasar - model dengan musiman - tetapi itu tidak selalu menyiratkan model yang berfungsi lebih baik daripada yang Anda miliki. Masih satu atau lebih teknik dekomposisi standar mungkin layak untuk dicoba - ada banyak yang bisa dikatakan untuk model yang Anda pahami dengan baik.

Glen_b -Reinstate Monica
sumber
1

Saya percaya bahwa masalah kita adalah bahwa kita melompat langsung ke model ARIMA tanpa mencoba model tradisional. untuk alasan ini, Anda dapat menemukan model tidak memberikan hasil yang dibutuhkan. Dalam kasus Anda, saya menguji data Anda, saya menemukan bahwa ada musiman setiap 12 bulan yang jelas untuk Anda, tetapi juga saya menemukan bahwa rata-rata bergerak sederhana dari 3 istilah Penyesuaian musiman: Multiplicative adalah model terbaik. Menurut pendapat saya, Kami harus mencoba algoritma peramalan tradisional sebelum beralih ke teknik canggih apa pun. Prakiraan 12 bulan untuk data pertanyaan

Awbath
sumber
1
Model yang Anda sarankan adalah model ARIMA dalam bentuk (3,0,0) (0,0,0) di mana Anda melakukan hardcoding pada ketiga koefisien menjadi 0,333, 0,333 dan 0,333 dan konstanta 0,0. Jadi tidak hanya mengasumsikan bentuk model arima TETAPI Anda mengasumsikan nilai-nilai koefisien DAN tidak ada outlier yang ada dalam seri. Biarkan data berbicara sendiri dalam bentuk model dan nilai optimal untuk parameter ... Anda tidak akan rugi dan banyak yang bisa didapat. Jika memang model Anda benar maka akan ditemukan .. Semua model arima adalah fungsi tertimbang di masa lalu.
IrishStat
1
stats.stackexchange.com/questions/40905/… menjabarkan bagaimana pemodelan tertimbang dan arima terkait. Dengan cara ini model ARIMA dapat dijelaskan sebagai jawaban atas pertanyaan Berapa banyak nilai historis yang harus saya gunakan untuk menghitung jumlah terbobot dari lalu? Apa tepatnya nilai-nilai itu?
IrishStat