Combinaison linéaire de fonctions

Accueil

Droite des moindres carrés

Régression selon le critère des moindres carrés

2 Application au lissage polynomial

1 Combinaison linéaire de fonctions

2 Application au lissage polynomial

3 Droite des moindres carrés

4 Parabole des moindres carrés

5 Polynôme du troisième degré

6 Lissage Savitzky et Golay

7 Régression multiple

8 Régression plane

9 Régression multiple du 10ème degré

 

10 Régression d'une fonction

 


  Dans cette page, un programme de lissage polynomial télé-chargeable est proposé sous 3 versions :
- la première affiche valeurs lissées et paramètres du polynôme
- la seconde, applicable aux données accompagnées de leur erreur statistique, calcul l'erreur sur chaque point lissé
- la troisième fournit en plus l'erreur sur les coefficients du polynôme.
  Les trois sont accompagnées de démonstrations.
  Les données sont introduites soit au clavier soit par fichiers


  En utilisant le polynôme du énième degré :

le système d'équations devient :

chaque somme portant sur les m valeurs de x .

  La résolution du système par inversion de matrice donne les n+1 coefficients du polynôme du nième degré satisfaisant le critère des moindres carrés.

  Contrairement aux méthodes alternatives présentées dans les pages suivantes, celle-ci est est bien plus générale. Elle reste applicables :
- pour toutes distributions des abscisses
- elle délivre des valeurs lissées sur toute l'étendue des données
- elle fourni les paramètres du polynôme de lissage et donc de ses dérivées.

  Sa seule difficulté réside dans l'inversion d'une matrice dont les termes présentent une très large échelle de valeurs. En deçà du 10eme degré, la double précision suffit généralement.

  Quelques exemples, tirés des démos du programme téléchargeable, attesteront les performances du procédé.

  Dans ces démos, les abscisses des points sont toujours équidistantes, cela facilite la programmation sans que ce soit une obligation.


Lissage d'un polynôme du 5eme degré

Le premier test porte sur 41 points de la fonction du 5eme degré :

  Ici les abscisses sont régulièrement espacées de 0 à 4 . Les ordonnées correspondant exactement aux valeurs nominales, la courbe de régression du 5ème degré passe théoriquement sur tous les points. 

  Dans ce test de fiabilité, utilisant un polynôme de régression du 5àme degré pour décrire un polynôme de même degré, les abscisses restent inchangées et tous les coefficients du polynôme sont restitués à 10-9 près.

Lissage d'un polynôme du 8eme degré

  En passant au 8ème degré le même test se traduit par une altération sensible des abscisses.

  L'erreur relative sur les coefficients du polynôme dépasse 10-6 .
  Le cumule des erreurs de calcul lors de l'inversion d'une matrice 8x8 en est responsable.
  Pour conserver la précision lors du traitement des fonctions de degré élevé, s'étendant sur un large domaine de valeurs, l'inversion de matrice en multi-précision s'avérerait indispensable.

Dérivation d'une sinusoïde exacte

  On connaît les dérivées successives  de  

  En dérivant 4 fois le polynôme de régression de sin x on obtient effectivement une courbe superposable à la première, à l'exception des deux extrémités. La concordance reste remarquable pour une quatrième dérivée.

Dérivation d'une sinusoïde "expérimentale"

  En fait, une courbe expérimentale est toujours entachée d'erreurs statistiques. Dans cet exemple elles sont simulée à l'aide de l'algorithme Box-Muller. Dès le seconde dérivée apparaissent d'irrémédiables déformations uniquement dues à la nature aléatoire des écarts aux valeurs théoriques de la sinusoïde initiale.

Lissage d'un spectre

  Le 5eme exemple correspond à la simulation d'une application courante : le lissage d'un spectre. Les contenus des canaux, affectés d'erreurs statistiques ( écart type égal à la racine carrée du nombre enregistré ), révèle la présence de deux pics gaussiens, d'énergies voisines, superposé à un fond continu moyen de 200 .

  L'usage du 10eme degré s'avère indispensable à la description du minimum entre les deux pics, en revanche apparaissent des pics satellites sans réalité physique. La recherche des zéros de la dérivée permettrait une localisation précise des maxima, les zéro de la dérivée seconde définiraient précisément les écarts types des deux pics.

