Zacznij terazZacznij za darmo

Prognozowanie danych tygodniowych

W przypadku danych tygodniowych obsługa sezonowości za pomocą modeli ETS lub ARIMA jest trudna, ponieważ długość okresu sezonowego jest zbyt duża (około 52). Zamiast tego można zastosować regresję harmoniczną, która modeluje sezonowość za pomocą sinusów i cosinusów.

Funkcja fourier() ułatwia generowanie wymaganych harmonicznych. Im wyższy rząd (\(K\)), tym bardziej „pofalowany" może być wzorzec sezonowy. Przy \(K=1\) jest to prosta krzywa sinusoidalna. Wartość \(K\) dobiera się, minimalizując wartość AICc. Jak widziałeś(-aś) w filmie, funkcja fourier() przyjmuje wymagany szereg czasowy, wymaganą liczbę wyrazów Fouriera do wygenerowania oraz opcjonalną liczbę wierszy do prognozowania:

> # 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)

Wstępnie załadowane dane gasoline zawierają tygodniowe dane dotyczące produktów z przetworzonej benzyny silnikowej w USA. W tym ćwiczeniu dopasuj regresję harmoniczną do tego zbioru danych i wyznacz prognozę na kolejne 3 lata.

To ćwiczenie jest częścią kursu

Prognozowanie w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz macierz xreg o nazwie harmonics, używając funkcji fourier() na danych gasoline z rzędem \(K=13\), który został wybrany w celu minimalizacji AICc.
  • Dopasuj model regresji dynamicznej do obiektu fit. Ustaw xreg na harmonics, a seasonal na FALSE, ponieważ sezonowość jest obsługiwana przez regresory.
  • Utwórz nową macierz xreg o nazwie newharmonics w podobny sposób, a następnie oblicz prognozy na kolejne trzy lata i zapisz je jako fc.
  • Na koniec zwizualizuj prognozy fc.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
___
Edytuj i uruchom kod