MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Lengkapi fungsi farima() untuk meramalkan hasil dari auto.arima(). Ikuti struktur kode yang sudah disiapkan dalam fets() yang melakukan hal serupa untuk ets().
  • Hitung galat tervalidasi-silang untuk model ETS pada austa menggunakan tsCV() dengan galat satu-langkah, dan simpan sebagai e1.
  • Hitung galat tervalidasi-silang untuk model ARIMA pada austa menggunakan tsCV() dengan galat satu-langkah, dan simpan sebagai e2.
  • 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 austa menggunakan 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 %>% ___ %>% ____
Edit dan Jalankan Kode