Lissage d'une courbe de température

    Le dernier exemple simule la température d'un objet dont la température moyenne évolue en fonction du temps.

  Une régression linéaire confirme objectivement un refroidissement observable sur le graphique.

  Les lissages utilisant des polynômes de degré supérieurs, plus sensibles aux petites variations, conduisent à des inversions de pentes en fonction du degré du polynôme choisi, entre autres sur les derniers points. 

3eme degré 5eme degré 7eme degré 9eme degré

  Le programme comporte un générateur de données, somme de 4 sinusoïdes , chacune des valeurs étant affectée d'une erreur pseudo aléatoire. La partie traitement de données recherche un polynôme de régression, elle ignore donc la loi gouvernant les fluctuations. Si, au contraire, cette seconde partie du programme avait été conçue pour retrouver les paramètres des 4 fonctions sinus, l'extrapolation serait fiable sur une durée d'autant plus longue que l'erreurs aléatoires surajoutées seraient petites.

  Un problème beaucoup plus complexe se pose à propos de l'évolution de la température moyenne du globe : sommes-nous en période de réchauffement,  oui ou non ?
  La réponse dépend du laps de temps considéré pour évaluer cette moyenne : siècles, millénaires, millions ou milliards d'années.
  A l'échelle des centaines de millénaires, la précession des équinoxes, les modifications de l'orbite terrestre ... , sont responsables des variations climatiques régulières. Les astronomes expliquent parfaitement la périodicité des glaciations. La prochaine est prévisible.
  A l'échelle du siècle, de trop nombreux de facteurs méconnus conjuguent leurs effets, aucune extrapolation climatologique à moyen terme n'est crédible.

  Cette démo souligne seulement l'ambiguïté des extrapolations portant sur des données erratiques, autant en climatologie qu'en économie ou toute autre discipline. 
  Les deux premiers exemples du programme suivant, qui intègre la propagation d'erreur dans la régression  polynomiale, conduisent à la même conclusion.


Regrs_Pol

  Ces 6 tests donnent un aperçu des possibilités de Regrs_Pol. Il permet de traiter tout résultat expérimental représenté par une fonction d'une seule variable.
  Les données seront introduites soit au clavier, soit sous forme d'un fichier,(Fich_1.dat à Fich_5.dat ), placé dans le même dossier que Regrs_Pol.
  Ainsi le fichier du spectre du 5eme test comporte :
- le titre, entre guillemets
- le nombre de points, le degré du polynôme ( 1 à 10 ), l'ordre de dérivation ( 0 à 5 )
- les 2 coordonnées et l'erreur sur y des points successifs :

" DEMO: Spectre avec écart type sur fond continu"
90,10,0
1,184
2,189
3,209
...

  Il sera appelé à partir du menu Edition

  Après exécution, les coefficients du polynôme de régression seront enregistrés dans le fichier  Poly_0.dat mais aussi dans le fichier Poly_x.dat  choisi par l'utilisateur. 


Télécharger Rgrs_Pol

  Si ce télé-chargement vous pose quelques problème, consultez d'abord le mode opératoire détaillé.

  Ce fichier est auto extractible, après chargement dans le dossier de votre choix son exécution ouvrira cette fenêtre.

  En cliquant directement   "Décompresser" vous  l'installerez dans votre dossier "Program Files" (ou dans celui dont vous indiquerez l'adresse).

Le dossier Rgrs_Pol contiendra :
- l'exécutable Rgrs_Pol.exe et un raccourci ( orientant seulement vers C:\Program Files )
- 1 fichier de données Fich_0.dat
- VB5FR.DLL et MSVBVM50.DLL


