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
Instructions
- Créez une instance de la classe
ARIMAappeléemodpour un modèle ARMA intégré (1,1), c’est-à-dire un modèle ARIMA(1,1,1)- Le
ddansorder(p,d,q)vaut un, puisque nous avons effectué une première différenciation - Ajustez
modavec la méthode.fit()et appelez les résultatsres
- Le
- Prévoyez la série en utilisant la méthode
plot_predict()surres- Choisissez
1872comme date de début et2046comme date de fin
- Choisissez
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()