Graphique illustrant une régression linéaire avec un ensemble de points de données et une ligne de tendance rouge sur fond sombre.

La régression linéaire avec Python : Comment ça fonctionne ?

Algorithme incontournable en Machine Learning, la régression linéaire permet d’établir des relations entre une ou plusieurs variables. Pour mettre en pratique cet algorithme en toute simplicité, les data scientists peuvent se tourner vers les langages de programmation, et notamment Python. Alors comment utiliser la régression linéaire avec Python ? DataScientest répond à la question.

Qu’est-ce que la régression linéaire ?

Avant de voir l’utilisation pratique de la régression linéaire avec Python, il convient de revenir aux bases. L’idée générale est de modéliser, puis de prédire, une quantité numérique à partir d’informations explicatives, tout en gardant un modèle lisible qui relie clairement variables d’entrée et sortie. Cette approche constitue une compétence clé pour tout Data Analyst.

Régression linéaire : Définition

Le modèle de régression linéaire est un algorithme d’apprentissage supervisé qui permet de prédire une variable cible continue (variable dépendante) à partir d’une ou plusieurs variables explicatives (variables indépendantes, ou prédicteurs). En d’autres termes, il s’agit d’estimer la relation entre des variables d’entrée et une sortie numérique, de façon linéaire.

Lorsqu’il n’y a qu’une variable explicative, on parle de régression linéaire simple. S’il y en a plusieurs, on parle de régression linéaire multiple. Qu’elle soit simple ou multiple, la régression linéaire peut être utilisée avec Python.

Exemple rapide : prédire le prix d’une maison en fonction de sa surface (simple), puis affiner en ajoutant le nombre de pièces, la localisation et l’année de construction (multiple).

Régression linéaire : traductions mathématiques

L’équation mathématique d’un modèle de régression linéaire multiple s’écrit classiquement avec un terme d’erreur pour représenter le bruit non expliqué :

La valeur prédite par le modèle, notée Ŷ, s’écrit sans le terme d’erreur :

SymboleSignification
YVariable cible observée (variable dépendante)
ŶValeur prédite par le modèle
xjje variable explicative (caractéristique, prédicteur)
θ0Ordonnée à l’origine (terme de biais, intercept)
θjPoids ou coefficient associé à xj
εTerme d’erreur aléatoire (bruit, résidu théorique)
eiRésidu empirique pour l’observation i, ei = yi − Ŷi

Estimation par MCO/OLS. Les paramètres θ sont généralement estimés par la méthode des moindres carrés ordinaires, qui consiste à minimiser la somme des carrés des résidus, équivalente à la minimisation de l’erreur quadratique moyenne :

D’un point de vue visuel, la régression linéaire s’applique lorsque les données d’entraînement forment un nuage de points. L’objectif est d’identifier la droite ou l’hyperplan qui se rapproche le plus possible de l’ensemble des points, en mesurant l’ajustement via l’erreur quadratique moyenne.

Régression simple vs multiple : quelle différence ?

La régression simple modélise l’effet d’un seul prédicteur sur Y, ce qui facilite la visualisation et l’interprétation. La régression multiple considère plusieurs prédicteurs à la fois et estime l’effet de chaque variable toutes choses égales par ailleurs, ce qui améliore souvent la précision mais complexifie l’interprétation et requiert de surveiller la multicolinéarité entre variables explicatives.

  • Régression simple : prix d’un logement en fonction de la surface uniquement.
  • Régression multiple : prix d’un logement en fonction de la surface, du nombre de pièces, du quartier et de l’ancienneté.
  • Impact sur l’interprétation : en multiple, un coefficient se lit comme la variation moyenne attendue de Y pour une unité de xj, en maintenant les autres x constants.

Régression multiple vs multivariée : quelle nuance ?

La régression multiple traite plusieurs X pour une seule Y. La régression multivariée traite plusieurs X pour plusieurs Y simultanément, c’est-à-dire plusieurs variables dépendantes modélisées en même temps.

  • Multiple : prédire le chiffre d’affaires mensuel d’un magasin à partir du trafic, des promotions et de la météo.
  • Multivariée : prédire conjointement le chiffre d’affaires et la marge d’un magasin à partir des mêmes prédicteurs.

Quelles sont les hypothèses de la régression linéaire ?

