Mevsimsellik içermeyen verilerde auto.arima() ve ets() karşılaştırması
AICc istatistiği, aynı sınıftaki modeller arasında seçim yapmak için kullanışlıdır. Örneğin, bir ETS modelini seçmek veya bir ARIMA modelini seçmek için kullanabilirsin. Ancak, ETS ve ARIMA farklı model sınıflarında oldukları için AICc ile bunları karşılaştıramazsın.
Bunun yerine, austa verisi üzerinde bir ARIMA modeliyle bir ETS modelini karşılaştırmak için zaman serisi çapraz doğrulamasını kullanabilirsin. tsCV() fonksiyonu bir tahmin nesnesi döndüren fonksiyonlar gerektirdiğinden, modelleri uydurup tahminleri döndüren bazı basit fonksiyonlar kuracaksın. tsCV()'nin argümanları bir zaman serisi, tahmin fonksiyonu ve tahmin ufku h'dir. İkinci bölümden bu kod parçacığını incele:
e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
e[, h] <- tsCV(goog, naive, h = h)
...
Ayrıca, R'deki pipe operatörlerinin soldaki değeri alıp sağdakine, soldan sağa adım adım argüman olarak aktardığını hatırla. Önceki bir bölümde gördüğün koda dayalı bir örnek burada:
# ets() ile modellenen lynx serisinin 20 yıllık tahminlerini çiz
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()
Bu egzersizde, austa üzerinde uygulanan iki tahmin fonksiyonunun MSE değerlerini karşılaştıracak ve en iyi tahminleri üreten fonksiyonun tahminlerini çizeceksin. Tekrar hatırlatmak gerekirse, austa çalışma alanına yüklenmiş durumda.
Bu egzersiz, kursun bir parçasıdır
R ile Tahminleme
Egzersiz talimatları
auto.arima()sonuçlarını tahmin etmek içinfarima()fonksiyonunu doldur.ets()için aynı işi yapanfets()içindeki önceden yazılmış kodun yapısını izle.austaüzerinde ETS modelleri içintsCV()ile tek adımlık hataları kullanarak çapraz doğrulama hatalarını hesapla ve bunue1olarak kaydet.austaüzerinde ARIMA modelleri içintsCV()ile tek adımlık hataları kullanarak çapraz doğrulama hatalarını hesapla ve bunue2olarak kaydet.- Her model sınıfı için çapraz doğrulamalı MSE'yi hesapla ve eksik değerleri kaldır. MSE'yi nasıl hesaplayacağını hatırlamıyorsan önceki bölüme bak.
- En iyi model sınıfını kullanarak
austa'nın gelecekteki değerlerine ait 10 yıllık tahminler üret ve çiz.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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 %>% ___ %>% ____