CommencezCommencez gratuitement

Ne rangez pas encore ce manteau d'hiver

Pour terminer, vous allez prévoir la température pour les 30 prochaines années à l'aide d'un modèle ARMA(1,1), en incluant des bandes de confiance autour de cette estimation. Gardez en tête que l'estimation de la dérive aura un impact beaucoup plus important sur les prévisions à long terme que les paramètres ARMA.

Plus tôt, vous avez déterminé que les données de température 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 données de température (avant différenciation), ce qui équivaut à utiliser le module ARMA sur les variations de température, puis à effectuer la somme cumulative de ces variations pour obtenir la prévision de température.

Comme les températures ont une tendance à la hausse au fil du temps, vous devrez aussi ajouter une composante de tendance lorsque vous définissez le modèle ARIMA. Dans l'exercice, vous utiliserez une tendance linéaire dans le temps en définissant l'argument trend='t'. Vous pouvez également 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 appelé temp_NY.

Cette activité fait partie du cours

Analyse des séries chronologiques en Python

Voir le cours

Instructions de l’exercice

  • Créez une instance de la classe ARIMA appelée mod pour un modèle ARMA(1,1) intégré, soit un modèle ARIMA(1,1,1)
    • Le d dans order(p,d,q) vaut un, puisque nous avons différencié une fois
    • Ajustez mod à l'aide de la méthode .fit() et appelez les résultats res
  • Prévoyez la série à l'aide de la méthode plot_predict() sur res
    • Choisissez la date de début 1872 et la date de fin 2046

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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