Inscription / Connexion Nouveau Sujet
Niveau Licence Maths 1e ann
Partager :

Moindres carrés Matrice

Posté par
Mathildou
14-04-14 à 08:18

Bonjour,
Je ne trouve pas la méthode de calcul des moindres carrés sur une matrice.
Quelqu'un pourrait -il me donner un exemple de résolution sur une matrice ?

(2 1)
(5 2)
(7 3)
(8 3)

par exemple ?

Merci d'avance

Posté par
verdurin
re : Moindres carrés Matrice 14-04-14 à 09:38

Bonjour,
à ma connaissance la méthode des moindres carrés sert à déterminer l'ajustement entre un modèle théorique et des résultats empiriques.
Je ne comprend donc pas le sens de ta question.

Posté par
Mathildou
re : Moindres carrés Matrice 14-04-14 à 09:42

enfait c'est, si je comprends mieux, le systeme d'équation :

A(2 1)(5 2)(7 3)
B(8 3)

AX=B

on devrait pouvoir faire un truc de moindres carrés

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 09:45

Bonjour
qu'entends-tu par "calcul des moindres carrés sur une matrice" ? tu cherches à en faire quoi, de cette matrice ?

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 09:49

post croisés
si A a trois lignes et 2 colonnes, tu peux la multiplier par une X qui aurait 2 lignes et n colonnes, et le résultat aura 3 lignes et n colonnes : en aucun cas ce ne sera B ...

Posté par
Mathildou
re : Moindres carrés Matrice 14-04-14 à 09:56

oui, ouais .. je sais pas du tout, je comprends absolument pas enfait. Avec un systeme qui n'a pas de solution unique on peut trouver les moindres carrés dit mon cours, c'est tout

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 10:10

Ah !

c'est quand on a un système rectangulaire AX=B, avec plus d'équations que d'inconnues : on cherche alors un vecteur X tel que la différence R = B-AX ait une norme euclidienne minimale (norme euclidienne = racine carrée de la somme des carrés des coordonnées dans la base canonique, d'où le nom de "moindres carrés")
on montre que c'est obtenu si X vérifie {}^tAAX = {}^tAB
{}^tAA, elle, est carrée.

Posté par
Mathildou
re : Moindres carrés Matrice 14-04-14 à 10:53

hum, d'accord, je pense qu'il est trop tard pour en faire un algo et tout en C pour 12h .. mais merci quand même

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 10:56

ça doit exister tout fait dans des bibliothèques de programmes en C, j'imagine

Posté par Profil Dlzlogicre : Moindres carrés Matrice 14-04-14 à 13:38

Bonjour Lafol,
La méthode des moindres carrés a été mise au point (inventée) par Gauss.
Léon1789 a indiqué un lien sur le document qui décrit tout ça.
A mon avis, le nom "moindre carrés" viendrait plutôt de ce que lorsqu'on a des mesures en surnombre la valeur la plus probable est obtenue lorsque la somme des carrés des écarts à la valeur cherchée est minimale.
Dans la pratique, on a une fonction de plusieurs variables, cette somme de carrés est minimale lorsque sa dérivée s'annule. Pour réaliser le calcul, on écrit que les dérivées partielles s'annulent et on obtient ainsi un système linéaire de N équations à N inconnues.
Je suppose que c'est cela dont parlait le cours de Mathildou.

Par ailleurs, à ma connaissance, il n'y a pas de bibliothèque en C qui résolve cela. Puisqu'il 2 étapes distinctes
1- le calcul de la fonction Somme et l'établissement des équations résultant des dérivées partielles, ça c'est des maths
2- la résolution du système linéaire. Cette seconde étape pourrait exister, mais je suis sûr que ce n'est pas le cas.

Cette méthode est naturellement très utilisée. Une application simple et très connue est la régression linéaire.      

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 14:05

un algo qui calcule transposée d'une matrice fois cette matrice, tu ne me feras pas croire que ça n'existe pas
idem pour un algo de résolution de système linéaire à matrice symétrique ....au pire il y a la méthode de Gauss....

et pour les moindres carrés en général, passer par des dérivées partielles est peu habile, ça prouve un point singulier, pas un minimum. le th des projections en dimension N où N est le nombre de données est bien plus rapide et efficace ....

Posté par
Bam
re : Moindres carrés Matrice 14-04-14 à 14:09

Bonjour,

