BaşlayınÜcretsiz başlayın

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

Kursa Göz Atın

Egzersiz talimatları

  • auto.arima() sonuçlarını tahmin etmek için farima() fonksiyonunu doldur. ets() için aynı işi yapan fets() içindeki önceden yazılmış kodun yapısını izle.
  • austa üzerinde ETS modelleri için tsCV() ile tek adımlık hataları kullanarak çapraz doğrulama hatalarını hesapla ve bunu e1 olarak kaydet.
  • austa üzerinde ARIMA modelleri için tsCV() ile tek adımlık hataları kullanarak çapraz doğrulama hatalarını hesapla ve bunu e2 olarak 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 %>% ___ %>% ____
Kodu Düzenle ve Çalıştır