Écran d'ordinateur affichant un code Python pour la régression linéaire.

Pour que la régression linéaire fournisse des estimations fiables et des inférences valides, certaines hypothèses doivent être raisonnablement satisfaites. Elles concernent la forme du modèle, la structure des erreurs et les relations entre variables explicatives. Voici les principales hypothèses à vérifier avant d’interpréter les résultats.

  • Linéarité de la relation entre les prédicteurs et la cible (bonne spécification du modèle)
  • Indépendance des erreurs
  • Normalité des résidus (utile surtout pour l’inférence)
  • Homoscédasticité, c’est‑à‑dire variance constante des erreurs
  • Absence de multicolinéarité sévère entre variables explicatives

Linéarité : la relation est‑elle bien spécifiée ?

L’hypothèse de linéarité signifie que l’espérance de la variable cible s’exprime comme une combinaison linéaire des variables explicatives. Si la relation réelle est non linéaire ou si des interactions manquent, le modèle sera mal spécifié et les erreurs présenteront des motifs systématiques.

Comment la détecter et y remédier :

  • Détection : nuages de points de Y selon chaque X, graphiques des résidus versus valeurs ajustées, graphiques de résidus partiels; recherche de motifs en U, en S, ou de bandes non horizontales.
  • Remèdes : ajout de features polynomiales (X², X³), de termes d’interaction, transformations adaptées (log, racine carrée, Box‑Cox), ou recours à un modèle explicitement non linéaire si nécessaire.

Indépendance des erreurs : comment la vérifier ?

Les erreurs doivent être non corrélées entre elles. Une autocorrélation positive ou négative biaise les erreurs standards et peut conduire à des tests trompeurs.

Diagnostic : le test de Durbin, Watson évalue l’autocorrélation d’ordre 1 des résidus, avec une valeur proche de 2 indiquant généralement l’absence d’autocorrélation. L’inspection de l’ACF/PACF des résidus complète le diagnostic.

Cas des séries temporelles : l’indépendance est souvent violée. On traite alors la dépendance en ajoutant des termes autorégressifs, en utilisant des erreurs standards robustes de type Newey‑West, en différenciant la série, ou en adoptant un modèle dédié aux séries temporelles.

Normalité des résidus : est‑elle nécessaire ?

La normalité des résidus n’est pas requise pour obtenir des estimateurs des coefficients sans biais en moindres carrés. Elle devient importante pour la validité des intervalles de confiance et des tests de significativité en petits échantillons. Avec des échantillons suffisants, l’approximation asymptotique rend souvent les tests fiables même sans normalité parfaite.

  • Diagnostics : QQ‑plot des résidus, histogramme; au besoin, tests comme Shapiro, Wilk.
  • Usages : vérifier la normalité surtout lorsque l’on s’appuie sur des p‑valeurs et des intervalles de confiance en petit effectif; sinon préférer des standard errors robustes ou le bootstrap.

Homoscédasticité : variance constante ?

On parle d’homoscédasticité quand la variance des erreurs est constante pour toutes les valeurs prédites. En présence d’hétéroscédasticité, les coefficients restent souvent peu biaisés, mais les erreurs standards et les tests classiques deviennent peu fiables.

  • Tests : inspection du graphique résidus versus valeurs ajustées; test de Breusch, Pagan (ou test de White) pour objectiver l’hétéroscédasticité.
  • Remèdes : transformation de la cible (log, Box‑Cox), moindres carrés pondérés (WLS) si l’on connaît la structure de variance, erreurs standards robustes à l’hétéroscédasticité, re‑spécification du modèle.

Multicolinéarité : comment la détecter ?

La multicolinéarité survient quand des variables explicatives sont fortement corrélées entre elles. Elle n’affecte pas nécessairement la capacité prédictive, mais gonfle les erreurs standards des coefficients, rendant leur interprétation instable.

  • Indicateurs : matrice de corrélation, facteurs d’inflation de variance (VIF) élevés, valeurs propres et indices de condition.
  • Solutions : supprimer ou regrouper les variables redondantes, centrer les variables avec interactions, utiliser la régularisation (ridge, lasso, elastic net), réduire la dimension (PCA), collecter plus d’observations.

Les cas d’utilisation de la régression linéaire

Écran d'ordinateur affichant un code et un graphique d'analyse de données.

