Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

La méthode des moindres carrés (least squares method) a été proposée par Gauss et Legendre à la fin du XVIIe siècle. Dans le cadre de l’approximation d’un signal, elle permet de décrire un signal bruité par un modèle mathématique.

Problématique

On considère le cas où les observations yy contiennent NN échantillons et sont la somme d’un signal x=fθx=f_{\theta} bruité :

∀n∈{0,…,N−1},y[n]=fθ[n]+b[n]\forall n\in\{0,\dots,N-1\}, \quad y[n] = f_{\theta}[n] + b[n]

où :

De manière générale, ff peut être n’importe quelle fonction paramétrée, comme par exemple :

Par simplicité, nous nous concentrons dans cette section sur les fonctions fθf_{\theta} linéaires en θ\theta (si ff n’est pas linéaire, alors il faut utiliser une méthode de moindres carrés non linéaires). Plus précisément, nous nous concentrons sur des fonctions fθf_{\theta} polynomiales :

∀n,fθ[n]=θ0+θ1n+θ2n2+⋯+θM−1nM−1.\forall n, \quad f_{\theta}[n] = \theta_0 + \theta_1 n + \theta_2 n^2 + \dots + \theta_{M-1} n^{M-1}.

L’objectif est d’estimer la valeur des MM inconnues θm\theta_m où m∈{0,…,M−1}m\in\{0,\dots,M-1\}.

Écriture matricielle

Dans la suite, les calculs sont effectués avec la représentation vectorielle. En considérant toutes les valeurs que prend nn, l’équation (1) devient un système de NN équations à MM inconnues :

{y[0]=θ0+θ10+θ202+⋯+θM−10M−1+b[0]y[1]=θ0+θ11+θ212+⋯+θM−11M−1+b[1]⋮y[N−1]=θ0+θ1(N−1)+θ2(N−1)2+⋯+θM−1(N−1)M−1+b[N−1]\begin{cases} y[0] = \theta_0 + \theta_1 0 + \theta_2 0^2 + \dots + \theta_{M-1} 0^{M-1} + b[0] \\ y[1] = \theta_0 + \theta_1 1 + \theta_2 1^2 + \dots + \theta_{M-1} 1^{M-1} + b[1] \\ \quad\vdots \\ y[N-1] = \theta_0 + \theta_1 (N-1) + \theta_2 (N-1)^2 + \dots + \theta_{M-1} (N-1)^{M-1} + b[N-1] \end{cases}

ce système peut s’écrire plus simplement sous forme matricielle :

y=Hθ+b\boldsymbol{y} = \boldsymbol{H} \boldsymbol{\theta} + \boldsymbol{b}

où la matrice H\boldsymbol{H} est de taille N×MN \times M et regroupe les vecteurs des abscisses aux puissances 0 à M−1M-1 :

H=[000102…0M−1101112…1M−1⋮⋮⋮⋮(N−1)0(N−1)1(N−1)2…(N−1)M−1].\boldsymbol{H} = \begin{bmatrix} 0^0 & 0^1 & 0^2 & \dots & 0^{M-1} \\ 1^0 & 1^1 & 1^2 & \dots & 1^{M-1} \\ \vdots & \vdots & \vdots & & \vdots \\ (N-1)^0 & (N-1)^1 & (N-1)^2 & \dots & (N-1)^{M-1} \end{bmatrix}.

et :

y=[y[0]⋮y[N−1]],θ=[θ0⋮θM−1],b=[b[0]⋮b[N−1]]\boldsymbol{y} = \begin{bmatrix} y[0] \\ \vdots \\ y[N-1] \end{bmatrix}, \quad \boldsymbol{\theta} = \begin{bmatrix} \theta_0 \\ \vdots \\ \theta_{M-1} \end{bmatrix}, \quad \boldsymbol{b} = \begin{bmatrix} b[0] \\ \vdots \\ b[N-1] \end{bmatrix}

Minimisation du critère des moindres carrés

L’objectif est de retrouver θ\theta à partir de yy. Il est logique de choisir θ\theta comme le paramètre qui minimise les différences entre yy et fθf_\theta. Mathématiquement, il faut donc minimiser

J=∑n=0N−1(y[n]−fθ[n])2.\mathcal{J} = \sum_{n=0}^{N-1} \left(y[n] - f_{\theta}[n]\right)^2.

La parenthèse, qui exprime la différence entre yy et fθf_{\theta} en chaque échantillon nn, est au carré car les calculs sont plus simples à effectuer qu’avec une valeur absolue. On cherche donc à minimiser les différences au carrés, d’où le nom de la méthode. Remarquez que J\mathcal{J} est le carré de la norme du signal y−fθy - f_{\theta} :

J=∥y−Hθ∥2=(y−Hθ)T(y−Hθ)=yTy−yTHθ−θTHTy+θTHTHθ\begin{align*} \mathcal{J} &= \| \boldsymbol{y} - \boldsymbol{H}\boldsymbol{\theta} \|^2 \\ &= (\boldsymbol{y} - \boldsymbol{H}\boldsymbol{\theta})^T (\boldsymbol{y} - \boldsymbol{H}\boldsymbol{\theta}) \\ &= \boldsymbol{y}^T\boldsymbol{y} - \boldsymbol{y}^T\boldsymbol{H}\boldsymbol{\theta} - \boldsymbol{\theta}^T\boldsymbol{H}^T\boldsymbol{y} + \boldsymbol{\theta}^T\boldsymbol{H}^T\boldsymbol{H}\boldsymbol{\theta} \end{align*}

Trouver la valeur de θ\theta qui minimise J\mathcal{J} revient à trouver la valeur qui annule la dérivée de J\mathcal{J}, et on peut montrer que :

∂J∂θ=−2HTy+2HTHθ\frac{\partial \mathcal{J}}{\partial \boldsymbol{\theta}} = - 2\boldsymbol{H}^T\boldsymbol{y} + 2\boldsymbol{H}^T\boldsymbol{H}\boldsymbol{\theta}

Et donc :

∂J∂θ=0⇔2HTy=2HTHθ⇔θ=(HTH)−1HTy.\frac{\partial \mathcal{J}}{\partial \boldsymbol{\theta}} = 0 \qquad\Leftrightarrow\qquad 2\boldsymbol{H}^T\boldsymbol{y} = 2\boldsymbol{H}^T\boldsymbol{H}\boldsymbol{\theta} \qquad\Leftrightarrow\qquad \boldsymbol{\theta} = (\boldsymbol{H}^T\boldsymbol{H})^{-1} \boldsymbol{H}^T\boldsymbol{y}.

Cette dernière équation définit donc la valeur de θ\theta qui minimise l’erreur des moindres carrés, c’est donc la valeur de θ\theta qui permet d’avoir une fonction fθf_{\theta} qui approxime au mieux les données yy.

Illustration

La solution obtenue est issue du calcul θ=(HTH)−1HTy\boldsymbol{\theta} = (\boldsymbol{H}^T\boldsymbol{H})^{-1} \boldsymbol{H}^T\boldsymbol{y}. Sur l’exemple de la Figure 1, l’observation yy est une version bruitée d’un polynôme xx. L’approximation par moindres carrés est plus appréciable que celle obtenue avec le filtre moyenneur car on bénéficie ici du fait que le signal inconnu est un polynôme.

Les données y sont approximées par un polynôme d’ordre 3 avec la méthode des moindres carrés.
Le résultat est comparé avec un filtre moyenneur de taille 20, qui donne une estimation moins « propre ».

Figure 1:Les données yy sont approximées par un polynôme d’ordre 3 avec la méthode des moindres carrés. Le résultat est comparé avec un filtre moyenneur de taille 20, qui donne une estimation moins « propre ».

La figure Figure 2 représente en orange les différences entre l’observation et l’estimation. C’est la somme de ces différences qui est minimisée par la méthode des moindres carrés.

Mise en évidence des erreurs à minimiser.

Figure 2:Mise en évidence des erreurs à minimiser.

✏️ Exercice 7