L’idée
À partir d’observations , la régression linéaire simple cherche une droite . Un résidu est l’écart vertical entre une observation et sa prédiction.
La méthode des moindres carrés choisit et en minimisant la somme des carrés des résidus :
Le carré empêche les résidus positifs et négatifs de s’annuler et pénalise davantage les grandes erreurs. Lorsque les entrées ne sont pas constantes, cet objectif est convexe et possède un minimum unique.
Une variable explicative
Pour une régression simple, dériver par rapport à et donne
Le dénominateur est non nul lorsque les valeurs observées ne sont pas toutes identiques.
Plusieurs variables explicatives
Pour observations et variables explicatives, rassemblons les observations dans une matrice de conception . Sa première colonne contient des 1 pour l’ordonnée à l’origine ; chaque autre colonne contient une variable. Les coefficients inconnus forment et les valeurs observées forment :
L’estimateur des moindres carrés est
Son gradient vaut
Au minimum, ce gradient est nul, ce qui donne les équations normales
Si est de rang colonne plein, est inversible et
Sans cette hypothèse, le minimiseur peut ne pas être unique. La solution de norme minimale est , où est la pseudo-inverse de Moore–Penrose. En calcul numérique, on préfère généralement une décomposition QR ou en valeurs singulières au calcul explicite de .
Exemple en Python
Cet exemple génère des observations bruitées autour de et résout la régression avec numpy.linalg.lstsq :
import numpy as np
rng = np.random.default_rng(42)
x = np.linspace(0, 10, 100)
y = 2 * x + 3 + rng.normal(0, 1, len(x))
X = np.column_stack((x, np.ones(len(x))))
coefficients, residuals, rank, singular_values = np.linalg.lstsq(
X, y, rcond=None
)
pente, ordonnee_origine = coefficients
predictions = X @ coefficients
print(pente, ordonnee_origine)
La construction reste identique avec davantage de variables : il suffit d’ajouter une colonne à pour chaque variable. L’objet ajusté devient alors un hyperplan dans l’espace des variables ; il ne s’obtient pas en intersectant plusieurs hyperplans séparés.