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.

Un guide complet de la régression linéaire en Python



La régression linéaire est une méthode que nous pouvons utiliser pour comprendre la relation entre une ou plusieurs variables prédictives et une variable de réponse.

Ce tutoriel explique comment effectuer une régression linéaire en Python.

Exemple : régression linéaire en Python

Supposons que nous voulions savoir si le nombre d’heures passées à étudier et le nombre d’examens préparatoires passés affectent la note qu’un étudiant obtient à un examen donné.

Pour explorer cette relation, nous pouvons effectuer les étapes suivantes en Python pour effectuer une régression linéaire multiple.

Étape 1 : Saisissez les données.

Tout d’abord, nous allons créer un DataFrame pandas pour contenir notre ensemble de données :

import pandas as pd

#create data
df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5, 3, 4, 6, 2, 1, 2],
                   'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4, 4, 4, 5, 1, 0, 1],
                   'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90, 82, 85, 99, 83, 62, 76]})

#view data 
df

        hours	exams   score
0	1	1	76
1	2	3	78
2	2	3	85
3	4	5	88
4	2	2	72
5	1	2	69
6	5	1	94
7	4	1	94
8	2	0	88
9	4	3	92
10	4	4	90
11	3	3	75
12	6	2	96
13	5	4	90
14	3	4	82
15	4	4	85
16	6	5	99
17	2	1	83
18	1	0	62
19	2	1	76

Étape 2 : Effectuez une régression linéaire.

Ensuite, nous utiliserons la fonction OLS() de la bibliothèque statsmodels pour effectuer une régression des moindres carrés ordinaires, en utilisant « heures » et « examens » comme variables prédictives et « score » comme variable de réponse :

import statsmodels.api as sm

#define response variable
y = df['score']

#define predictor variables
x = df[['hours', 'exams']]

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

#fit linear regression model
model = sm.OLS(y, x).fit()

#view model summary
print(model.summary())

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  score   R-squared:                       0.734
Model:                            OLS   Adj. R-squared:                  0.703
Method:                 Least Squares   F-statistic:                     23.46
Date:                Fri, 24 Jul 2020   Prob (F-statistic):           1.29e-05
Time:                        13:20:31   Log-Likelihood:                -60.354
No. Observations:                  20   AIC:                             126.7
Df Residuals:                      17   BIC:                             129.7
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         67.6735      2.816     24.033      0.000      61.733      73.614
hours          5.5557      0.899      6.179      0.000       3.659       7.453
exams         -0.6017      0.914     -0.658      0.519      -2.531       1.327
==============================================================================
Omnibus:                        0.341   Durbin-Watson:                   1.506
Prob(Omnibus):                  0.843   Jarque-Bera (JB):                0.196
Skew:                          -0.216   Prob(JB):                        0.907
Kurtosis:                       2.782   Cond. No.                         10.8
==============================================================================

Étape 3 : Interprétez les résultats.

Voici comment interpréter les nombres les plus pertinents dans le résultat :

R au carré : 0,734 . C’est ce qu’on appelle le coefficient de détermination. Il s’agit de la proportion de la variance de la variable de réponse qui peut être expliquée par les variables prédictives. Dans cet exemple, 73,4 % de la variation des résultats aux examens s’explique par le nombre d’heures étudiées et le nombre d’examens préparatoires passés.

Statistique F : 23,46 . Il s’agit de la statistique F globale du modèle de régression.

Prob (statistique F) : 1,29e-05. Il s’agit de la valeur p associée à la statistique F globale. Cela nous indique si le modèle de régression dans son ensemble est statistiquement significatif ou non. En d’autres termes, cela nous indique si les deux variables prédictives combinées ont une association statistiquement significative avec la variable de réponse. Dans ce cas, la valeur p est inférieure à 0,05, ce qui indique que les variables prédictives « heures d’études » et « examens préparatoires passés » combinées ont une association statistiquement significative avec le score à l’examen.

coef : les coefficients de chaque variable prédictive nous indiquent le changement moyen attendu de la variable de réponse, en supposant que l’autre variable prédictive reste constante. Par exemple, pour chaque heure supplémentaire consacrée à étudier, la note moyenne à l’examen devrait augmenter de 5,56 , en supposant que les examens préparatoires passés restent constants.

Voici une autre façon de voir les choses : si l’étudiant A et l’étudiant B passent tous deux le même nombre d’examens préparatoires mais que l’étudiant A étudie une heure de plus, alors l’étudiant A devrait obtenir un score supérieur de 5,56 points à celui de l’étudiant B.

Nous interprétons le coefficient de l’interception comme signifiant que la note attendue à l’examen pour un étudiant qui n’étudie aucune heure et ne passe aucun examen préparatoire est de 67,67 .

P>|t|. Les valeurs p individuelles nous indiquent si chaque variable prédictive est statistiquement significative ou non. Nous pouvons voir que les « heures » sont statistiquement significatives (p = 0,00) alors que les « examens »   (p = 0,52) n’est pas statistiquement significatif à α = 0,05. Étant donné que le terme « examens » n’est pas statistiquement significatif, nous pourrions finir par décider de le supprimer du modèle.

Équation de régression estimée : nous pouvons utiliser les coefficients de la sortie du modèle pour créer l’équation de régression estimée suivante :

score à l’examen = 67,67 + 5,56*(heures) – 0,60*(examens préparatoires)

Nous pouvons utiliser cette équation de régression estimée pour calculer la note attendue à l’examen pour un étudiant, en fonction du nombre d’heures d’études et du nombre d’examens préparatoires qu’il passe. Par exemple, un étudiant qui étudie pendant trois heures et passe un examen préparatoire devrait obtenir une note de 83,75 :

Gardez à l’esprit que, comme les examens préparatoires passés n’étaient pas statistiquement significatifs (p = 0,52), nous pouvons décider de les supprimer car ils n’apportent aucune amélioration au modèle global. Dans ce cas, nous pourrions effectuer une régression linéaire simple en utilisant uniquement les heures étudiées comme variable prédictive.

Étape 4 : Vérifiez les hypothèses du modèle.

Une fois que vous avez effectué une régression linéaire, vous souhaiterez peut-être vérifier plusieurs hypothèses pour vous assurer que les résultats du modèle de régression sont fiables. Ces hypothèses comprennent :

Hypothèse n°1 : Il existe une relation linéaire entre les variables prédictives et la variable de réponse.

  • Vérifiez cette hypothèse en générant un tracé résiduel qui affiche les valeurs ajustées par rapport aux valeurs résiduelles pour un modèle de régression.

Hypothèse n°2 : Indépendance des résidus.

Hypothèse n°3 : Homoscédasticité des résidus.

Hypothèse n°4 : Normalité des résidus.

Hypothèse n°5 : Vérifiez qu’il n’existe pas de multicolinéarité parmi les variables prédictives.

  • Vérifiez cette hypothèse en calculant la valeur VIF de chaque variable prédictive.

Si ces hypothèses sont remplies, vous pouvez être sûr que les résultats de votre modèle de régression linéaire multiple sont fiables.

Vous pouvez trouver le code Python complet utilisé dans ce tutoriel ici .

Ajouter un commentaire

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