@Dlzlogic
Il n'a jamais été question de dérivation ici (dans le cas de l'exo). On a juste un système "impossible" à résoudre car b n'appartient pas à Im(A), c'est-à-dire l'espace généré en envoyant tous les vecteurs de l'espace de départ (ou plus simplement les vecteurs de base de l'espace de départ car l'application est linéaire). Ce qu'on cherche c'est le vecteur appartenant à Im(A) qui soit le plus proche de b et par "le plus proche", on entendra celui tel que ||Ax-b||^2 soit le plus petit possible (qui minimise le carré de la norme, en l'occurrence la norme associée au produit scalaire usuel).

En réalité il s'agit juste de la projection orthogonale du vecteur b sur Im(A) et on peut prouver que x est bien le bon candidat si et seulement si {}^tAAX = {}^tAB comme le disait lafol (que je salue). Et on peut également prouver qu'il existe toujours une solution à ce système.

Je n'ai jamais codé en C mais je le ferais en deux étapes :
D'abord calculer {}^tAA et {}^tAB et par la suite résoudre ce système via une méthode traditionnelle (méthode de Gauss par exemple).
Si j'ai fait une étourderie quelque part merci de le signaler !

Bonne journée

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 14:22

quelques exemples de trucs déjà tout programmés, dans ce domaine :

Posté par Profil Dlzlogicre : Moindres carrés Matrice 14-04-14 à 14:28

@ Lafol,
Je n'ai jamais dit qu'il n'existait pas de module qui calcule des transposées et des produite de matrice en C, j'en ai même dans ma machine, pour faire des tests, mais c'est moi qui les ai écrits. Naturellement, d'autres développeurs ont certainement écrits aussi leurs modules, mais je répète, à ma connaissance il n'existe pas de bibliothèque officiellement disponible qui traite cela.

Concernant le calcul des moindres carrés, comment penses-tu qu'on calcule une régression linéaire ?  

@ Ban,
Je répète ce qu'a dit Mathildou,
"Avec un systeme qui n'a pas de solution unique on peut trouver les moindres carrés dit mon cours, c'est tout"
J'ai répondu strictement à sa question.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 14:36

déjà exposé ici Cercle des moindres carrés sans excel pour un cercle aux moindres carrés, ça s'adapte à n'importe quel modèle linéaire....

Posté par
Surb
re : Moindres carrés Matrice 14-04-14 à 14:40

Bonjour,

Citation :
....au pire il y a la méthode de Gauss....

La méthode de Gauss pour résoudre un système d'équation n'est généralement pas un bon choix... en effet le coût en opération est de l'ordre de O(n^3) (ce qui fait vite très mal )
Pour une matrice symétrique et définie positive on choisi d'habitude la méthode de Cholesky
ou, pour résoudre un système d'équations "quelconque" (il faut tout de même que la matrice associée soit inversible...) on utilise la méthode du gradient conjugué dont le coût en opération est de l'ordre O(n) et, je cite wiki:
Citation :
Toutefois, son grand intérêt pratique du point de vue du temps de calcul vient de ce qu'une initialisation astucieuse (dite « préconditionnement ») permet d'aboutir en seulement quelques passages à une estimation très proche de la solution exacte, c'est pourquoi en pratique on se borne à un nombre d'itérations bien inférieur au nombre d'inconnues.

Posté par Profil Dlzlogicre : Moindres carrés Matrice 14-04-14 à 14:41

@ Lafol,
Manifestement un développeur s'est amusé à faire des fonctions dans ce domaine. Je vais regarder.
Mais si j'avais publié la mienne, c'est pas pour ça qu'on pourrait dire qu'il existe une librairie qui fait cela.
C'est tout de même un peu dommage que ce ne soit pas du tout documenté. Par ailleurs, à première vue, ça ne me semble pas avoir été écrit par un professionnel.
Un prototype comme celui-là :
int sl_decomp_cholesky(double a[NMAX][NMAX],double r[NMAX][NMAX],int n)
est assez douteux.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 14-04-14 à 14:44

surb : c'est bien pour ça que j'ai écrit "au pire"

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:28

Eu, Merci pour vos réponses mais je n'ai pas fait cette question du coup mais je souhaite quand même savoir ce que c'est !
Mais sur un exemple concret ça donne quoi ? Par exemple, Si jai:
I: 1 2 3 4 5
Xi: -2 0 3 4 5
Yi: 0 2 4 4 3
Ils demandent la droite des moindre carrés
Et aussi les résidus..

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 14:33

ce n'est plus exactement le même problème, tu en as conscience ?

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:38

Ben oui mais je sais pas, peut être qu'après je comprendrai avec une matrice,  ça revient au même non

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:42

Dans la même matière on apprend sur les matrices et dans des annales des examens précédents ya ça :/

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 14:44

on peut le ramener au même si tu y tiens : A=\begin{pmatrix}x_1&1\\x_2&1\\...\\x_5&1\end{pmatrix}
B=\begin{pmatrix}y_1\\y_2\\...\\y_5\end{pmatrix} et on cherche X = \begin{pmatrix}a\\b\end{pmatrix} tel que AX=B ...

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 14:46

et donc on sait que le résidu ||B-AX|| sera minimum lorsque X sera solution de {}^tAAX = {}^tAB : ça te donne un système de deux équations à deux inconnues a et b ....

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:47

Voilà, donc ça revient au même...
Du coup comment trouve t on cette fichue droite et.vecteur ?

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:49

Moké et a et b correspondent à quoi ?

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 14:51

les coeffs de la droite y = ax+b qu'on voudrait passer par tous les points

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 14:52

comment on trouve la droite : en résolvant le système {}^tAAX = {}^tAB !

Posté par
Mathildou
re : Moindres carrés Matrice 15-04-14 à 14:55

D'accord.. J'aurai sûrement d'autres questions plus tard mais grand merci déjà

Posté par Profil Dlzlogicre : Moindres carrés Matrice 15-04-14 à 14:55

Bonjour,
C'est un calcul qu'il faut avoir fait au moins une fois.
Là, je vais vous détailler la méthode habituellement utilisée.
L'équation d'une droite s'écrit Y = AX + B
La méthode des moindres carrés consiste à dire que la valeur la plus probable pour les paramètres A et B est celle qui minimise la somme S=Somme((yi-Axi-B)²)
1- on développe la somme
2- on écrit que la dérivée de S par rapport à A est nulle, et la même chose pour B
3- on obtient ainsi deux équation linéaires avec pour inconnues A et B, qu'il suffit de résoudre.

Je vous laisse le faire.
Il faut bien sûr observer que on minimise le carré des différences des y (les résidus) et non pas le carré des distances de points (X;Y) à la droite.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 15:09

"méthode" qui donne un point singulier de la fonction S(a,b) sans jamais prouver que ça donne bien un minimum et pas un maximum ou un point selle ..

Autant apprendre par cœur que a = \dfrac{cov(X,Y)}{V(X)} et que b se détermine en disant que la droite de régression passe par le barycentre du nuage de points, ça gagne bien des calculs inutiles par rapport à ce sdérivées partielles

le système {}^tAAX = {}^tAB ne dit d'ailleurs pas autre chose ... on peut le voir comme moyen mnémotechnique pour à la fois la formule donnant a et le calcul des covariances et variances ...

Posté par Profil Dlzlogicre : Moindres carrés Matrice 15-04-14 à 15:18

Bonjour Lafol,
Mais je ne dis pas le contraire.
Je ne pense pas que la droite cherchée passe par le barycentre du nuage de points.
Par contre, je ne sais pas ce que signifie ton système, et naturellement, encore moins comment le résoudre.
Là, je veux bien que tu m'expliques.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 15:28

tu ne le penses peut-être pas mais pourtant c'est un résultat élémentaire qu'on apprend dans toutes les bonnes écoles ! la droite de régression passe par le point moyen !
sinon calculer {}tAA qui est une matrice deux lignes deux colonnes, je ne vais pas te faire l'injure de te l'expliquer .... pareil pour résoudre un système à deux équations et deux inconnues

Posté par Profil Dlzlogicre : Moindres carrés Matrice 15-04-14 à 15:39

Tu sais, pour moi, l'étude des matrices remonte à une cinquantaine d'années et je n'ai jamais eu l'occasion d'utiliser les matrices.
Un système de N équations à N inconnues, je sais faire.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 18:03

alors la transposée, ce n'est pas compliqué : on prend la même matrice, sauf que les anciennes lignes deviennent les nouvelles colonnes et les anciennes colonnes deviennent les nouvelles lignes

ainsi dans l'exemple proposé par Mathildou, A=\begin{pmatrix}-2&1\\0&1\\3&1\\4&1\\5&1\end{pmatrix}

 \\ {}^tA = \begin{pmatrix}-2&0&3&4&5\\1&1&1&1&1\end{pmatrix}

pour les multiplier, j'avais fait un petit dessin qui vaut mieux qu'un long discours ici : calculs matriciels

on obtient pour {}^tAA : \begin{pmatrix}(-2)^2+0^2+3^2+4^2+5^2&-2+0+3+4+5\\-2+0+3+4+5&1+1+1+1+1\end{pmatrix}=\begin{pmatrix}54&10\\10&5\end{pmatrix}

ici, B=\begin{pmatrix}0\\2\\4\\4\\3\end{pmatrix}
ainsi {}^tAB=\begin{pmatrix}0+0+12+16+15\\0+2+4+4+3\end{pmatrix}=\begin{pmatrix}43\\13\end{pmatrix}
 \\
il suffit de résoudre le système 54a+10b=43,\;  10a+5b=13 pour obtenir les coeffs a et b de la droite de régression

la deuxième équation, divisée par le nombre de points, dit exactement que la droite de régression passe par le point moyen, et elle dit exactement la même chose que \dfrac{\partial S}{\partial b}=0, si mes souvenirs sont bons.

Posté par
leon1789
re : Moindres carrés Matrice 15-04-14 à 18:48

Dizlogic

Citation :
La méthode des moindres carrés consiste à dire que la valeur la plus probable pour les paramètres A et B est celle qui minimise la somme S=Somme((yi-Axi-B)²)

Chercher la valeur des paramètres qui minimisent la somme, oui,
mais dire que c'est la valeur la plus probable est complètement idiot dans un tel contexte... Déjà dit mille fois, tu insistes lourdement pour dire des bêtises !

Posté par Profil Dlzlogicre : Moindres carrés Matrice 15-04-14 à 18:55

OK,
Oui, j'ai tout suivi, mais je n'ai rien compris.
Donc en résumé :
tAA11 = Somme(xi²)
tAA12 = Somme(xi)
tAA21 = Somme(xi)
tAA22 = N
tAB1 = Somme(xiyi)
tAB2 = Somme(yi)
C'est effectivement ce à quoi j'arrive, en sachant ce que je fais et pourquoi.

Si N est grand, par exemple 250, la transposée, c'est pas un problème, par contre les produits, ça peut être difficile.

Là tu m'as montré pour un système simple. Qu'en serait-il pour un calcul de ce type avec 12 paramètres à calculer ? Comment un calculateur moyen et même franchement pas doué comme moi, pourrait-il établir ces 2 matrices A, B, C, ...L ?.

Pour mémoire, j'ai codé la résolution d'un système en partant du calcul matriciel. Naturellement je me suis aidé de documentation. J'ai fait la comparaison en temps d'exécution avec mon outil basé sur le pivot de Gauss. En temps de calcul, y'a pas photo, la méthode que j'utilise est plus rapide.

Concernant le fait qu'une droite calculée par cette méthode passe par le centre de gravité, c'est vrai, mais comme j'ai découvert le terme "régression linéaire" une bonne dizaine d'années après la fin de mes études, on n'a pas pu me l'enseigner, et si ça avait présenté un intérêt quelconque je m'en serais souvenu. En effet, cette méthode est linéaire souvent après un changement de variable, c'est la raison pour laquelle j'évite de dire "linéaire" puisque ce n'est qu'un cas particulier.    

Posté par Profil Dlzlogicre : Moindres carrés Matrice 15-04-14 à 19:07

@ Léon,
Legendre explique très bien cela.
http://bibnum.education.fr/mathematiques/algebre/legendre-et-la-methode-des-moindres-carres

Posté par
leon1789
re : Moindres carrés Matrice 15-04-14 à 19:41

Dizlogic, as-tu compris le cadre probabiliste dans lequel se place le document que tu cites ?
Est-ce que cela à un lien avec le cadre de la discussion ici ? ... non.
Encore une fois, essaies de comprendre les hypothèses avant d'avancer les conclusions.

Posté par
lafol Moderateur
re : Moindres carrés Matrice 15-04-14 à 20:32

le terme "linéaire" ne fait pas référence à une droite, mais à un modèle où on fait des combinaisons lionéaires de fonctions données !
chercher a, b, c, d pour que y = a sin x + b cos x + c exp x + d ln x passe au mieux dans un nuage de points, ça rentre dans ce cadre

et programmer la méthode de Gauss, tu m'étonnes que ça pédale : c'est une des plus lentes.

maintenant programmer des méthodes de résolutions de systèmes linéaires, faut aimer perdre son temps : il y a tout ce qu'il faut dans les bibliothèques Fortran, et tout ce qu'il faut pour intégrer des routines fortran dans des langages évolués.

avec 12 paramètres à calculer, ça fera un système de 12 équations à 12 inconnues à résoudre, tout simplement, ça ne changera rien sur le principe.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !