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
Instrucțiuni pentru exercițiu
- Completează funcția
farima()pentru a prognoza rezultatele funcțieiauto.arima(). Urmează structura codului predefinit dinfets(), care face același lucru pentruets(). - Calculează erorile validate încrucișat pentru modelele ETS pe
austafolosindtsCV()cu erori de un pas și salvează rezultatul îne1. - Calculează erorile validate încrucișat pentru modelele ARIMA pe
austafolosindtsCV()cu erori de un pas și salvează rezultatul îne2. - 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
austafolosind 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 %>% ___ %>% ____