Prévision de données hebdomadaires
Avec des données hebdomadaires, il est difficile de gérer la saisonnalité avec des modèles ETS ou ARIMA car la longueur saisonnière est trop grande (environ 52). À la place, vous pouvez utiliser une régression harmonique qui s’appuie sur des sinus et des cosinus pour modéliser la saisonnalité.
La fonction fourier() facilite la génération des harmoniques nécessaires. Plus l’ordre (\(K\)) est élevé, plus le motif saisonnier peut être « ondulé ». Avec \(K=1\), c’est une simple courbe sinusoïdale. Vous pouvez choisir la valeur de \(K\) en minimisant la valeur AICc. Comme vous l’avez vu dans la vidéo, fourier() prend en entrée une série temporelle obligatoire, le nombre de termes de Fourier à générer, et éventuellement le nombre de lignes à prévoir :
> # 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)
Les données gasoline préchargées comprennent des observations hebdomadaires sur les produits d’essence finie aux États-Unis. Dans cet exercice, vous allez ajuster une régression harmonique à cet ensemble de données et prévoir les 3 prochaines années.
Cet exercice fait partie du cours
Prévision en R
Instructions
- Créez une matrice
xregappeléeharmonicsen utilisant la fonctionfourier()surgasolineavec un ordre \(K=13\), choisi pour minimiser l’AICc. - Ajustez un modèle de régression dynamique dans
fit. Définissezxregégal àharmonicsetseasonalàFALSEcar la saisonnalité est prise en charge par les régressseurs. - Créez une nouvelle matrice
xregappeléenewharmonicsde manière similaire, puis calculez les prévisions pour les trois prochaines années dansfc. - Enfin, tracez le graphique des prévisions
fc.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
___