Quel modèle ARMA est le meilleur ?
Rappelez-vous, au chapitre 3, que le critère d’information d’Akaike (AIC) permet de comparer des modèles ayant des nombres de paramètres différents. Il mesure l’adéquation aux données tout en pénalisant les modèles trop complexes pour éviter le surapprentissage. Un AIC plus faible est préférable.
Ajustez les données de température avec un AR(1), un AR(2) et un ARMA(1,1), puis déterminez lequel s’ajuste le mieux selon l’AIC. Les modèles AR(2) et ARMA(1,1) ont un paramètre de plus que l’AR(1).
La variation annuelle de température se trouve dans un DataFrame chg_temp.
Cet exercice fait partie du cours
Analyse des séries temporelles en Python
Instructions
- Pour chaque modèle ARMA, créez une instance de la classe
ARIMAen passant les données etorder=(p,d,q).pest l’ordre autorégressif ;qest l’ordre de moyenne mobile ;dest le nombre de différenciations appliquées à la série. - Ajustez le modèle avec la méthode
.fit(). - Affichez la valeur de l’AIC, disponible dans l’attribut
.aicdes résultats.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA
# Fit the data to an AR(1) model and print AIC:
mod_ar1 = ARIMA(chg_temp, order=(___, 0, 0))
res_ar1 = mod_ar1.fit()
print("The AIC for an AR(1) is: ", res_ar1.aic)
# Fit the data to an AR(2) model and print AIC:
mod_ar2 = ARIMA(chg_temp, order=(___, ___, ___))
res_ar2 = mod_ar2.___
print("The AIC for an AR(2) is: ", res_ar2.aic)
# Fit the data to an ARMA(1,1) model and print AIC:
mod_arma11 = ___
res_arma11 = ___
print("The AIC for an ARMA(1,1) is: ", ___)