Předpovídání týdenních dat
U týdenních dat je obtížné modelovat sezónnost pomocí ETS nebo ARIMA, protože délka sezóny je příliš velká (přibližně 52). Místo toho můžeš použít harmonickou regresi, která sezónnost modeluje pomocí sinů a kosinů.
Funkce fourier() usnadňuje generování potřebných harmonických členů. Čím vyšší je řád (\(K\)), tím více může být sezónní vzor „klikatý". Pro \(K=1\) jde o jednoduchou sinusovou křivku. Hodnotu \(K\) vybereš minimalizací kritéria AICc. Jak jsi viděl/a ve videu, funkce fourier() přijímá povinný časový řad, povinný počet Fourierových členů a volitelný počet řádků pro předpověď:
> # fourier(x, K, h = NULL)
> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
seasonal = FALSE, lambda = 0)
> fit %>%
forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
autoplot() + ylim(1.6, 5.1)
Předpřipravená data gasoline obsahují týdenní údaje o spotřebě motorových benzínů v USA. V tomto cvičení na tato data natrénuješ harmonickou regresi a sestavíš předpověď na následující 3 roky.
Toto cvičení je součástí kurzu
Forecasting v R
Pokyny k cvičení
- Vytvoř matici
xregs názvemharmonicspomocí funkcefourier()aplikované nagasolines řádem \(K=13\), který byl zvolen tak, aby minimalizoval AICc. - Natrénuj model dynamické regrese do proměnné
fit. NastavxregnaharmonicsaseasonalnaFALSE, protože sezónnost je zachycena regresory. - Podobným způsobem vytvoř novou matici
xregs názvemnewharmonicsa pak na jejím základě vypočítej předpovědi na další tři roky jakofc. - Nakonec vykresli předpovědi
fc.
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 harmonic regressors of order 13
harmonics <- fourier(___, K = ___)
# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)
# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)
# Plot forecasts fc
___