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

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

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř matici xreg s názvem harmonics pomocí funkce fourier() aplikované na gasoline s řádem \(K=13\), který byl zvolen tak, aby minimalizoval AICc.
  • Natrénuj model dynamické regrese do proměnné fit. Nastav xreg na harmonics a seasonal na FALSE, protože sezónnost je zachycena regresory.
  • Podobným způsobem vytvoř novou matici xreg s názvem newharmonics a pak na jejím základě vypočítej předpovědi na další tři roky jako fc.
  • 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
___
Upravit a spustit kód