Si la régression linéaire est le premier algorithme utilisé en machine learning, c’est parce que ses cas d’application sont multiples. Elle sert à relier une cible continue à des facteurs explicatifs et à interpréter l’effet moyen d’une unité de variation.

  • Prévoir les ventes à partir de l’historique et des leviers marketing (interprétation : la pente associée au budget indique de combien varient les ventes quand le budget augmente d’une unité).
  • Prédire le prix d’un bien immobilier selon ses caractéristiques (surface, quartier, présence d’un garage).
  • Identifier les facteurs qui font varier la rentabilité d’un investissement ou un indicateur de santé d’un patient.

Dans quels domaines l’utiliser ?

  • Marketing : dépenses publicitaires, prix, trafic web, saisonnalité, taux de remise → ventes, taux de conversion, panier moyen.
  • Médecine : âge, IMC, heures d’activité, tabagisme, dosage d’un traitement → pression artérielle, taux de cholestérol, score de risque.
  • Finance : taux d’intérêt, inflation, volatilité, bêta d’un titre, frais → rendement, coût du risque, valeur liquidative.
  • Opérations : distance, nombre d’arrêts, volume préparé, effectifs, charge machine → temps de cycle, délai de livraison, coût opérationnel.

Exemple d’usage typique : une équipe e‑commerce relie budget pub et prix aux ventes hebdomadaires, puis lit les coefficients pour savoir quelle variable fait le plus varier les ventes à effort égal.

Des exemples rapides et interprétations ?

Mini‑cas chiffrés purement illustratifs, sans code, pour lire correctement une pente linéaire :

  1. Immobilier : Prix (en €) = 45 000 + 2 800 × Surface (m²) + 12 000 × Garage (0/1). Interprétation : à surface et quartier constants, 1 m² supplémentaire ajoute en moyenne 2 800 €, la présence d’un garage ajoute 12 000 €. Une maison de 70 m² avec garage est estimée à 253 000 €.
  2. Marketing : Ventes hebdo (unités) = 100 + 12 × Trafic (par tranches de 1 000 visites) − 30 × Prix (en €). Interprétation : +1 000 visites apportent 12 unités en moyenne, +1 € sur le prix retire 30 unités, toutes choses égales par ailleurs. Baisser le prix de 2 € et gagner 3 000 visites ≈ +96 unités.
  3. Santé : Cholestérol (mg/dL) = 210 − 3,2 × Heures de sport/sem. + 0,5 × Âge (ans). Interprétation : 1 heure de sport de plus est associée à −3,2 mg/dL, chaque année d’âge à +0,5 mg/dL, pour des patients comparables.

Comment utiliser la régression linéaire avec Python ?

Ordinateur portable affichant du code Python pour la régression linéaire.

Pour vous expliquer la régression linéaire avec Python, prenons un exemple concret déjà introduit plus haut. Un restaurateur souhaite prédire le gain dans une nouvelle ville (Y) en fonction de sa population (X). Voici les démarches à suivre, de A à Z, pour construire un modèle fiable.

  1. Charger vos données dans un DataFrame et vérifier un premier aperçu.
  2. Nettoyer et préparer : valeurs manquantes, outliers, types, filtres.
  3. Encoder les variables catégorielles et standardiser si nécessaire.
  4. Créer des features utiles, éventuellement polynomiales ou d’interaction.
  5. Visualiser pour confirmer la linéarité et repérer des signaux anormaux.
  6. Séparer train/test et définir une stratégie de validation croisée.
  7. Choisir l’outil : scikit-learn pour la prédiction, statsmodels pour l’inférence.
  8. Ajuster le modèle : OLS analytique ou descente de gradient selon le contexte.
  9. Ajouter une régularisation si besoin et régler les hyperparamètres.
  10. Prédire et, si nécessaire, calculer des intervalles de confiance ou de prédiction.

Comment charger les données ?

Placez vos observations dans un fichier CSV proprement nommé. Dans notre exemple, deux colonnes suffisent au départ : population et benefice. Utilisez pandas pour charger et inspecter rapidement.

  • read_csv : lit le fichier et crée un DataFrame.
  • head : contrôle visuel rapide des lignes et colonnes.
  • dtypes : vérifie les types (float, int, object) pour anticiper l’encodage et le scaling.

