Estimer l'ordre du modèle : critères d'information
Un autre moyen de déterminer l'ordre d'un modèle consiste à examiner l'Akaike Information Criterion (AIC) et le Bayesian Information Criterion (BIC). Ces mesures évaluent la qualité de l'ajustement avec les paramètres estimés, mais appliquent une pénalité selon le nombre de paramètres du modèle. À partir des données simulées AR(2) du dernier exercice, enregistrées sous simulated_data_2, vous allez calculer le BIC en faisant varier l'ordre p dans un AR(p) de 0 à 6.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- 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 pour chaque modèle AR(p). - Parcourez les ordres 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 à l'aide de 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 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(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()