ÎncepețiÎncepe gratuit

Compararea auto.arima() și ets() pe date non-sezoniere

Statistica AICc este utilă pentru a alege între modele din aceeași clasă. De exemplu, o poți folosi pentru a selecta un model ETS sau un model ARIMA. Totuși, nu o poți folosi pentru a compara modele ETS cu modele ARIMA, deoarece acestea aparțin unor clase de modele diferite.

În schimb, poți folosi validarea încrucișată pe serii de timp pentru a compara un model ARIMA cu un model ETS pe datele austa. Deoarece tsCV() necesită funcții care returnează obiecte de tip prognoză, vei defini câteva funcții simple care ajustează modelele și returnează prognozele. Argumentele funcției tsCV() sunt o serie de timp, o funcție de prognoză și orizontul de prognoză h. Analizează acest fragment de cod din capitolul al doilea:

e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
  e[, h] <- tsCV(goog, naive, h = h)
  ...

Amintește-ți, de asemenea, că operatorii pipe din R iau valoarea din stânga și o transmit ca argument la ce se află în dreapta, pas cu pas, de la stânga la dreapta. Iată un exemplu bazat pe cod pe care l-ai văzut într-un capitol anterior:

# Plot 20-year forecasts of the lynx series modeled by ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

În acest exercițiu, vei compara MSE-ul a două funcții de prognoză aplicate pe austa și vei reprezenta grafic prognozele funcției care oferă cele mai bune rezultate. Ca și până acum, austa a fost încărcat în spațiul tău de lucru.

Acest exercițiu face parte din cursul

Prognoze în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează funcția farima() pentru a prognoza rezultatele funcției auto.arima(). Urmează structura codului predefinit din fets(), care face același lucru pentru ets().
  • Calculează erorile validate încrucișat pentru modelele ETS pe austa folosind tsCV() cu erori de un pas și salvează rezultatul în e1.
  • Calculează erorile validate încrucișat pentru modelele ARIMA pe austa folosind tsCV() cu erori de un pas și salvează rezultatul în e2.
  • Calculează MSE-ul validat încrucișat pentru fiecare clasă de modele și elimină valorile lipsă. Consultă capitolul anterior dacă nu îți amintești cum se calculează MSE.
  • Creează și reprezintă grafic prognozele pe 10 ani ale valorilor viitoare ale seriei austa folosind cea mai bună clasă de modele.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 %>% ___ %>% ____
Editează și rulează codul