Préparer les données, que faut-il nettoyer ?

  • Valeurs manquantes : suppression ou imputation (médiane, moyenne).
  • Outliers : détection via IQR ou z-score, puis caping ou retrait si justifié.
  • Filtres métiers : bornes réalistes sur population et bénéfice.
  • Types et formats : conversion en numériques, renommage clair des colonnes, suppression des doublons.

Documentez vos choix de nettoyage et gardez une version des données brutes pour la traçabilité.

Encoder et standardiser, quand et comment ?

Si des variables catégorielles existent (ex. quartier, type d’implantation), encodez-les. Standardisez les variables numériques lorsque vous utilisez une descente de gradient, une régularisation ou que les échelles sont très différentes. Intégrez ces étapes dans un Pipeline pour éviter la fuite de données.

  • Encodage : OneHotEncoder (scikit-learn) ou pd.get_dummies.
  • Standardisation : StandardScaler pour centrer-réduire, MinMaxScaler si vous souhaitez des bornes [0, 1].
  • Quand scaler : obligatoire avec SGDRegressor, Ridge/Lasso/ElasticNet, ou si les unités diffèrent fortement.

Créer des features, polynomiales et interactions ?

Si la relation n’est pas strictement linéaire, ajoutez des termes polynomiaux ou des interactions. Par exemple, PolynomialFeatures peut générer population^2 et des produits croisés avec des variables catégorielles encodées. Les transformations log ou racine carrée aident parfois à stabiliser la variance.

Attention au surapprentissage : les polynômes élevés et les interactions nombreuses gonflent la dimension, ce qui complique l’interprétation et peut dégrader la généralisation. Contrôlez cela via la régularisation et la validation croisée.

Visualiser les relations, que regarder ?

  • Scatterplots : benefice en fonction de population, recherche de tendance linéaire, de points influents.
  • Carte de corrélations : repérer la force des associations, détecter des redondances.
  • Pairplots : vue d’ensemble multi-features pour confirmer la forme de la relation.

Une relation approximativement linéaire et une variance relativement constante des résidus sont des signaux favorables pour une régression linéaire classique.

Séparer train/test et cross-validation, pourquoi ?

La séparation empêche la fuite de données : toute étape d’apprentissage (imputation, encodage, scaling, sélection de features) doit être apprise sur l’entraînement uniquement, puis appliquée au test. La validation croisée fournit une estimation plus robuste de la performance hors échantillon.

  • Split simple : train_test_split avec random_state pour la reproductibilité.
  • Validation croisée : KFold pour la régression. Stratification rarement pertinente, sauf si vous binez la cible.
  • Cas spécifiques : séries temporelles, utiliser des splits chronologiques.

Choisir scikit-learn ou statsmodels ?

Scikit-learn privilégie la prédiction et l’industrialisation (pipelines, validation croisée, régularisation). Statsmodels vise l’inférence statistique détaillée (p-valeurs, intervalles de confiance, diagnostics).

Critèrescikit-learnstatsmodels
Objectif principalPrédiction, productionInférence, interprétation
Pipeline/transformationsExcellents outils intégrésPlus manuel
Diagnostics statistiquesLimitéTrès complet (.summary())
RégularisationNative et variéePlus restreinte
Intervalles de prédictionÀ implémenter soi-mêmeget_prediction disponible

Ajuster le modèle, OLS ou descente de gradient ?

L’OLS analytique (solution fermée via décomposition numérique) est rapide et précis sur des volumes de features modérés. La descente de gradient stochastique (SGDRegressor) convient aux jeux volumineux ou au flux de données, avec possibilité d’optimiser en ligne.

  • Choisir OLS : dataset de taille modérée, besoin de coefficients stables et exacts.
  • Choisir SGD : très grands volumes, contraintes mémoire, entraînement incrémental, besoin de régularisation simple et rapide.

Régularisation, Ridge, Lasso, ElasticNet ?

La régularisation pénalise la taille des coefficients pour limiter le surapprentissage et améliorer la généralisation. Ridge (L2) rétrécit tous les coefficients, Lasso (L1) en met certains exactement à zéro, ElasticNet combine L1 et L2.

MéthodeEffet sur les coefficientsAvantagesLimites
Ridge (L2)Réduction homogèneStabilise avec multicolinéaritéNe fait pas de sélection stricte
Lasso (L1)Certains à zéroSélection de variablesInstable si variables corrélées
ElasticNetMix L1/L2Bon compromis corrélations + sparsitéNécessite régler 2 hyperparamètres

