Critères d'information AIC et BIC

Les critères d’information AIC (Akaike Information Criterion) et BIC (Bayesian Information Criterion) sont des mesures statistiques utilisées pour comparer la qualité de différents modèles statistiques tout en pénalisant la complexité du modèle. Ces critères aident à éviter le surapprentissage (overfitting) tout en cherchant à obtenir une bonne précision de prédiction.

1. Akaike Information Criterion (AIC)

L’AIC est un critère basé sur l’entropie qui évalue la qualité d’un modèle statistique. Plus l’AIC est faible, meilleur est le modèle en termes de compromis entre la qualité de l’ajustement et la complexité du modèle.

Formule de l’AIC :

 

AIC=2k2ln(L)AIC = 2k – 2\ln(L)

Où :

Interprétation de l’AIC :

2. Bayesian Information Criterion (BIC)

Le BIC, également appelé Schwarz Criterion, est similaire à l’AIC, mais il inclut une pénalisation plus forte de la complexité du modèle (le nombre de paramètres). Cela fait du BIC une option préférée lorsque l’on souhaite privilégier des modèles plus simples.

Formule du BIC :

 

BIC=ln(n)k2ln(L)BIC = \ln(n)k – 2\ln(L)

Où :

Interprétation du BIC :

3. Comparaison entre AIC et BIC

Fonctions :

  • Utilisation de l'AIC et du BIC en Python

    Les deux critères sont facilement calculables à l'aide de bibliothèques comme statsmodels en Python, en particulier pour les modèles de régression.

    Importation :

    import statsmodels.api as sm
    import numpy as np

    Attributs :

    Nom Type Description
    aic float Critère d'information d'Akaike (AIC) du modèle ajusté. Un AIC plus bas est préférable.
    bic float Critère d'information bayésien (BIC) du modèle ajusté. Un BIC plus bas est préférable.

    Exemple de code :

    import statsmodels.api as sm
    import numpy as np
    
    # Exemple de données
    X = np.array([1, 2, 3, 4, 5])  # Variable indépendante
    y = np.array([1, 2, 3, 4, 5])  # Variable dépendante
    
    # Ajouter une constante à X pour l'ordonnée à l'origine (intercept)
    X = sm.add_constant(X)
    
    # Créer et ajuster le modèle de régression
    model = sm.OLS(y, X)
    results = model.fit()
    
    # Obtenir l'AIC et le BIC
    print(f"AIC: {results.aic}")
    print(f"BIC: {results.bic}")
    Résultat du code

    Explication du code :

    Le code ci-dessus utilise la bibliothèque statsmodels pour ajuster un modèle de régression linéaire et calculer les critères d'information AIC (Akaike Information Criterion) et BIC (Bayesian Information Criterion).

    1. Création des données :

    Les variables X et y sont créées comme des tableaux numpy représentant respectivement la variable indépendante et la variable dépendante. Dans cet exemple, les deux sont simplement des séquences de nombres allant de 1 à 5.

    2. Ajout de l'ordonnée à l'origine (intercept) :

    La fonction sm.add_constant(X) ajoute une constante (intercept) à la variable X pour permettre à la régression d'inclure l'ordonnée à l'origine. Cela permet de modéliser une relation linéaire de la forme y = b0 + b1 * X, où b0 est l'ordonnée à l'origine.

    3. Ajustement du modèle de régression :

    Le modèle de régression linéaire est créé avec la fonction sm.OLS(y, X), où y est la variable dépendante et X est la variable indépendante avec l'ordonnée à l'origine ajoutée. Le modèle est ensuite ajusté à l'aide de la méthode fit().

    4. Calcul des critères AIC et BIC :

    Une fois le modèle ajusté, les critères d'information AIC (Akaike Information Criterion) et BIC (Bayesian Information Criterion) sont obtenus à partir des résultats du modèle. Ces critères servent à évaluer la qualité du modèle en tenant compte du nombre de paramètres ajustés. Un modèle avec un AIC et un BIC plus faibles est préféré.

    Les valeurs de l'AIC et du BIC sont ensuite affichées.