Harmonická regrese pro vícenásobnou sezónnost
Harmonické regrese jsou užitečné i v případech, kdy časová řada vykazuje více sezónních vzorů. Například taylor obsahuje půlhodinové hodnoty spotřeby elektřiny v Anglii a Walesu za několik měsíců roku 2000. Sezónní periody jsou 48 (denní sezónnost) a 7 × 48 = 336 (týdenní sezónnost). Data nejsou dostatečně dlouhá, aby bylo možné uvažovat o roční sezónnosti.
auto.arima() by na tak dlouhé časové řadě trvalo velmi dlouho, proto místo toho natrénuješ standardní regresní model s Fourierovými členy pomocí funkce tslm(). Ta funguje podobně jako lm(), ale je navržena speciálně pro práci s časovými řadami. Při vícenásobné sezónnosti je třeba zadat řád \(K\) pro každou ze sezónních period.
# Argument formula je symbolický popis
# modelu, který má být natrénován
> args(tslm)
function (formula, ...)
tslm() je nově zavedená funkce, takže předpřipravený kód bys měl/a být schopen/schopna z velké části sledovat bez potíží. Data taylor jsou načtena do tvého pracovního prostředí.
Toto cvičení je součástí kurzu
Forecasting v R
Pokyny k cvičení
- Natrénuj harmonickou regresi s názvem
fitna datechtaylors řádem 10 pro každý typ sezónnosti. - Vytvoř předpověď na 20 pracovních dní dopředu jako
fc. Nezapomeň, že data jsou půlhodinová – správně nastav hodnotuh. - Vytvoř časový graf předpovědí.
- Zkontroluj rezidua natrénovaného modelu. Jak uvidíš,
auto.arima()by si poradilo lépe.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Fit a harmonic regression using order 10 for each type of seasonality
fit <- tslm(taylor ~ fourier(___, K = c(10, 10)))
# Forecast 20 working days ahead
fc <- forecast(___, newdata = data.frame(fourier(___, K = ___, h = ___)))
# Plot the forecasts
___
# Check the residuals of fit
___