CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Pour chaque modèle ARMA, créez une instance de la classe ARIMA en passant la série et l'argument order=(p,d,q). p est l'ordre autorégressif ; q est l'ordre de la moyenne mobile ; d est 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 .aic des 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: ", ___)
Modifier et exécuter le code