CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez une matrice xreg nommée harmonics à l'aide de la méthode 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 à harmonics et seasonal à FALSE, puisque la saisonnalité est prise en charge par les régressions.
  • Créez une nouvelle matrice xreg nommée newharmonics de façon similaire, puis calculez les prévisions pour les trois prochaines années dans fc.
  • 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
___
Modifier et exécuter le code