Membandingkan auto.arima() dan ets() pada data non-musiman
Statistik AICc berguna untuk memilih di antara model dalam kelas yang sama. Misalnya, Anda dapat menggunakannya untuk memilih model ETS atau memilih model ARIMA. Namun, Anda tidak dapat menggunakannya untuk membandingkan model ETS dan ARIMA karena keduanya berasal dari kelas model yang berbeda.
Sebagai gantinya, Anda dapat menggunakan validasi silang deret waktu untuk membandingkan model ARIMA dan model ETS pada data austa. Karena tsCV() memerlukan fungsi yang mengembalikan objek ramalan, Anda akan menyiapkan beberapa fungsi sederhana yang menyesuaikan model dan mengembalikan ramalannya. Argumen tsCV() adalah sebuah deret waktu, fungsi peramalan, dan horizon ramalan h. Tinjau potongan kode dari bab kedua berikut ini:
e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
e[, h] <- tsCV(goog, naive, h = h)
...
Selain itu, ingat bahwa operator pipe di R mengambil nilai apa pun yang ada di kiri dan meneruskannya sebagai argumen ke yang di kanan, selangkah demi selangkah, dari kiri ke kanan. Berikut contoh berdasarkan kode yang Anda lihat di bab sebelumnya:
# Plot ramalan 20 tahun untuk deret lynx yang dimodelkan oleh ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()
Dalam latihan ini, Anda akan membandingkan MSE dari dua fungsi peramalan yang diterapkan pada austa, dan memplot ramalan dari fungsi yang menghasilkan ramalan terbaik. Sekali lagi, austa telah dimuat ke dalam workspace Anda.
Latihan ini adalah bagian dari kursus
Peramalan di R
Petunjuk latihan
- Lengkapi fungsi
farima()untuk meramalkan hasil dariauto.arima(). Ikuti struktur kode yang sudah disiapkan dalamfets()yang melakukan hal serupa untukets(). - Hitung galat tervalidasi-silang untuk model ETS pada
austamenggunakantsCV()dengan galat satu-langkah, dan simpan sebagaie1. - Hitung galat tervalidasi-silang untuk model ARIMA pada
austamenggunakantsCV()dengan galat satu-langkah, dan simpan sebagaie2. - Hitung MSE tervalidasi-silang untuk setiap kelas model dan hilangkan nilai yang hilang. Rujuk bab sebelumnya jika Anda lupa cara menghitung MSE.
- Hasilkan dan plot ramalan 10 tahun terhadap nilai masa depan
austamenggunakan kelas model terbaik.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Set up forecast functions for ETS and ARIMA models
fets <- function(x, h) {
forecast(ets(x), h = h)
}
farima <- function(x, h) {
forecast(___, ___)
}
# Compute CV errors for ETS on austa as e1
e1 <- tsCV(austa, ___, ___)
# Compute CV errors for ARIMA on austa as e2
e2 <- tsCV(___, ___, ___)
# Find MSE of each model class
mean(___, ___)
mean(___, ___)
# Plot 10-year forecasts using the best model class
austa %>% ___ %>% ____