CommencerCommencer gratuitement

Ne rangez pas encore votre manteau d'hiver

Pour finir, vous allez prévoir la température sur les 30 prochaines années avec un modèle ARMA(1,1), en incluant des bandes de confiance autour de cette estimation. Gardez à l’esprit que l’estimation de la dérive aura un impact bien plus important sur les prévisions à long terme que les paramètres ARMA.

Plus tôt, vous avez déterminé que les températures suivent une marche aléatoire et vous avez examiné la première différenciation des données. Dans cet exercice, vous utiliserez le module ARIMA sur les températures (avant différenciation), ce qui revient à utiliser le module ARMA sur les variations de température, puis à sommer cumulativement ces variations pour obtenir la prévision de température.

Comme les températures sont à la hausse au fil du temps, vous devrez également ajouter une composante de tendance lors de la définition du modèle ARIMA. Dans l’exercice, vous utiliserez une tendance linéaire du temps en définissant l’argument trend='t'. Vous pouvez aussi essayer d’autres modèles de tendance pour voir comment les prévisions changent. Par exemple, pour une tendance quadratique \(\small a+ bt + ct^2\), définissez trend=[0,1,1] afin d’inclure à la fois un terme linéaire, \(\small bt\), et un terme quadratique, \(\small ct^2\), dans le modèle.

Les données sont préchargées dans un DataFrame nommé temp_NY.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • Créez une instance de la classe ARIMA appelée mod pour un modèle ARMA intégré (1,1), c’est-à-dire un modèle ARIMA(1,1,1)
    • Le d dans order(p,d,q) vaut un, puisque nous avons effectué une première différenciation
    • Ajustez mod avec la méthode .fit() et appelez les résultats res
  • Prévoyez la série en utilisant la méthode plot_predict() sur res
    • Choisissez 1872 comme date de début et 2046 comme date de fin

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Import the ARIMA module from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast temperatures using an ARIMA(1,1,1) model
mod = ARIMA(temp_NY, trend='t', order=(1,1,1))
___ = ___.fit()

# Plot the original series and the forecasted series
fig, ax = plt.subplots()
temp_NY.plot(ax=ax)
plot_predict(___, start='1872', end='2046', ax=ax)
plt.show()
Modifier et exécuter le code