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
Instrukcje do ćwiczenia
- Utwórz macierz
xrego nazwieharmonics, używając funkcjifourier()na danychgasolinez rzędem \(K=13\), który został wybrany w celu minimalizacji AICc. - Dopasuj model regresji dynamicznej do obiektu
fit. Ustawxregnaharmonics, aseasonalnaFALSE, ponieważ sezonowość jest obsługiwana przez regresory. - Utwórz nową macierz
xrego nazwienewharmonicsw podobny sposób, a następnie oblicz prognozy na kolejne trzy lata i zapisz je jakofc. - 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
___