Estimer l’ordre du modèle : critères d’information
Un autre moyen d’identifier l’ordre d’un modèle consiste à examiner l’Akaike Information Criterion (AIC) et le Bayesian Information Criterion (BIC). Ces critères évaluent la qualité d’ajustement avec les paramètres estimés, tout en appliquant une pénalité liée au nombre de paramètres du modèle. Vous allez reprendre les données simulées d’un AR(2) de l’exercice précédent, enregistrées sous simulated_data_2, et calculer le BIC en faisant varier l’ordre p d’un AR(p) de 0 à 6.
Cet exercice fait partie du cours
Analyse des séries temporelles en Python
Instructions
- Importez le module ARIMA pour estimer les paramètres et calculer le BIC.
- Initialisez un tableau numpy
BIC, que nous utiliserons pour stocker le BIC de chaque modèle AR(p). - Bouclez sur l’ordre p pour p = 0,…,6.
- Pour chaque p, ajustez les données à un modèle AR d’ordre p.
- Pour chaque p, enregistrez la valeur du BIC en utilisant l’attribut
.bic(sans parenthèses) deres.
- Tracez le BIC en fonction de p (pour le graphique, ignorez p=0 et tracez pour p=1,…,6).
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(p) for p = 0,...,6 , and save the BIC
BIC = np.zeros(7)
for p in range(7):
mod = ARIMA(simulated_data_2, order=(___,___,___))
res = mod.fit()
# Save BIC for AR(p)
BIC[p] = res.___
# Plot the BIC as a function of p
plt.plot(range(1,7), BIC[1:7], marker='o')
plt.xlabel('Order of AR Model')
plt.ylabel('Bayesian Information Criterion')
plt.show()