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
Pokyny k cvičení
- Vytvoř trénovací sadu s názvem
trainz 20 let datqcementzačínající rokem 1988 a končící posledním čtvrtletím roku 2007; proendmusíš 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, respektivefit2. - 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, respektivefc2. Nastavhna celkový počet čtvrtletí v testovací sadě. Pozor – poslední pozorování vqcementnení poslední čtvrtletí roku! - Pomocí funkce
accuracy()urči lepší model na základě hodnoty RMSE a ulož ho jakobettermodel.
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 <- ___