Regresja harmoniczna dla wielokrotnej sezonowości
Regresje harmoniczne sprawdzają się również wtedy, gdy szereg czasowy wykazuje wiele wzorców sezonowych. Na przykład zbiór taylor zawiera półgodzinne dane dotyczące zapotrzebowania na energię elektryczną w Anglii i Walii na przestrzeni kilku miesięcy roku 2000. Okresy sezonowe wynoszą 48 (sezonowość dobowa) oraz 7 x 48 = 336 (sezonowość tygodniowa). Danych jest zbyt mało, aby uwzględnić sezonowość roczną.
Dopasowanie auto.arima() do tak długiego szeregu czasowego zajęłoby dużo czasu. Zamiast tego dopasujesz standardowy model regresji z członami Fouriera, korzystając z funkcji tslm(). Działa ona podobnie do lm(), ale jest zaprojektowana z myślą o szeregach czasowych. W przypadku wielokrotnej sezonowości należy podać rząd \(K\) dla każdego z okresów sezonowych.
# Argument formula to symboliczny opis
# modelu, który ma zostać dopasowany
> args(tslm)
function (formula, ...)
tslm() to nowo wprowadzona funkcja – w dużej mierze będziesz mógł śledzić gotowy kod. Zbiór danych taylor jest już wczytany do twojego środowiska pracy.
To ćwiczenie jest częścią kursu
Prognozowanie w R
Instrukcje do ćwiczenia
- Dopasuj regresję harmoniczną o nazwie
fitdo danychtaylor, używając rzędu 10 dla każdego typu sezonowości. - Wygeneruj prognozę
fcna 20 dni roboczych naprzód. Pamiętaj, że dane są półgodzinne – uwzględnij to przy ustawianiu wartościh. - Stwórz wykres czasowy prognoz.
- Sprawdź reszty dopasowanego modelu. Jak widać,
auto.arima()poradziłoby sobie z tym lepiej.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
___