Prévoir des 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 sinusoïdes (sinus et 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 profil saisonnier peut être « ondulé ». Avec \(K=1\), c'est une simple courbe sinusoïdale. Vous pouvez choisir la valeur de \(K\) en minimisant l'AICc. Comme vous l'avez vu dans la vidéo, fourier() prend en entrée une série temporelle obligatoire, le nombre exigé de termes de Fourier à générer, et un nombre optionnel 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 automobile finis 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.
Cette activité fait partie du cours
Prévision en R
Instructions de l’exercice
- Créez une matrice
xregnomméeharmonicsà l'aide de la méthodefourier()surgasolineavec un ordre \(K=13\), choisi pour minimiser l'AICc. - Ajustez un modèle de régression dynamique dans
fit. DéfinissezxregàharmonicsetseasonalàFALSE, puisque la saisonnalité est prise en charge par les régressions. - Créez une nouvelle matrice
xregnomméenewharmonicsde façon similaire, puis calculez les prévisions pour les trois prochaines années dansfc. - Enfin, tracez les prévisions
fc.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
___