CommencerCommencer gratuitement

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

Afficher le cours

Instructions

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