Začněte nyníZačněte zdarma

Porovnání auto.arima() a ets() na nesezónních datech

Statistika AICc se hodí pro výběr mezi modely stejné třídy – například pro porovnání modelů ETS navzájem nebo modelů ARIMA navzájem. Nelze ji však použít pro srovnání modelů ETS a ARIMA, protože patří do různých tříd modelů.

Místo toho můžeš použít křížovou validaci časových řad a porovnat model ARIMA s modelem ETS na datech austa. Protože tsCV() vyžaduje funkce vracející objekty s předpovědí, připravíš si jednoduché funkce, které modely natrénují a vrátí předpovědi. Argumenty funkce tsCV() jsou časová řada, předpovědní funkce a horizont předpovědi h. Prohlédni si tento úryvek kódu z druhé kapitoly:

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

Měj také na paměti, že operátor pipe v R vezme hodnotu z levé strany a předá ji jako argument tomu, co je napravo – krok za krokem, zleva doprava. Tady je příklad z předchozí kapitoly:

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

V tomto cvičení porovnáš MSE dvou předpovědních funkcí aplikovaných na austa a vykreslíš předpovědi té funkce, která vychází lépe. Datová sada austa je opět načtena ve tvém pracovním prostředí.

Toto cvičení je součástí kurzu

Forecasting v R

Zobrazit kurz

Pokyny k cvičení

  • Doplň funkci farima() tak, aby vracela předpovědi modelu auto.arima(). Řiď se strukturou předpřipravené funkce fets(), která dělá totéž pro ets().
  • Pomocí tsCV() vypočítej křížově validované chyby pro modely ETS na datech austa s jednokrokovými chybami a výsledek ulož do e1.
  • Pomocí tsCV() vypočítej křížově validované chyby pro modely ARIMA na datech austa s jednokrokovými chybami a výsledek ulož do e2.
  • Vypočítej křížově validované MSE pro každou třídu modelů a odstraň chybějící hodnoty. Pokud si nepamatuješ, jak MSE spočítat, nahlédni do předchozí kapitoly.
  • Vytvoř a vykresli 10letou předpověď budoucích hodnot austa pomocí nejlepší třídy modelů.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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 %>% ___ %>% ____
Upravit a spustit kód