Machine learning appliqué à la finance · Essentiel · 8 min
Régression linéaire
Objectif: Prédire une quantité continue : interprétation, hypothèses, régularisation et limites.
Vocabulaire
- Surapprentissage (overfitting)
- Un modèle qui colle trop précisément aux données d'entraînement, au point de mal généraliser sur des données nouvelles.
- Régularisation
- Une pénalité ajoutée à la fonction de perte pour contraindre la taille des coefficients et réduire le surapprentissage (Ridge = pénalité L2, Lasso = pénalité L1).
Intuition
La régression linéaire cherche la meilleure combinaison pondérée de variables explicatives pour prédire une quantité continue : c'est le modèle le plus simple, le plus interprétable, et presque toujours le premier réflexe avant d'essayer quelque chose de plus complexe.
Définition
La régression linéaire modélise y = Xβ + ε, où β est estimé en minimisant la somme des carrés des résidus (moindres carrés ordinaires, OLS). Quel problème ? Prédire une valeur continue (rendement, spread, prix) à partir de variables numériques. Quand l'utiliser ? Quand une relation approximativement linéaire est plausible et que l'interprétabilité des coefficients compte. Quand l'éviter ? Quand la relation est fortement non-linéaire, ou que les variables explicatives sont très corrélées entre elles (multicolinéarité) sans traitement adapté. La régularisation (Ridge, pénalité sur Σβ² ; Lasso, pénalité sur Σ|β|) contraint les coefficients pour limiter le surapprentissage, Lasso ayant en plus la propriété de mettre certains coefficients exactement à zéro (sélection de variables).
Utilité
Quelles données/sortie ? Des variables numériques en entrée (features), une valeur continue en sortie (target). Comment l'entraîner/évaluer ? Ajuster β sur un jeu d'entraînement, puis évaluer sur un jeu de test séparé avec le R² (variance expliquée) et l'erreur quadratique moyenne (MSE). Pourquoi ce modèle ? Sa simplicité en fait une référence (baseline) indispensable : tout modèle plus complexe doit démontrer qu'il fait significativement mieux qu'une régression linéaire pour justifier sa complexité additionnelle.
Exemple concret
Prédire le rendement à l'échéance (YTM) d'une obligation d'entreprise à partir de sa duration et de son spread de crédit. Modèle ajusté : YTM(%)=1,5+0,15×Duration(années)+0,01×Spread(pb). Pour une obligation de duration=5 ans et spread=150pb : YTM=1,5+0,15×5+0,01×150=1,5+0,75+1,5=3,75%. Le coefficient 0,15 s'interprète directement : « chaque année de duration supplémentaire ajoute 0,15 point de pourcentage de rendement, toutes choses égales par ailleurs » — une lecture impossible avec un modèle non-interprétable comme une forêt aléatoire.
Toujours bloqué ? Une autre façon de voir les choses
Imaginez régler plusieurs curseurs (un par variable) pour que la somme pondérée des curseurs colle le mieux possible à une cible : la régression linéaire trouve automatiquement le meilleur réglage de chaque curseur, celui qui minimise l'écart moyen au carré entre la prédiction et la vraie valeur sur les données observées.
Formule indispensable
Variables, unités et hypothèses
- — Résidu (écart entre valeur réelle et prédiction) pour l'observation i
- — Force de la régularisation (Ridge ici) : 0 = OLS classique, plus λ est grand, plus les coefficients sont contraints vers zéro
Hypothèses: OLS classique suppose une relation linéaire, des résidus indépendants et de variance constante (homoscédasticité) ; la régularisation nécessite des variables normalisées (même échelle) pour que λ pénalise équitablement.
Unités: Coefficients dans l'unité de y par unité de x.
Exemple concret: λ=0 (OLS) donne β_duration=0,20 ; avec λ=2 (Ridge), ce même coefficient est rétréci vers β_duration=0,15 — une réduction de 25% qui limite la variance du modèle au prix d'un léger biais.
Calcul détaillé
1) Séparer les données en un jeu d'entraînement et un jeu de test (jamais évaluer sur les données d'entraînement). 2) Normaliser les variables si une régularisation est utilisée. 3) Ajuster β en minimisant la fonction de perte sur le jeu d'entraînement : ici β0=1,5, β_duration=0,15, β_spread=0,01. 4) Évaluer sur le jeu de test avec R² et MSE, jamais sur le jeu d'entraînement (qui donnerait une performance artificiellement optimiste).
Exemple de code Python
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# X : variables explicatives (duration, spread, notation...)
# y : rendement à l'échéance observé
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# alpha = force de régularisation (équivalent de λ dans la formule)
modele = Ridge(alpha=1.0)
modele.fit(X_train, y_train)
predictions = modele.predict(X_test)
print("R2 :", r2_score(y_test, predictions))
print("MSE :", mean_squared_error(y_test, predictions))
print("Coefficients :", dict(zip(X.columns, modele.coef_)))Interprétation
Un R² proche de 1 indique que le modèle explique bien la variance de y ; un R² proche de 0 (voire négatif sur le jeu de test) indique un pouvoir prédictif faible ou nul. Le signe et l'amplitude de chaque coefficient β s'interprètent directement : un coefficient positif signifie que la variable associée augmente la prédiction, toutes choses égales par ailleurs.
Pièges
Évaluer le modèle sur les mêmes données que celles utilisées pour l'entraîner, ce qui surestime systématiquement la performance réelle. Autre piège : interpréter un coefficient significatif comme une preuve de causalité, alors qu'une corrélation (même forte) entre variables financières ne prouve jamais un lien causal. Enfin, ignorer la multicolinéarité entre variables explicatives peut rendre les coefficients individuels instables et trompeurs, même si la prédiction globale reste correcte.
Application métier
Un desk obligataire ou une équipe de recherche crédit utilise une régression linéaire pour construire un "fair value model" du rendement d'une obligation à partir de ses caractéristiques, puis repère les obligations dont le rendement observé s'écarte significativement de cette prédiction (cheap/rich analysis) comme candidates potentielles à l'achat ou à la vente — une application directe où l'interprétabilité des coefficients permet d'expliquer précisément pourquoi une obligation semble mal valorisée.
Question d'entretien (en anglais)
Q.You fit a linear regression predicting bond yield from duration and credit spread, and get a duration coefficient of 0.15. How would you explain that number to a non-technical stakeholder, and what would make you distrust it?
Voir une réponse modèle
A.I'd say: holding the credit spread constant, each additional year of duration is associated with about 0.15 percentage points of extra yield in this dataset. I'd be careful to call it an association, not a causal effect. What would make me distrust it: if duration and spread are themselves highly correlated in my data (multicollinearity), the coefficient split between them can become unstable — I'd check that before trusting the individual number. I'd also want to see the R² and the out-of-sample performance on a test set, since evaluating on the same data used to fit the model would give an artificially optimistic read. And I'd sanity-check the coefficient's sign and magnitude against market intuition — a duration coefficient that's negative or implausibly large would be a red flag before I'd use it for anything real like a cheap/rich screen.
Trois points à retenir
- 1La régression linéaire prédit une valeur continue via une combinaison pondérée des variables, en minimisant l'erreur quadratique.
- 2La régularisation (Ridge/Lasso) contraint les coefficients pour réduire le surapprentissage, au prix d'un léger biais.
- 3Toujours évaluer sur un jeu de test séparé, jamais sur les données d'entraînement.
Approfondir / démonstration
La solution OLS a une forme fermée, β̂ = (XᵀX)⁻¹Xᵀy, dérivée en annulant le gradient de la somme des carrés des résidus — mais cette inversion matricielle devient instable si les colonnes de X sont fortement corrélées (multicolinéarité), un problème que la régularisation Ridge résout élégamment en ajoutant λI à XᵀX avant inversion, garantissant que la matrice reste inversible même en cas de colinéarité parfaite. Lasso, en revanche, n'a pas de solution fermée (sa pénalité L1 n'est pas différentiable en zéro) et nécessite des méthodes d'optimisation itératives (descente de coordonnées), mais offre en échange une sélection automatique de variables — une propriété que Ridge n'a pas.