Quel modèle ARMA est le meilleur ?
Rappelez-vous du chapitre 3 que le critère d'information d'Akaike (AIC) sert à comparer des modèles ayant des nombres de paramètres différents. Il mesure l'ajustement du modèle, mais pénalise les modèles avec plus de paramètres afin d'é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 voyez lequel s'ajuste le mieux selon l'AIC. Les modèles AR(2) et ARMA(1,1) ont un paramètre de plus que le AR(1).
La variation annuelle de la température se trouve dans un DataFrame chg_temp.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Pour chaque modèle ARMA, créez une instance de la classe
ARIMAen passant la série et l'argumentorder=(p,d,q).pest l'ordre autorégressif ;qest l'ordre de la 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'élément
.aicdes résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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: ", ___)