1. Livres & vidéos
  2. Python pour l’analyse de données et les statistiques
  3. Régression statistique
Extrait - Python pour l’analyse de données et les statistiques Fondamentaux, régression linéaire et simulations
Extraits du livre
Python pour l’analyse de données et les statistiques Fondamentaux, régression linéaire et simulations Revenir à la page d'achat du livre

Régression statistique

Régression linéaire simple

La régression statistique modélise la relation entre une variable dépendante et une ou plusieurs variables indépendantes. Cette méthode permet de comprendre comment les variables explicatives influencent la variable à prédire et d’effectuer des prédictions sur de nouvelles observations.

1. Énoncé du modèle

a. Variable dépendante et variable indépendante

images/06RI00.png
À gauche, les variables indépendantes (ou variables explicatives) sont les facteurs qui influencent la variable dépendante. Elles servent à expliquer les variations de images/6eq_314.png. On les note images/6eq_313.png s’il y a images/6eq_312.png variables. Si le modèle ne fait intervenir qu’une seule variable indépendante, elle sera alors notée images/6eq_311.png.
À droite, la variable dépendante (ou variable à expliquer) représente le phénomène que l’on cherche à prédire ou expliquer. Elle dépend des autres variables du modèle. On la note généralement images/6eq_310.png.

Reprenons le cas de nos chiffres d’affaires quotidiens des boutiques. La variable dépendante est le chiffre d’affaires journalier. Les variables indépendantes peuvent être le nombre de visiteurs, si la journée est un week-end, si la journée est en période de promotion, etc.

Dans ce modèle, le chiffre d’affaires dépend de ces facteurs : c’est pourquoi on l’appelle variable dépendante.

b. Équation de la régression linéaire simple

Modèle

La régression linéaire simple établit une relation linéaire entre une variable dépendante Y et une variable indépendante X. L’équation du modèle s’écrit :

images/6eq_309.png

Où :

  • images/6eq_308.png est l’ordonnée à l’origine (intercept).
  • images/6eq_307.png est la pente (coefficient de régression).
  • images/6eq_306.png est le terme d’erreur.
  • images/6eq_305.png est la variable dépendante du modèle.
  • images/6eq_304.png est la variable indépendante du modèle.
  1. Dans ce modèle, images/6eq_303.pngetimages/6eq_302.pngsont connus. Seuls les coefficients images/6eq_301.pngsont à estimer. Les valeurs estimées seront notées avec un chapeau :  images/6eq_300.png (dit alpha chapeau) et images/6eq_299.png pour images/6eq_298.png
images/06RI01.png

Le graphique ci-dessus présente un nuage de points représentant des données réelles...

Régression linéaire multiple

1. Extension du modèle linéaire simple

Équation de la régression linéaire multiple

La régression linéaire multiple étend le modèle de régression simple à plusieurs variables explicatives :

images/6eq_163.png
images/6eq_162.png est l’ordonnée à l’origine (intercept), les images/6eq_161.png sont les coefficients de régression associée à la variable images/6eq_160.png (images/6eq_159.png), images/6eq_158.png est le terme d’erreur, images/6eq_157.png est la variable dépendante du modèle et images/6eq_156.png est la ième-variable indépendante du modèle.

Cette équation peut aussi s’écrire en format matriciel :

images/6eq_155.png
images/6eq_154.png
Dans ce modèle, images/6eq_153.png et images/6eq_152.png sont connus. Seuls les coefficients images/6eq_151.png sont à estimer.
Cette approche permet de modéliser des phénomènes plus complexes en tenant compte de l’effet simultané de plusieurs facteurs. Dans notre exemple du chiffre d’affaires quotidien, on peut expliquer la variable dépendante par le nombre de visiteurs ET le jour de la semaine simultanément. Chaque coefficient images/6eq_150.png représente l’effet d’une variation unitaire de images/6eq_149.png sur images/6eq_148.png, toutes autres variables étant maintenues constantes (concept de « toutes choses égales par ailleurs »).
L’objectif consiste à estimer les coefficients images/6eq_147.png qui minimisent la somme des carrés des erreurs entre les valeurs observées et prédites. En notation matricielle, la solution s’écrit :
images/6eq_146.png
Le terme d’erreur images/6eq_145.png qui capture toute la variance de images/6eq_144.png qui n’est pas expliquée par la relation linéaire avec images/6eq_143.png reste identique à celui vu dans le modèle simple en matière de concept. Mathématiquement, pour chaque observation nous aurons le résidu images/6eq_142.png:
images/6eq_141.png

Hypothèses du modèle de régression linéaire multiple

Les hypothèses sont similaires au cas simple, avec des adaptations pour le contexte multivarié :

  • Linéarité : la relation entre images/6eq_140.png et les variables explicatives X est linéaire.
  • Indépendance : les erreurs images/6eq_139.png sont indépendantes entre elles.
  • Homoscédasticité : la variance des erreurs est constante : images/6eq_138.png pour tout images/6eq_137.png.
  • Normalité : les erreurs suivent une loi normale multivariée :...

Problèmes courants en régression

Dans cette section, nous allons voir les problèmes et les limites que l’on peut rencontrer quand on fait une régression linéaire.

1. Multicolinéarité

a. Définition

La multicolinéarité est un problème fréquent en régression multiple. Elle survient lorsque deux ou plusieurs variables prédictives (colonnes de images/6eq_82.png) sont fortement corrélées entre elles.
Ce n’est pas un problème pour la prédiction (le modèle peut rester performant pour prédire images/6eq_81.png), mais c’est un problème majeur pour l’interprétation et l’inférence. Lorsque deux variables images/6eq_80.png et images/6eq_79.png sont fortement corrélées, le modèle ne peut pas déterminer avec certitude l’effet individuel de images/6eq_78.png sur images/6eq_77.png tout en maintenant images/6eq_76.png constant. L’effet est « partagé » entre les deux.
La conséquence directe est que les erreurs standard des coefficients augmentent. Cela gonfle les valeurs images/6eq_75.png, et le modèle peut conclure à tort qu’une variable n’est pas significative.

b. Détection la multicolinéarité

Une première analyse simple consiste à calculer la matrice de corrélation de vos variables prédictives.

Imaginons que l’on crée un modèle contenant deux variables images/6eq_74.png et images/6eq_73.png où images/6eq_72.png, ce qui nous donne la matrice images/6eq_71.png et on pose images/6eq_70.png.
data = pd.DataFrame({ 
    "x1": [1, 2, 3], 
    "x2": [2, 4, 6],   # x2 = 2 * x1 
    "y": [1, 2, 2.9] 
})  

Si on fait une régression linéaire multiple, nous obtenons les résultats suivants :

X = data[["x1", "x2"]] 
y = data["y"] 
model = sm.OLS(y, X).fit() 
print(model.summary())  
images/06RI07.png
Nous obtenons en bas de résultat le message suivant : « The smallest eigenvalue is 5.36e-31. This might indicate that there are strong multicollinearity problems or that the design matrix is singular. » C’est l’indicateur direct que images/6eq_69.png et images/6eq_68.png sont (quasiment) linéairement dépendantes.
Aussi, le nombre de condition (Cond. No.) mesure à quel point la matrice des variables explicatives images/6eq_67.png est mal conditionnée, c’est-à-dire...