CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Créez une matrice xreg appelée harmonics en utilisant la fonction fourier() sur gasoline avec un ordre \(K=13\), choisi pour minimiser l’AICc.
  • Ajustez un modèle de régression dynamique dans fit. Définissez xreg égal à harmonics et seasonal à FALSE car la saisonnalité est prise en charge par les régressseurs.
  • Créez une nouvelle matrice xreg appelée newharmonics de manière similaire, puis calculez les prévisions pour les trois prochaines années dans fc.
  • 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
___
Modifier et exécuter le code