Sous programme RGRS_POL

  Mieux que d'utiliser Rrgs_Pol il sera préférable de copier-coller le sous-programme RGRS_POL dans votre application, il déterminera les paramètres du polynôme de régression à partir de vos données.

RGRS_POL Nbr_Pt, X(), Y(), Degre, Poly()

où :
- Nbr_Pt  est le nombre de points définissant la fonction
- X() , la suite des abscisses, équidistantes ou non, ordonnées ou nom
- Y(),  la suite des ordonnées, dans le même ordre
- Degré  le degré du polynôme de régression choisi

après exécution, Poly() contiendra les paramètres du polynôme de régression

  Des tests effectués sur des valeurs établies à partir de polynômes définis, attestent les performances de ce sous-programme. Avec une faible dispersion de abscisses (entre -2 et +2 ) les paramètres d'un polynôme du 10 eme degré seront restitué avec 9 ou 10 décimales exactes, en revanche si le domaine s'élargit il sera prudent de se limiter aux degrés inférieurs.

  Pour accéder simultanément aux grandes valeurs de X et aux degrés supérieurs, le recours aux calculs en multi précision deviendrait inéluctable. La matrice du haut de page en donne clairement la raison , n étant le degré du polynôme, son premier terme croît rapidement pour les grandes valeurs de X.


Propagation d'erreur sur les valeurs lissées

  Lorsque cette opération de lissage s'effectue sur une série de données affectées d'erreurs statistiques connues il convient alors de calculer leurs répercussions sur les résultats finaux. L'inversion de matrice, entre autres, interdit l'emploi de la méthode  classique du calcul de propagation d'erreur. En revanche, une méthode alternative, décrite dans d'autres pages, s'applique assez facilement puisque sa partie essentielle demande seulement une vingtaine de lignes de programmation supplémentaires ( en dehors de la gestion des nouvelles données ).

  Le procédé utilisé dans " Rgrs_Pol_PE " consiste à remplacer les dérivées partielles de la méthode classique par des différences finies. Sa démonstration et sa fiabilité sont détaillées dans les pages consacrées à la propagation d'erreur.

  L'erreur sur une mesure s'évalue de diverses façons, le recours à la méthode analytique est toujours préférable quand elle est applicable. Si non, une autre solution consiste à multiplier le nombres de mesures, soit expérimentalement soit par simulation, afin d'établir une moyenne des résultats et d'accéder à l'écart type. L'erreurs ainsi définie peut constituer un test de fiabilité pour des opérations futures réalisées dans les mêmes conditions expérimentales.

  Il est des cas où la série de mesures est unique et non reproductible : si l'écart type de chacune des mesures est connu, le programme Rgrs_Pol_PE (  Régressions Polynomiale et Propagation d'Erreur ) s'avèrera particulièrement adapté.

  Comme toute application statistique il conviendra de le manier précautionneusement, l'affichage des marges d'erreur incitera l'utilisateur à la prudence.

La première démonstration en est l'illustration
  Elle simule 50 relevés périodiques de la température moyenne d'un objet :
- la droite horizontale verte représente cette référence constante,
- les point et les barres d'erreur bleus correspondent aux températures relevées et aux incertitudes sur leurs mesures, sigma = 2°  (erreur relativement importante, mais il s'agit d'une moyenne difficile à évaluer)
- la droite de régression et les erreurs calculées  figurent en rouge.

  Le lissage améliore la précision de chaque pointé d'un facteur 4 à 5.
  La droite de régression traduirait un réchauffement, mais avec un grande incertitude puisque, opérant sur des écarts types, elle a environ 2 chances sur 3 de s'inscrire dans la zone hachurée en rouge.
  Si cette application portait sur des relevés anciens, impossible à corroborer, on en conclurait prudemment que ce réchauffement est seulement plus probable qu'un refroidissement mais que la dispersion des mesures interdit toute interprétation péremptoire.
  Au contraire, cette simulation est renouvelable dans les mêmes conditions, sur de nouvelles mesures virtuelles, affectées de la même imprécision.

 

  Ce second essais confirme les craintes suscitées par le premier.
  Certes, le modèle est simpliste, mais aucun algorithme ne saura jamais corriger des erreurs statistiques. Intuitivement, il est à craindre qu'un modèle plus sophistiqué, multipliant les recours aux variables aléatoires, conduirait à accroître l'erreur statistique sur le résultat final.

  Cette démo, se réfère-t-elle à la polémique sur le réchauffement global ? Pas seulement, elle ambitionne de dénoncer toute exploitation  préconçue des statistiques.

  Les 4 autres démonstrations simulent des mesures sur radio-isotopes, décroissance et spectrométrie. Par nature, les mesures quantitatives y sont purement stochastiques, leur interprétation exige donc un traitement statistique rigoureux.

  La 2ème démonstration, simulation de décroissance des deux radio isotopes, montre la nécessite d'afficher le polynôme d'interpolation avec 15 décimales.

  Quand  x s'étend de 0 à 100 , les 15 décimales s'avèrent indispensables pour transcrire le terme en X^10 .

  La 5ème démonstration montre l'intérêt du lissage sur une fraction de spectre relevée dans un cas défavorable : deux pics rapprochés superposé à une fond continu important.

  Même dans ces circonstances difficiles il devient possible, à partir du nuage de points bleus, de dégager une courbe lissée, rouge.
  Dans ce test de fiabilité la courbe idéale est accessible, on vérifie qu'elle s'inscrit dans le domaine des écart types.

 

  La courbe verte s'inscrit effectivement dans la région hachurée en rouge, chaque segment vertical représentant l'écart type sur chacune des valeurs issues du lissage..

Télécharger Rgrs_Pol_PE

  Cette version est téléchargeable de la même façon que Rgrs_Pol, mais là aussi il sera préférable d'incorporer le sous-programme "Public Sub PROP_ERR" ou sa transcription dans votre propre programme de traitement de données.

Télécharger Rgrs_Pol_PE

  L'aide décrit les différentes fonctions du menu.


Propagation d'erreur sur les coefficients

  Les calculs de propagation des erreurs sur les coefficients peuvent se mener parallèlement à ceux des valeurs lissées, en appliquant le même procédé.

  Bien que les erreurs statistiques sur les coefficients soient aussi fiables que celles sur les valeurs lissées, leur exploitation sera limitée.

  Cette démo analyse 12 mesures "expérimentales" avec erreur statistique de +/- 2 % sur l'ordonnées.

  Comme dans les précédentes versions de Rgrs_Pol , chaque démonstration est une simulation utilisant des nombres pseudo-aléatoires : des exécutions successives d'une même démo restent statistiquement comparables mais portent sur des échantillonnages différents. Ceci permet de vérifier les erreurs calculées par une étude statistique.

  Dans la mesure où il est certain que la relation entre  X et Y est linéaire, les erreurs calculées sur les paramètres sont à la fois justes et exploitables. En revanches, si la fonction reliant Y à X ne peut se décrire par  développement limité à la 10ème puissance de X  les erreurs sur les paramètres resteront justes mais leur exploitation deviendrait hasardeuse.

  La démo N°4 s'applique sur une alternance d'une sinusoïde. Un polynôme du 5ème degré suffit à la représenter de façon satisfaisants bien que l'erreur sur le coefficient de X2 soit supérieure au coefficient lui-même. D'une simulation à la suivante sa valeur évolue très largement au point de changer de signe.

  Ceci montre bien que dans ces conditions, la fiabilité des coefficients se limite à l'échantillonnage considéré.

  Encore une fois, les coefficients et  leurs erreurs statistiques ne sont exploitables que pour ajuster les paramètres d'un expérimentation obéissant à une loi polynomiale. Dans toutes autres circonstances seules les valeurs lissées et les erreurs qui s'y attachent restent significatives.


Extraire la page pour l'enregistrer ou l'imprimer