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
Instructions de l’exercice
- Créez une instance de la classe
ARIMAappeléemodpour un modèle ARMA(1,1) intégré, soit un modèle ARIMA(1,1,1)- Le
ddansorder(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ésultatsres
- Le
- Prévoyez la série à l'aide de la méthode
plot_predict()surres- Choisissez la date de début
1872et la date de fin2046
- Choisissez la date de début
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()