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

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

Co dělat, když chceš vytvořit trénovací a testovací sady pro data s vyšší frekvencí než roční? V takovém případě můžeš jako hodnotu parametrů start a/nebo end ve funkci window() použít vektor ve formátu c(rok, období). Nezapomeň také nastavit správnou hodnotu h v predikčních funkcích. Platí, že h by mělo odpovídat délce dat v testovací sadě.

Například: pokud tvá data pokrývají 15 let, trénovací sada tvoří prvních 10 let a chceš předpovědět posledních 5 let, použiješ h = 12 * 5, nikoli h = 5 – testovací sada totiž obsahuje 60 měsíčních pozorování. Pokud trénovací sada pokrývá prvních 9,5 roku a chceš předpovědět posledních 5,5 roku, použiješ h = 66, abys zohlednil/a těch extra 6 měsíců.

V závěrečném cvičení této kapitoly porovnáš sezónní modely ARIMA a ETS aplikované na čtvrtletní data produkce cementu qcement. Protože je řada velmi dlouhá, můžeš si dovolit použít trénovací a testovací sadu místo křížové validace časových řad – je to výrazně rychlejší.

Data qcement jsou dostupná v tvém pracovním prostředí.

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

Forecasting v R

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř trénovací sadu s názvem train z 20 let dat qcement začínající rokem 1988 a končící posledním čtvrtletím roku 2007; pro end musíš použít vektor. Zbývající data tvoří testovací sadu.
  • Přizpůsob modely ARIMA a ETS trénovacím datům a ulož je jako fit1, respektive fit2.
  • Stejně jako v předchozích cvičeních zkontroluj, zda mají oba modely rezidua odpovídající bílému šumu.
  • Z obou modelů vytvoř predikce pro zbývající data jako fc1, respektive fc2. Nastav h na celkový počet čtvrtletí v testovací sadě. Pozor – poslední pozorování v qcement není poslední čtvrtletí roku!
  • Pomocí funkce accuracy() urči lepší model na základě hodnoty RMSE a ulož ho jako bettermodel.

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

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

# Use 20 years of the qcement data beginning in 1988
train <- window(___, start = ___, end = ___)

# Fit an ARIMA and an ETS model to the training data
fit1 <- ___
fit2 <- ___

# Check that both models have white noise residuals
___
___

# Produce forecasts for each model
fc1 <- forecast(___, h = ___)
fc2 <- forecast(___, h = ___)

# Use accuracy() to find better model based on RMSE
accuracy(___, ___)
accuracy(___, ___)
bettermodel <- ___
Upravit a spustit kód