Faire des prédictions, et intervalles ?

Avec scikit-learn, prédisez via predict puis évaluez avec MSE, RMSE ou R². Pour des intervalles de confiance ou de prédiction, privilégiez statsmodels qui les fournit nativement.

Restez prudent en extrapolation : les prédictions hors du domaine observé sont incertaines. Contrôlez la dérive des données dans le temps et mettez le modèle à jour si les conditions changent.

Comment évaluer, interpréter et diagnostiquer ?

Diagrammes de régression linéaire illustrant les résultats d'une analyse statistique avec des graphiques de dispersions et des diagnostics.

Évaluer une régression linéaire consiste à mesurer l’ajustement global du modèle, la précision de ses prédictions, l’importance de chaque variable et la validité des hypothèses. Les sections suivantes rassemblent les métriques clés, les tests usuels et les bonnes pratiques de diagnostic. Dans l’Original, nous avons déjà évoqué l’erreur quadratique moyenne (mean squared error). Allons plus loin, de façon structurée et opérationnelle.

R² et R² ajusté : quand les utiliser ?

Le coefficient de détermination R² mesure la part de variance de la cible expliquée par le modèle. Il augmente rarement quand on retire des variables, et peut augmenter simplement parce que l’on en ajoute, même inutiles. Un R² élevé n’implique ni causalité, ni validité des hypothèses, ni bonnes prédictions hors échantillon.

Le R² ajusté corrige ce biais en pénalisant le nombre de prédicteurs. Utilisez R² ajusté pour comparer des modèles de complexités différentes, surtout en régression multiple. En pratique, surveillez R² ajusté, l’erreur de généralisation via validation croisée, et les diagnostics de résidus avant toute conclusion.

MSE, RMSE, MAE : quelle différence ?

Ces métriques quantifient l’écart entre valeurs observées et prédictions. Elles diffèrent par leur sensibilité aux grandes erreurs et leurs unités.

MétriqueDéfinition courteSensibilité aux valeurs extrêmesUnitésLecture pratique
MSEMoyenne des carrés des erreursTrès sensible, pénalise fortement les grandes erreursUnités de la cible au carréOptimise souvent l’ajustement, moins lisible
RMSERacine carrée du MSESensible, mais exprimée dans l’unité de la cibleMême unité que la cibleErreur type de prédiction moyenne, facile à communiquer
MAEMoyenne des valeurs absolues des erreursPlus robuste aux valeurs extrêmesMême unité que la cibleErreur médiane approchée, robuste et interprétable

Choisir selon le contexte métier : privilégiez RMSE si de grosses erreurs coûtent très cher ou si vous cherchez une métrique alignée sur l’optimisation quadratique, et MAE si la robustesse prime ou si vous présentez un indicateur simple. Pour des erreurs asymétriques, pensez aux pertes quantiles et aux intervalles de prédiction.

Erreur standard de l’estimation : à quoi sert-elle ?

L’erreur standard de l’estimation correspond à l’écart type des résidus. Elle synthétise l’incertitude globale des prédictions sur l’échantillon d’entraînement. Plus elle est faible, plus les résidus sont concentrés autour de la droite de régression.

Exemple de lecture : si l’erreur standard vaut 2,5, alors, sous normalité des résidus, environ 95 pour cent des observations se situent à plus ou moins 2 erreurs standards autour des valeurs ajustées. Cette quantité détermine la largeur des intervalles de confiance et de prédiction, à taille d’échantillon et dispersion données.

Coefficients, standardisés ou non ?

Les coefficients non standardisés s’expriment dans les unités originales et s’interprètent directement, à variables constantes. Les coefficients standardisés (bêtas) comparent l’importance relative des prédicteurs, indépendamment des unités. Ils sont utiles quand les échelles diffèrent fortement.

Procédure pratique de standardisation : centrez et réduisez les variables explicatives sur l’échantillon d’entraînement, entraînez le modèle, puis appliquez les mêmes paramètres de normalisation aux jeux de test et de production. Évitez de standardiser les indicatrices binaires si l’interprétation en points de pourcentage est requise. La mise à l’échelle est vivement recommandée avec des modèles régularisés.

