Moindres carrés et fonction à deux variables

Bonjour

Je souhaite trouver le minimum de la fonction suivante. $$
f(\theta_0 , \theta_1) = \sum_{i=1}^n (y_i - \theta_0 - \theta_1.x_i )^2.
$$ Cela correspond à la méthode des moindres carrés ordinaire.

Pour ce faire, je cherche à résoudre : $\nabla f(\theta_0 , \theta_1) = (0,0) $
Ce n'est pas une condition suffisante. Je discuterai de la convexité plus loin.

Je vais développer ce que j'ai fait ci-dessous. Ma première question est générale : comment corriger mon raisonnement pour qu'il devienne rigoureux ?

Je ne sais pas si c'est correct de placer un sigma devant une matrice, mais la signification me semble sans ambiguïté.
$\displaystyle \nabla f(\theta_0 , \theta_1) =
-2 \sum_{i=1}^n
\begin{pmatrix} (1+ \frac{\partial \theta_1 }{\partial \theta_0 } x_i) (y_i - \theta_0 - \theta_1.x_i ) \\
(x_i + \frac{\partial \theta_0 }{\partial \theta_1 }) (y_i - \theta_0 - \theta_1.x_i ) \end{pmatrix} $

Mon but, c'est de trouver des constantes $\theta_0$ et $\theta_1$. Mais en étudiant la fonction à deux variables ci-dessus, je les considère comme des variables. ça me parait clair. Ce qui est moins clair, c'est la signification des dérivées partielles : $ \frac{\partial \theta_0 }{\partial \theta_1 } $ et $ \frac{\partial \theta_1 }{\partial \theta_0 } $ . ça n'a une signification que si $\theta_0$ et $\theta_1$ sont liées par une équation. (pardon, si je ne m'exprime pas avec rigueur.) La raison pour laquelle j'ai introduit ces dérivées partielles apparaîtra dans la suite.

