Harmonische regressie voor meerdere seizoenspatronen
Harmonische regressies zijn ook handig wanneer tijdreeksen meerdere seizoenspatronen hebben. Zo bevat taylor halfuurlijke elektriciteitsvraag in Engeland en Wales over een paar maanden in het jaar 2000. De seizoensperioden zijn 48 (dagelijkse seizoenscyclus) en 7 x 48 = 336 (wekelijkse seizoenscyclus). Er is niet genoeg data om jaarlijkse seizoensinvloeden te overwegen.
auto.arima() zou lang duren om zo’n lange tijdreeks te fitten, dus ga je in plaats daarvan een standaard regressiemodel met Fourier-termen fitten met de functie tslm(). Dit lijkt sterk op lm(), maar is ontworpen voor tijdreeksen. Bij meerdere seizoenspatronen moet je de orde \(K\) voor elk van de seizoensperioden opgeven.
# Het formula-argument is een symbolische beschrijving
# van het te fitten model
> args(tslm)
function (formula, ...)
tslm() is een nieuw geïntroduceerde functie, dus je kunt de vooraf geschreven code grotendeels volgen. De taylor-data zijn in je workspace geladen.
Deze oefening maakt deel uit van de cursus
Voorspellen in R
Oefeninstructies
- Fit een harmonische regressie genaamd
fitoptaylormet orde 10 voor elk type seizoenspatroon. - Forecast 20 werkdagen vooruit als
fc. Onthoud dat de data halfuurlijk zijn om de juiste waarde voorhin te stellen. - Maak een tijdplot van de forecasts.
- Controleer de residuen van je gefitte model. Zoals je ziet, had
auto.arima()dit beter gedaan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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
___