Intervalles de confiance et p-values : comment les lire ?

Un intervalle de confiance à 95 pour cent pour un coefficient correspond à un procédé qui couvre la vraie valeur dans 95 pour cent des échantillons répétés. Il ne s’agit pas de la probabilité que le paramètre se trouve dans l’intervalle pour votre échantillon. Une p-value mesure la compatibilité des données avec l’hypothèse nulle, elle n’est ni la probabilité que H0 soit vraie, ni une mesure de l’importance pratique.

Conséquences : rapportez toujours les estimations, leurs intervalles et les tailles d’effet. Méfiez-vous des décisions binaires fondées uniquement sur un seuil de 0,05, surtout en présence de comparaisons multiples ou de petites tailles d’échantillon.

Test F : que signifie-t-il globalement ?

Le test F évalue la significativité globale du modèle. L’hypothèse nulle pose que tous les coefficients de pente sont nuls dans la population. La statistique F est le rapport des carrés moyens expliqués sur les carrés moyens résiduels. Une valeur F élevée, avec une p-value faible, indique qu’au moins un prédicteur apporte une information au-delà du bruit.

En pratique, combinez ce test avec R² ajusté, des métriques d’erreur et une validation croisée. Un modèle globalement significatif peut rester peu prédictif ou violer des hypothèses essentielles.

Diagnostics des résidus : que montrent QQ-plot et résidus vs ajustés ?

Les graphiques de résidus valident les hypothèses et guident les corrections.

  • QQ-plot : vérifie la normalité des résidus. Courbure en S, queues lourdes ou points éloignés suggèrent outliers, distributions asymétriques ou hétérogènes. Actions possibles : suppression ou traitement des valeurs aberrantes, transformations de la cible, régression robuste.
  • Résidus vs valeurs ajustées : un nuage sans structure est attendu. Un motif en U ou en S révèle des non-linéarités. Un cône ouvre la voie à l’hétéroscédasticité. Actions : ajouter des termes polynomiaux ou d’interaction, transformer des variables, utiliser des erreurs standards robustes ou une pondération.
  • Influence et levier : points à fort levier ou grande influence (par exemple distance de Cook) peuvent piloter indûment les coefficients. Actions : contrôle qualité des données, variantes robustes, modèles alternatifs.

Hétéroscédasticité et autocorrélation : quels tests BP, DW ?

Deux violations fréquentes concernent la variance non constante des résidus et leur dépendance sérielle.

  • Breusch, Pagan : teste si la variance des résidus dépend des valeurs ajustées ou de prédicteurs. Si significatif, privilégiez des erreurs standards robustes de type Huber, White, une transformation de la cible, ou une régression pondérée.
  • Durbin, Watson : détecte l’autocorrélation d’ordre 1 des résidus, fréquente en séries temporelles. Si présente, incluez des termes retardés, utilisez des erreurs standards Newey, West, recourez à GLS ou à des modèles dédiés aux séries temporelles.

Multicolinéarité : VIF, à partir de quel seuil ?

La multicolinéarité survient lorsque des prédicteurs sont fortement corrélés. Le Variance Inflation Factor VIF de la variable j s’écrit 1/(1 − Rj2) où Rj2 provient de la régression de Xj sur les autres X. Un VIF élevé gonfle la variance de l’estimateur, rendant les coefficients instables et difficiles à interpréter.

  • Seuils usuels : vigilance dès VIF supérieur à 5, problème sérieux au-delà de 10, selon le contexte et la taille d’échantillon.
  • Stratégies : supprimer ou regrouper des variables redondantes, créer des composantes (PCA), centrer les variables, collecter davantage de données, utiliser une régularisation de type ridge ou lasso pour stabiliser l’estimation.

Des exemples concrets en Python ?

Capture d'écran d'un éditeur de code avec un graphique représentant une régression linéaire en Python.

Qu’elle soit simple ou multiple, la régression linéaire peut être utilisée avec Python. Passons à la pratique avec de petites démonstrations lisibles et interprétées. Sauf mention contraire, les données ci-dessous sont simulées pour l’illustration.

Régression simple : un exemple commenté ?

