Régressions (lineaires,exponentielles,cubiques ...)

Description

Il s'agit d'un programme qui prend en donnees des points (des echantillons) et qui
calcule les courbes qui s'approchent le mieux de l'ensemble de points.

Le "mieux" est a comprendre au sens des moindres carres de Gauss, ie minimisation quadratique des residus
(les erreurs, ou les ecarts en les points et la courbe)
Soit le systeme matriciel A.X=B (avec A non necessairement carree), on a plus d'equations que d'inconnues,
ils nous faut trouver le Xmin qui minimise ||A.X-B||
(en fait cela revient a considerer A.X=B+Epsilon, et on cherche X tel que Epsilon soit de norme la plus petite.
La methode des moindres carres de Gauss nous dit que X verifie le systeme carre suivant :
(At.A).X=(At.B) avec At la transposee de la matrice A
Ce systeme se resoud avec un pivot de Gauss classique.

Pour faire des regressions (non-lineaires) il 'suffit' d'invoquer l'iteration de Newton :
l'algorithme de Newton consiste a prendre la tangente au point courant, et d'en prendre
l'intersection avec l'axe des abcisses, et de considerer cette intersection comme le point
courant, il suffit apres d'iterer, on converge vers un zero de la fonction (sous certaines
conditions bien 'merdique' (excusez-moi ce langage) qui donne d'ailleurs lieu a des tres jolies
fractales ... mais c'est une autre histoire)
Bon ici le probleme c'est que l'on est a plusieurs variables, donc il faut generaliser ce principe.
La tangente est representee par une matrice , ect...

Avec ces deux methodes combinees on peut faire ce programme, avec une tres jolies interfaces graphiques.
Voici les regressions possibles (dans l'ordre des icones) :
  • constante [y=Cte]
  • droite [y=a.x+b]
  • parabole [y=a.x^2+b.x+c]
  • polynome de degre 3 [y=a.x^3+b.x^3+c.x+d]
  • exponentielle [y=a.e^(b.x)+c]
  • logarithme neperien [y=a.ln(x+b)+c]
  • hyperbole [y=a/(x+b)+c]
  • sinusoide [y=A.sin(w.x+phi)+k]
  • exponentielle (pente a l'origine seule degre de liberte) [y=50*(1-e^(-alpha.x))]
  • puissance [y=K.x^alpha]
  • droite passant par l'origine [y=a.x]
  • loi Gaussienne (ou loi normale) [y=LoiGaussienne(m,s)]


Le programme permet aussi d'avoir la distribution des residus :
il y a l'ecrat type (racine carree de la variance qui est elle-meme la somme des carres des ecarts)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.