Je poursuis mon calcul. Je dois résoudre.
$
\left\{
\begin{eqnarray}
\sum_{i=1}^n \Big( (1+ \frac{\partial \theta_1 }{\partial \theta_0 } x_i) (y_i - \theta_0 - \theta_1.x_i ) \Big) =0 \\
\sum_{i=1}^n \Big( (x_i + \frac{\partial \theta_0 }{\partial \theta_1 }) (y_i - \theta_0 - \theta_1.x_i ) \Big) =0
\end{eqnarray}
\right. $

Les deux lignes se ressemblent. On peut raisonner sur l'une ou l'autre. Prenons la première ligne par exemple.

(1) Il pourrait y avoir une infinité de solution si les termes de la somme se compensent. Je ne sais pas comment trouver toutes les solutions (1).

Cependant, on peut distinguer deux solutions particulières (1 et 2) :

(2) $ \forall i \in |[ 1 ; n ]| , x_i = - \frac{\partial \theta_0 }{\partial \theta_1 } $, en annulant le premier facteur sous le signe somme. Pour être plus précis, une solution correspond à un point $(\hat \theta_0 , \hat \theta_1) $, pour lequel $\displaystyle \forall i \in |[ 1 ; n ]| , x_i = - \frac{\partial \theta_0 }{\partial \theta_1 } (\hat \theta_0 , \hat \theta_1) $. Difficile de dire ce que cela peut signifier. On remarque qu'on a alors : $ \forall i \in |[ 1 ; n ]| , x_i = \bar x_n $. Dans ce cas particulier, on n'a pas besoin de faire une régression.

(3) $\displaystyle \theta_0 = \bar y_n - \theta_1 \bar x_n $ , en IGNORANT :-D le premier facteur sous le signe somme, où $\bar x_n $ et $\bar y_n $ sont les moyennes des $x_i $ et des $y_i $ , respectivement.
Alors, les dérivées partielles peuvent avoir un sens. On a : $ \frac{\partial \theta_0 }{\partial \theta_1 } = - \bar x_n $
En remplaçant $\theta_0$ et $ \frac{\partial \theta_0 }{\partial \theta_1 } $ dans la deuxième ligne de mon système, je peux calculer :
$ \displaystyle \theta_1 = \frac{\sum_{i=1}^n (x_i - \bar x_n)(y_i - \bar y_n) }{ \sum_{i=1}^n (x_i - \bar x_n)^2} $
(corrigé)

Ces expressions de $\theta_0$ et $\theta_1$ sont données dans les cours et les encyclopédies sur internet.
La solution (2) est un cas exclus de la solution (3) parce que le dénominateur dans l'expression de $\theta_1$ ne peut pas être nul.

Petit commentaire, à propos des dérivées partielles. Je crois qu'elles n'avaient un sens qu'à partir du moment où j'ai établi une relation entre $\theta_0$ et $\theta_1$. Mais mon procédé ne me parait pas très net. Surtout, c'est contradictoire de dire que $ \frac{\partial \theta_1 }{\partial \theta_0 } =0 $, puis $ \frac{\partial \theta_0 }{\partial \theta_1 } = - \bar x_n$ . C'est une entourloupe. Comment le justifier ? ou comment faire autrement ? (première question)
Mon idée, c'est de supposer $\theta_1$ constant et $\theta_0$ variable dès le départ. Ou l'inverse, cela reviendrait au même. Mais en supposant $\theta_1$ constant, une fois que j'ai trouvé la relation entre les deux, j'ai $\theta_0$ constant ! Cette méthode ne me parait pas claire. Est-ce que elles ne sont pas variables de la même façon ?

Ma deuxième question concerne le caractère global ou local du minimum trouvé.
Je crois qu'il faut montrer que la fonction est convexe. Je me suis donc lancé dans le calcul de la matrice hessienne de f.
De même que précédemment, j'ai introduit des dérivées partielles sans savoir si cela avait un sens.

J'obtiens :
$\displaystyle \nabla^2 f(\theta_0, \theta_1) =
2 \sum_{i=1}^n \begin{pmatrix} a_i^2 & a_i b_i \\ a_i b_i & b_i^2 \end{pmatrix}
-2 \sum_{i=1}^n u_i \begin{pmatrix} \frac{\partial^2 \theta_1}{\partial \theta_0^2} x_i & 0 \\
0 & \frac{\partial^2 \theta_0}{\partial \theta_1^2} \end{pmatrix}
$

$ u_i = y_i - \theta_0 - \theta_1 x_i $
$ a_i = \frac{\partial u_i}{\partial \theta_0 }$
$ b_i = \frac{\partial u_i}{\partial \theta_1 }$
Il est clair (je crois) que $ \frac{\partial^2 \theta_0}{\partial \theta_1 \theta_0} =0 $ et $ \frac{\partial^2 \theta_1}{\partial \theta_1 \theta_0} =0 $

J'aimerais bien annuler la matrice de droite... :-D Alors je pourrais démontrer que la hessienne est semi-définie positive :
$ \begin{pmatrix} c & d \end{pmatrix}
\begin{pmatrix} a_i^2 & a_i b_i \\ a_i b_i & b_i^2 \end{pmatrix}
\begin{pmatrix} c \\ d \end{pmatrix}
= (c a_i+d b_i)^2$
Alors la fonction serait convexe et... je ne serais pas loin de montrer l'unicité de la solution. (Je viens de me rendre compte que ça doit être plus compliqué. Mais ça m'étonnerait qu'il y ait un "plat" avec une infinité de minima.)

La tentation est forte d'utiliser la relation $\theta_0 = \bar y_n - \theta_1 \bar x_n $ pour annuler les dérivées partielles. Mais, je veux prouver la convexité sur $\mathbb{R}^2$. Je ne sais pas si c'est une bonne intuition, ou si c'est n'importe quoi !

Pour résumer, j'ai des idées, mais j'ai besoin d'aide pour aboutir à quelque chose de rigoureux. J'espère que cet exercice vous intéresse.

Réponses

  • Bonjour.

    Je ne comprends rien à ce que tu as écrit (les dérivées partielles de f par rapport à $\theta_0$ et $\theta_1$ s'écrivent facilement, pas besoin de tout ce fatras. mais voici une méthode qu'on faisait en terminale ES autrefois (ou en BTS) :
    On cherche à minimiser en $\theta_0$ indépendamment de la valeur de $\theta_1$. On trouve une relation qui s'exprime à partir des $x_i$ et $y_i$ par une formule qui donne $\theta_0$ en fonction de $\theta_1$. Donc en remplaçant $\theta_0$ par cette expression dans f, et minimisant en $\theta_1$, on obtiendra le minimum (géométriquement, ça revient à choisir, pour une direction donnée, la droite qui passe par le centre du nuage de points, puis on minimise en fonction de la direction). On a seulement utilisé deux fois une dérivée facile.
    Le calcul à deux variables, avec recherche de dérivées partielles nulles redonne quasiment les mêmes calculs.

    Cordialement.
  • Merci de votre réponse.
    gerard0 a écrit:
    On cherche à minimiser en $\theta_0$ indépendamment de la valeur de $\theta_1$

    Je ne doute pas que votre méthode marche. C'est clair.
    Je crois que c'est ce que j'ai fait, bien que je ne suivais pas de méthode précise au départ. Toujours est-il que le calcul se fait bien en deux temps.
    Au moins, ça me rassure : ce calcul en deux temps est "standard". Et je comprends l'interprétation.

    Je veux souligner que calculer les dérivées partielles en considérant $\theta_0$ et $\theta_1$ indépendantes ne suffit pas pour résoudre le problème. Je me demande si cela vous parait évident ou si vous n'en êtes pas conscient. Peut-être encore, vous vous en fichez.

    Je reprends.
    $\displaystyle f(\theta_0 , \theta_1) = \sum_{i=1}^n (y_i - \theta_0 - \theta_1.x_i )^2$

    $\displaystyle \nabla f(\theta_0 , \theta_1) =
    -2 \sum_{i=1}^n
    \begin{pmatrix} y_i - \theta_0 - \theta_1.x_i \\
    x_i (y_i - \theta_0 - \theta_1.x_i) \end{pmatrix} $
    $\theta_0$ et $\theta_1$ indépendantes

    à partir de $\nabla f(\theta_0 , \theta_1) = (0,0) $ , j'obtiens seulement : $\displaystyle \theta_0 = \bar y_n - \theta_1 \bar x_n $

    Pour trouver le résultat désiré, je dois repartir du début, en éliminant $\theta_0$ (ou $\theta_1$ ) :

    $\displaystyle f(\theta_0 , \theta_1) = g(\theta_1) = \sum_{i=1}^n \Big( (y_i - \bar y_n) - \theta_1(x_i - \bar x_n) \Big)^2$

    $\displaystyle \dfrac{d g}{d \theta_1}( \theta_1) = -2 \sum_{i=1}^n \Big( (x_i - \bar x_n) \big( (y_i - \bar y_n) - \theta_1(x_i - \bar x_n) \big) \Big) $
    Effectivement, c'est plus clair.
    Remarquez bien que je n'aurais pas pu simplement remplacer $\theta_0 $ dans $ \nabla f(\theta_0 , \theta_1) $. (Il manque le facteur avec la dérivée partielle de mon fatras...)

    ça me surprend de devoir faire 2 étapes. Et ça doit rendre le calcul avec n variables plus compliqué (n étapes?).

    Ce qui m'a surpris aussi, c'est que l'utilisation des dérivées partielles dès le départ n'est pas équivalente. (cf. premier message) Mais je comprends mieux pourquoi : pourquoi devrais-je définir deux fonctions ? ( $\theta_1 \to \bar y_n - \theta_1 \bar x_n $ et $ \theta_0 \to \frac{\bar y_n - \theta_0 }{ \bar x_n }$ )

    Deuxième remarque. Rien ne me prouve à ce stade que c'est la seule solution de $\nabla f(\theta_0 , \theta_1) = (0,0) $ et que c'est le minimum global.
  • Ton truc est assommant, alors que si tu consideres les 3 vecteurs de $R^n$ qui sont $\vec{y}=(y_1,\ldots,y_n),\ \vec{x}=(x_1,\ldots,x_n),\ \vec{1}=(1,\ldots,1),$ et le sous espace vectoriel $F$ de $\R^n$ de dimension 2 engendre par $\vec{x}$ et $\vec{1}=(1,\ldots,1)$, (donc l'ensemble des vecteurs de la forme $\theta_0\vec{1}+\theta_1\vec{x}$) alors on te demande de trouver la projection orthogonale $\vec{y}_0$ de $\vec{y}$ sur $F$, cad ce qui minimise $$(\theta_0,\theta_1)\mapsto \|\vec{y}-\theta_0\vec{1}-\theta_1\vec{x}\|^2.$$ Le truc est de voir qu'alors $\vec{y}-\vec{y_0}$ doit etre perpendiculaire a $F$, ce qui se resume a etre perpendiculaire a $\vec{x}$ et aussi a $\vec{1}$. Ceci se traduit par les deux equations pour les $\theta_0$ et $\theta_1$ qui definissent $y_0=\theta_0\vec{1}+\theta_1\vec{x}$ cad par l'annulation des deux produits scalaires suivants:
    $$\langle \vec{y}-\theta_0\vec{1}-\theta_1\vec{x},\vec{x}\rangle=0, \langle \vec{y}-\theta_0\vec{1}-\theta_1\vec{x},\vec{1}\rangle=0$$. Ceci se traduit encore par un systeme lineaire classique de deux equations a deux inconnues $\theta_0,\theta_1$:



    $$\theta_0\langle \vec{1},\vec{x}\rangle+\theta_1\langle \vec{x},\vec{x}\rangle=\langle \vec{y},\vec{x}\rangle,\ \ \theta_0\langle \vec{1},\vec{1}\rangle+\theta_1\langle \vec{x},\vec{1}\rangle=\langle \vec{y},\vec{1}\rangle$$ ou si tu preferes



    $$\theta_0(x_1+\cdots+x_n)+\theta_1(x_1^2+\cdots+x_n^2)=y_1x_1+\cdots+y_nx_n,\ \ \
    \theta_0 n+\theta_1(x_1+\cdots+x_n)=y_1+\cdots+y_n.$$

    Si tu tiens a conserver le formalisme des derivees partielles, du gradient et du hessien, les deux composantes du gradient sont
    $$\langle \vec{y}-\theta_0\vec{1}-\theta_1\vec{x},\vec{x}\rangle, \ \ \ \langle \vec{y}-\theta_0\vec{1}-\theta_1\vec{x},\vec{1}\rangle$$ et la matrice hessienne est $$\left[\begin{array}{cc}n& x_1+\cdots+x_n\\x_1+\cdots+x_n&x_1^2+\cdots+x_n^2\end{array}\right]$$ qui est definie positive a cause de l'inegalite de Cauchy -Schwarz.
  • Ah !

    Je viens de comprendre que Lologm n'arrivait pas à résoudre un bête système de deux équations linéaires à 2 inconnues, parce que, sous prétexte que les variables sont indépendantes, il n'était pas capable de substituer (et me reprochait en fait de le faire) :
    à partir de $\nabla f(\theta_0 , \theta_1) = (0,0) $ , j'obtiens seulement : $\displaystyle \theta_0 = \bar y_n - \theta_1 \bar x_n $
    Ben non, on n'obtient pas que ça, on substitue dans l'autre équation et on a $\theta_1$ !!

    Lologm, les variables sont indépendantes. les solutions sont nécessairement liées entre elles, comme tout coupe de réel.

    Cordialement.
  • @ P : Merci beaucoup. C'est très intéressant. Je dois réfléchir sur le sujet.

    @ gerard0 : Je n'aime pas beaucoup votre ton. S'il vous plait Professeur, veuillez prouver que j'ai tort.

    $\displaystyle \nabla f(\theta_0 , \theta_1) =
    -2 \sum_{i=1}^n
    \begin{pmatrix} (y_i - \theta_0 - \theta_1.x_i ) \\
    x_i (y_i - \theta_0 - \theta_1.x_i ) \end{pmatrix}
    = \begin{pmatrix} 0 \\ 0 \end{pmatrix} $

    La première ligne donne :
    $\displaystyle \theta_0 = \bar y_n - \theta_1 \bar x_n $

    En substituant dans la deuxième ligne, je trouve :
    $\displaystyle \theta_1 = \frac{ \sum_{i=1}^n x_i ( y_i - \bar y_n) }{ \sum_{i=1}^n x_i (x_i - \bar x_n) }$ , ce qui n'est pas le bon résultat.

    Avec votre méthode précédente, je trouve la même chose qu'avec mon fatras :
    $\displaystyle \theta_1 = \frac{\sum_{i=1}^n (x_i - \bar x_n)(y_i - \bar y_n) }{ \sum_{i=1}^n (x_i - \bar x_n)^2} $

    Peut-être que je me suis trompé. Peut-être que je suis un imbécile. Mais si je ne me suis pas trompé, vous vous êtes trompé au moins une fois.
  • Ben .. tu trouves bien un résultat !! Tu disais que tu n'avais qu'une équation !!

    Et tu trouves le bon résultat ... écrit autrement.

    Si tu ne veux pas être pris pour un incapable, explique ce qui t'arrive (ici "pas la bonne formule"), et pas d'autres choses.

    Cordialement.
  • Nième rebondissement.

    @ P
    J'obtiens la "bonne" formule avec les produits scalaires.
    Au passage, je crois qu'il manque un facteur 2 pour le gradient. Car, $(<u|u>)' = 2<u|u'>$
    Je n'ai pas encore tout assimilé, mais encore merci.

    @ gerard0 et @ P
    Mais en faisant ces calculs, j'ai trouvé que gerard0 a raison...

    Si au lieu de substituer on fait " Ligne 2 $- \bar x_n \times$ Ligne 1 " , on obtient la formule que j'attends :
    $ \displaystyle \theta_1 = \frac{\sum_{i=1}^n (x_i - \bar x_n)(y_i - \bar y_n) }{ \sum_{i=1}^n (x_i - \bar x_n)^2} $

    Alors peut-être les deux expressions sont égales... ça me rend perplexe. Je vais encore vérifier

    Après avoir lu la réponse de gerard0 :
    Merci quand même. Mais votre mépris est insupportable. J'espère vraiment que vous n'êtes pas professeur.

    En tout cas, je comprends à peu près mon erreur du départ avec les différentiels. Retenons le bon côté des choses.
  • T'as tort de te friter avec gerard0, regarde un peu ses messages et tu verras les immenses services qu'il rend au forum, en particulier a ceux qui sont comme toi en panne en statistique. Tant pis pour leur ego si ce merveilleux professeur est du genre qui -aime -bien- chatie -bien.
Connectez-vous ou Inscrivez-vous pour répondre.