Cas concret: un restaurateur souhaite estimer le bénéfice mensuel (en k€) en fonction de la population de la ville (en milliers d’habitants). On ajuste une droite, puis on interprète la pente et l’ordonnée à l’origine.

  • Ajustement: LinearRegression estime la pente β1 et l’intercept β0 par moindres carrés.
  • Tracé: le nuage de points et la droite aident à vérifier la relation approximativement linéaire.
  • Interprétation: la pente indique l’augmentation moyenne de bénéfice pour +1 millier d’habitants. L’intercept correspond au bénéfice modélisé pour une population nulle, utile comme point de repère mais rarement interprétable en pratique.

Régression multiple : un exemple commenté ?

Cas concret: on prédit le bénéfice avec plusieurs facteurs explicatifs: population, revenu médian (k€) et zone (A ou B). On encode la variable catégorielle, on standardise les numériques, puis on calcule les métriques, dont le R² ajusté qui tient compte du nombre de variables.

  • Prétraitements: StandardScaler met les variables numériques sur la même échelle et OneHotEncoder représente la zone par une variable binaire de référence claire.
  • Ajustement: le pipeline enchaîne encodage, standardisation et estimation des coefficients.
  • Métriques: MAE et RMSE quantifient l’erreur moyenne absolue et quadratique. R² mesure la part de variance expliquée, le R² ajusté corrige l’optimisme quand on ajoute des variables.

Étude de cas sectorielle : que conclure ?

Mini-cas marketing: une plateforme vidéo veut expliquer le nombre de visionnages mensuels par utilisateur à partir de l’âge, du revenu et du sexe (encodé en variable factice). Un coefficient positif pour l’âge signifie que, toutes choses égales par ailleurs, un an de plus est associé à plus de visionnages. Un coefficient positif pour la variable factice homme indique, à revenu et âge identiques, un niveau moyen de visionnages plus élevé que la catégorie de référence.

Enseignements et limites: la lecture des coefficients standardisés permet de comparer l’influence relative des variables, tandis que le R² ajusté informe sur la qualité globale du modèle. Toutefois, corrélation et causalité diffèrent, la linéarité peut être approximative, la multicolinéarité peut gonfler l’incertitude des coefficients, et les résidus doivent rester à variance à peu près constante et proches d’une distribution normale pour que les inférences soient fiables. En pratique, complétez l’analyse par une validation sur échantillon de test, des diagnostics de résidus et, si besoin, par des transformations ou une régularisation.

Maîtrisez la régression linéaire avec Python

Capture d'écran d'un environnement de codage Python montrant un graphique de régression linéaire avec des données et un modèle ajusté.

Algorithme incontournable en machine learning, la régression linéaire relie une cible continue à une ou plusieurs variables explicatives. Voici une boîte à outils actionnable pour passer de l’idée au modèle fiable avec Python, puis au suivi en production.

  • Formuler le problème et la cible continue, lister les hypothèses, définir les métriques de succès.
  • Préparer un jeu d’entraînement et un jeu de test, créer une baseline simple.
  • Construire un Pipeline de prétraitement et de modélisation (encodage, normalisation, estimation).
  • Évaluer avec validation croisée, comparer R² ajusté, MAE, RMSE, MAPE si pertinent.
  • Vérifier les diagnostics sur résidus et la multicolinéarité, traiter les valeurs influentes.
  • Raffiner la sélection de variables et la régularisation pour limiter le surapprentissage.
  • Documenter, figer l’aléa, versionner données et code, exporter le modèle.
  • Déployer derrière une API, surveiller dérive des données et des performances, planifier la remise à jour.

Checklist de diagnostic : que vérifier avant de conclure ?

  • Hypothèses à contrôler: relation approximativement linéaire cible-prédicteurs, indépendance des erreurs, homoscédasticité (variance des résidus stable), normalité approximative des résidus, absence de multicolinéarité forte.
  • Métriques: R² et R² ajusté, RMSE, MAE, MAPE si l’échelle et les zéros le permettent. Comparer train, validation croisée, test.
  • Tests usuels: Durbin‑Watson (autocorrélation des résidus), Breusch‑Pagan (hétéroscédasticité), Shapiro‑Wilk ou Q‑Q plot (normalité des résidus). Calculer VIF pour la multicolinéarité.
  • Plots à produire systématiquement:
    • Résidus vs valeurs ajustées (détecter motifs et hétéroscédasticité).
    • Q‑Q plot des résidus.
    • Scale‑Location plot.
    • Leverage/Cook’s distance (points influents).
    • Prédictions vs valeurs réelles, learning curves si besoin.

    Sélection de variables : quelles méthodes ?

    Le but est d’obtenir un modèle parcimonieux, interprétable et robuste. Combinez critères statistiques, connaissance métier et validation croisée.

    • Stepwise (avant, arrière, bidirectionnelle): ajout/retrait selon AIC, BIC, p‑values, toujours valider par CV pour éviter le surajustement.
    • Lasso (L1): pousse certains coefficients à zéro, utile pour la sélection automatique en grande dimension.
    • ElasticNet (L1+L2): compromis entre sélection et stabilité quand les variables sont corrélées.
    • RFE (Recursive Feature Elimination) et importance par permutation: mesurer la dégradation de performance quand une variable est altérée.
    • Conseils clés:
      • Standardiser avant Lasso/ElasticNet, encoder proprement les catégorielles.
      • Traiter la multicolinéarité: supprimer ou regrouper des variables proches, ou privilégier la régularisation.
      • Toujours fixer les hyperparamètres par recherche sur grille ou aléatoire avec CV.

      Bonnes pratiques de mise en production

      • Pipelines: regrouper prétraitements et modèle (sklearn Pipeline, ColumnTransformer) pour éviter toute fuite et garantir la reproductibilité.
      • Versionning et traçabilité: figer random_state, consigner données, features, hyperparamètres, métriques, artefacts (par exemple via fichiers de configuration et un suivi d’expériences).
      • Déploiement: sérialiser le pipeline complet, exposer une API, valider les schémas d’entrée, gérer les erreurs.
      • Surveillance:
        • Métriques de performance en ligne: RMSE, MAE, R² sur vérité terrain différée.
        • Drift des données et de la cible: comparer distributions, alerter en cas de dérive.
        • Journaliser latences, taux d’erreurs, volumes, et établir des seuils d’alerte.

        Limites et alternatives : quand éviter la régression linéaire ?

        Évitez la régression linéaire si la relation est fortement non linéaire, si la variance des erreurs croît avec la prédiction, si des valeurs influentes dominent l’ajustement, si la cible n’est pas continue ou si la dépendance temporelle viole l’indépendance des erreurs.

        • Classification: préférer la régression logistique quand la cible est binaire ou catégorielle.
        • Non‑linéarités marquées: caractéristiques polynomiales avec régularisation, forêts aléatoires, gradient boosting, SVR à noyau, modèles additifs généralisés.
        • Comptes et taux: GLM adaptés (Poisson, binomial, Tweedie), modèles de taux avec lien approprié.
        • Hétéroscédasticité forte ou quantiles d’intérêt: régression quantile.
        • Séries temporelles: modèles autorégressifs, régression avec termes AR et validation chronologique.

        Ressources Python : où aller plus loin ?

        Pour pratiquer et approfondir, consultez ces ressources de référence.

        • scikit‑learn:
          • Guides des modèles linéaires: linear_model
          • Pipeline et transformations de colonnes: Pipeline, ColumnTransformer
          • Validation et sélection de modèle: model_selection
          • Évaluation des régressions: métriques de régression
          • Régression OLS: OLS
          • Exemple détaillé OLS: notebook OLS
          • Outils de diagnostic et tests: stats et diagnostics
          • Tutoriels scikit‑learn: parcours officiel

Liora (ex DataScientest) est un institut de formation technologique fondé en 2017, qui figure parmi les acteurs de référence du secteur. Liora propose des formations à distance, en bootcamp ou en temps partiel, dans les métiers de la data, du cloud, de l’intelligence artificielle, du développement informatique, de la cybersécurité et de la transformation digitale. La méthode pédagogie est basée sur 80% de pratique asynchrone via une plateforme propriétaire ready to code, et 20% d’accompagnement en direct avec mentors et coachs carrière. Les formations permettent de valider des certifications RNCP de niveau 6 ou 7, souvent accompagnées d’un certificat de reconnaissance délivré par de grandes institutions françaises (Mines Paris, La Sorbonne, ECE, INSEEC, etc.). Elles préparent également à des certifications officielles délivrées par des entreprises technologiques majeures comme Microsoft, AWS ou Google Cloud. À ce jour, Liora compte plus de 50 000 alumni, répartis à travers le monde.

Liora – Your future. Decoded.