Cara menafsirkan hasil model TBATS dan mendiagnosis model

11

Saya sudah mendapat data permintaan setengah jam, yang merupakan rangkaian waktu multi-musiman. Aku digunakan tbatsdalam forecastpaket di R, dan mendapat hasil seperti ini:

TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 

Apakah ini berarti seri tidak harus menggunakan transformasi Box-Cox, dan istilah kesalahan adalah ARMA (5, 4), dan 6, 6 dan 5 istilah digunakan untuk menjelaskan musiman? Apa artinya parameter teredam 0,8383, apakah itu juga untuk transformasi?

Berikut ini adalah plot dekomposisi model:

masukkan deskripsi gambar di sini

Saya bertanya-tanya apa yang dilakukan leveldan slopediceritakan tentang model tersebut. 'Kemiringan' menunjukkan tren, tetapi bagaimana level? Cara mendapatkan plot yang lebih jelas untuk session 1dan session 2, yang musiman harian dan mingguan.

Saya juga tahu bagaimana cara melakukan diagnosa model untuk tbatsmenilai model, kecuali untuk nilai RMSE. Cara normal adalah untuk memeriksa apakah kesalahannya adalah white noise, tetapi di sini kesalahan tersebut seharusnya merupakan seri ARMA. Saya plot 'acf' dan 'pacf' dari kesalahan, dan saya tidak berpikir itu terlihat seperti ARMA (5,4). Apakah ini berarti model saya tidak bagus?

acf(resid(model1),lag.max = 1000)
pacf(resid(model1),lag.max=1000)

masukkan deskripsi gambar di sini

Pertanyaan terakhir, RMSEdihitung dengan menggunakan nilai pas dan nilai sebenarnya. Bagaimana jika saya menggunakan nilai prediksi fc1.week$meandan nilai sebenarnya untuk menilai model, apakah masih disebut RMSE? Atau, ada nama lain untuk ini?

fc1.week <-forecast(model1,h=48*7)
fc1.week.demand<-fc1.week$mean
Jeannie
sumber

Jawaban:

8

Di halaman bantuan untuk ?tbats, kami menemukan bahwa:

Model yang cocok disebut TBATS (omega, p, q, phi,, ...,) di mana omega adalah parameter Box-Cox dan phi adalah parameter redaman; kesalahan dimodelkan sebagai proses ARMA (p, q) dan m1, ..., mJ mencantumkan periode musiman yang digunakan dalam model dan k1, ..., kJ adalah jumlah yang sesuai dari istilah Fourier yang digunakan untuk setiap musim.

Begitu:

  • omega = 1, artinya memang, tidak ada transformasi Box-Cox .
  • phi = 0,838, artinya tren akan berkurang. (Sejujurnya, saya tidak tahu apakah atau sesuai dengan total dampening. Terbaik untuk bermain-main sedikit dengan data simulasi.) Lihat parameter untuk .ϕ=0ϕ=1use.damped.trendtbats()
  • Anda memiliki tiga siklus musiman yang berbeda, satu dengan panjang 48 = 24 * 2 (setiap hari), satu dengan panjang 336 = 7 * 24 * 2 (mingguan) dan satu dengan panjang 17520 = 365 * 24 * 2 (tahunan). tbatscocok dengan yang pertama menggunakan enam istilah Fourier, yang kedua lagi dengan enam, yang terakhir dengan lima.

Makalah TBATS asli oleh De Livera, Hyndman & Snyder (2011, JASA ) tentu saja bermanfaat.

Lanjut:

  • "Level" adalah level lokal dari deret waktu.
  • "Tren" adalah tren lokal.

Ini analog dengan dekomposisi tren musim yang lebih umum menggunakan lowess (STL) . Lihatlah stl()perintahnya.

Untuk mendapatkan plot yang lebih jelas untuk season1 dan season2, Anda dapat melihat nilai numerik komponen terpisah dari model TBATS Anda. Lihatlah str(tbats.components(model1))dan summary(tbats.components(model1)). tbats.components()memberi Anda objek time series ( mts) ganda , yang pada dasarnya adalah sebuah matriks - salah satu kolom akan memberi Anda setiap komponen musiman.

residuals()harus bekerja seperti itu bekerja di mana saja di R; yaitu, ia harus mengembalikan residu final . Ini memang seharusnya white noise, karena mereka adalah residu setelah menerapkan ARMA (5,4). Puncak pada ACF Anda tampak biasa - sepertinya ada beberapa musiman yang tersisa. Bisakah Anda menyimpulkan periodisitasnya? (Tidak terlalu membantu bahwa kelambatan dihitung dalam kelipatan dari siklus musiman terpanjang.)

Akhirnya, ya, akar kuadrat kesalahan, yang merupakan ukuran akurasi perkiraan titik umum , memiliki akronim yang sama di luar sampel: RMSE.

Stephan Kolassa
sumber
1
Terima kasih banyak! Ya, puncak ACF biasa, satu puncak dalam 48 lag. Masalahnya adalah saya sudah memasukkan 48 sebagai musiman dalam rangkaian waktu saya. Bagaimana biasanya Anda lakukan untuk memperbaiki sisa musiman? Ada lagi yang patut dicoba?
Jeannie
1
Bersenandung. Sayangnya, saya tidak melihat cara untuk memaksa tbats()memasukkan lebih banyak istilah Fourier untuk musiman tertentu. Maaf ...
Stephan Kolassa