Machine learning appliqué à la finance · Essentiel · 8 min

Régression logistique

Objectif: Classer/estimer une probabilité, différencier de la régression linéaire, calibrer le modèle.

Avant de continuer

Il faut connaître la régression linéaire et la notion de régularisation.

Vocabulaire

Log-loss (entropie croisée)
La fonction de perte standard de la régression logistique, qui pénalise fortement une prédiction confiante et fausse.
Calibration
La propriété qu'une probabilité prédite de 70% corresponde réellement à environ 70% de cas positifs observés, pas seulement à un bon classement relatif.

Intuition

Contrairement à la régression linéaire qui prédit une valeur continue, la régression logistique estime une probabilité (entre 0 et 1) qu'un événement binaire se produise — typiquement un défaut de crédit, une hausse ou une baisse — en appliquant une fonction sigmoïde à une combinaison linéaire des variables.

Définition

Quel problème ? Classer une observation en deux catégories, ou plus précisément estimer une probabilité d'appartenance à une catégorie. Quand l'utiliser ? Quand la sortie est binaire (défaut/non-défaut) et qu'une probabilité interprétable est utile, pas seulement une étiquette. Quand l'éviter ? Quand la frontière de décision est fortement non-linéaire, ou en cas de déséquilibre extrême des classes sans traitement adapté (pondération, rééchantillonnage). Le modèle s'écrit p = σ(Xβ) où σ est la fonction sigmoïde, entraîné en minimisant le log-loss (maximum de vraisemblance) plutôt que l'erreur quadratique.

Utilité

Quelles données/sortie ? Des variables numériques en entrée, une probabilité entre 0 et 1 en sortie (convertible en classe via un seuil, souvent 0,5 mais pas toujours). Comment l'entraîner/évaluer ? Minimiser le log-loss sur le jeu d'entraînement, évaluer sur le jeu de test avec l'aire sous la courbe ROC (AUC, indépendante du seuil choisi) et vérifier la calibration des probabilités. Pourquoi ce modèle ? Comme la régression linéaire, sa simplicité et son interprétabilité (coefficients = impact sur le log-odds) en font une référence indispensable en classification.

Exemple concret

Estimer la probabilité de défaut d'une entreprise emprunteuse à 1 an à partir de ratios financiers (levier, couverture des intérêts, liquidité) : un score de crédit interne utilise souvent une régression logistique comme brique de base, précisément parce que les coefficients restent interprétables par un comité de crédit, contrairement à un modèle boîte noire.

Toujours bloqué ? Une autre façon de voir les choses

La fonction sigmoïde agit comme un "compresseur" : elle prend n'importe quel score réel (de -∞ à +∞ issu de la combinaison linéaire) et l'écrase dans l'intervalle [0,1], de façon à ce qu'un score très négatif donne une probabilité proche de 0, un score très positif une probabilité proche de 1, et un score nul une probabilité de 0,5 — une façon naturelle de transformer un score continu en probabilité valide.

Formule indispensable

Variables, unités et hypothèses

  • — Fonction sigmoïde, transforme un score réel en probabilité entre 0 et 1
  • — Log-loss (entropie croisée), la fonction de perte minimisée pendant l'entraînement

Hypothèses: Suppose une relation linéaire entre les variables et le log-odds (logit) de l'événement, pas entre les variables et la probabilité elle-même.

Unités: p sans dimension, entre 0 et 1.

Exemple concret: Xβ=0 : p=0,5. Xβ=2 : p=1/(1+e⁻²)≈0,88. Xβ=−2 : p≈0,12.

Calcul détaillé

1) Séparer les données en entraînement/test. 2) Ajuster β en minimisant le log-loss (par descente de gradient ou méthode de Newton). 3) Prédire une probabilité pour chaque observation du jeu de test. 4) Évaluer avec l'AUC (qualité du classement, indépendante du seuil) puis choisir un seuil de décision adapté au coût métier des faux positifs/négatifs.

Exemple de code Python

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score

# X : ratios financiers (levier, couverture des intérêts, liquidité...)
# y : 1 si défaut observé dans l'année, 0 sinon
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=0)

modele = LogisticRegression(class_weight="balanced")  # compense le déséquilibre des classes
modele.fit(X_train, y_train)

probabilites = modele.predict_proba(X_test)[:, 1]  # probabilité de défaut
print("AUC :", roc_auc_score(y_test, probabilites))

Interprétation

Un coefficient positif β_j signifie que la variable j augmente le log-odds (donc la probabilité) de l'événement ; son exponentielle exp(β_j) s'interprète comme un rapport de cotes (odds ratio). Une AUC de 0,5 signifie un classement aussi bon que le hasard ; une AUC proche de 1 indique un excellent pouvoir discriminant entre les deux classes.

Pièges

Utiliser systématiquement un seuil de 0,5 pour convertir la probabilité en décision, sans tenir compte du coût réel asymétrique entre faux positifs et faux négatifs (rater un défaut coûte généralement plus cher qu'un refus de crédit à tort). Autre piège : confondre une bonne AUC (bon classement relatif) avec une bonne calibration (probabilités réalistes en valeur absolue) — les deux propriétés sont différentes et doivent être vérifiées séparément.

Trois points à retenir

  1. 1La régression logistique estime une probabilité via une sigmoïde appliquée à une combinaison linéaire, entraînée par minimisation du log-loss.
  2. 2L'AUC évalue la qualité du classement indépendamment du seuil ; la calibration évalue le réalisme des probabilités elles-mêmes.
  3. 3Le seuil de décision doit refléter le coût métier réel des faux positifs et faux négatifs, pas systématiquement 0,5.
Approfondir / démonstration

Le lien entre régression logistique et pricing d'options n'est pas qu'une analogie : N(d2) dans la formule de Black-Scholes (M06-5) est structurellement une probabilité risque-neutre obtenue via la fonction de répartition normale appliquée à une combinaison de variables (d2), un mécanisme conceptuellement proche de la sigmoïde de la régression logistique — les deux transforment un score continu non borné en une probabilité valide entre 0 et 1, bien que par des fonctions différentes (normale cumulée vs. sigmoïde) et dans des cadres théoriques distincts (absence d'arbitrage vs. maximum de vraisemblance).

Mini-quiz de cette notion

…