Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer un test de rapport de vraisemblance en Python



Un test du rapport de vraisemblance compare la qualité de l’ajustement de deux modèles de régression emboîtés.

Un modèle imbriqué est simplement un modèle qui contient un sous-ensemble de variables prédictives dans le modèle de régression global.

Par exemple, supposons que nous ayons le modèle de régression suivant avec quatre variables prédictives :

Y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + β 4 x 4 + ε

Un exemple de modèle imbriqué serait le modèle suivant avec seulement deux des variables prédictives d’origine :

Y = β 0 + β 1 x 1 + β 2 x 2 + ε

Pour déterminer si ces deux modèles sont significativement différents, nous pouvons effectuer un test du rapport de vraisemblance qui utilise les hypothèses nulles et alternatives suivantes :

H 0 : Le modèle complet et le modèle imbriqué s’ajustent aussi bien aux données. Ainsi, vous devez utiliser le modèle imbriqué .

H A : Le modèle complet s’adapte nettement mieux aux données que le modèle imbriqué. Vous devez donc utiliser le modèle complet .

Si la valeur p du test est inférieure à un certain niveau de signification (par exemple 0,05), nous pouvons alors rejeter l’hypothèse nulle et conclure que le modèle complet offre un ajustement nettement meilleur.

L’exemple étape par étape suivant montre comment effectuer un test de rapport de vraisemblance en Python.

Étape 1 : Charger les données

Dans cet exemple, nous allons montrer comment ajuster les deux modèles de régression suivants en Python à l’aide des données de l’ensemble de données mtcars :

Modèle complet : mpg = β 0 + β 1 disp + β 2 carb + β 3 ch + β 4 cyl

Modèle réduit : mpg = β 0 + β 1 disp + β 2 carb

Tout d’abord, nous allons charger l’ensemble de données :

from sklearn.linear_model import LinearRegression
import statsmodels.api as sm
import pandas as pd
import scipy

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/mtcars.csv"

#read in data
data = pd.read_csv(url)

Connexe : Comment lire des fichiers CSV avec Pandas

Étape 2 : Ajuster les modèles de régression

Tout d’abord, nous allons ajuster le modèle complet et calculer la log-vraisemblance du modèle :

#define response variable
y1 = data['mpg']

#define predictor variables
x1 = data[['disp', 'carb', 'hp', 'cyl']]

#add constant to predictor variables
x1 = sm.add_constant(x1)

#fit regression model
full_model = sm.OLS(y1, x1).fit()

#calculate log-likelihood of model
full_ll = full_model.llf

print(full_ll)

-77.55789711787898

Ensuite, nous ajusterons le modèle réduit et calculerons la log-vraisemblance du modèle :

#define response variable
y2 = data['mpg']

#define predictor variables
x2 = data[['disp', 'carb']]

#add constant to predictor variables
x2 = sm.add_constant(x2)

#fit regression model
reduced_model = sm.OLS(y2, x2).fit()

#calculate log-likelihood of model
reduced_ll = reduced_model.llf

print(reduced_ll)

-78.60301334355185

Étape 3 : Effectuer le test de log-vraisemblance

Ensuite, nous utiliserons le code suivant pour effectuer le test de vraisemblance :

#calculate likelihood ratio Chi-Squared test statistic
LR_statistic = -2*(reduced_ll-full_ll)

print(LR_statistic)

2.0902324513457415

#calculate p-value of test statistic using 2 degrees of freedom
p_val = scipy.stats.chi2.sf(LR_statistic, 2)

print(p_val)

0.35165094613502257

À partir du résultat, nous pouvons voir que la statistique du test du chi carré est de 2,0902 et la valeur p correspondante est de 0,3517 .

Puisque cette valeur p n’est pas inférieure à 0,05, nous ne parviendrons pas à rejeter l’hypothèse nulle.

Cela signifie que le modèle complet et le modèle imbriqué s’adaptent aussi bien aux données. Nous devons donc utiliser le modèle imbriqué, car les variables prédictives supplémentaires du modèle complet n’offrent pas d’amélioration significative de l’ajustement.

Ainsi, notre modèle final serait :

mpg = β 0 + β 1 disp + β 2 glucides

Remarque : Nous avons utilisé 2 degrés de liberté lors du calcul de la valeur p car cela représentait la différence entre le total des variables prédictives utilisées entre les deux modèles.

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur l’utilisation des modèles de régression en Python :

Un guide complet de la régression linéaire en Python
Comment effectuer une régression polynomiale en Python
Comment effectuer une régression logistique en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *