|
Le programme WinReg permet d'exprimer la relation entre une variable dépendante ou "expliquée" (y) et une ou plusieurs variables indépendantes ou "explicative" (x). Les paramètres de la relation sont calculés par régression linéaire ou non linéaire, de manière à minimiser la somme des carrés des écarts pondérés (SCE) entre les valeurs observées et les valeurs calculées de y :
SCE = S [yi - f(xi, B)]² / vi
On cherche donc B pour que SCE soit minimale.
Les fonctions de régression disponibles dans la présente version sont les suivantes :
Fonction linéaire :
y = a + bx
Fonction linéaire multiple :
y = b0 + b1x1 + b2x2 + ...
Polynôme :
y = b0 + b1x + b2x2 + ...
Fraction rationnelle :
y = (p0 + p1x + p2x2 + ...) / (1 + q1x + q2x2 + ...)
Somme d'exponentielles décroissantes :
y = Ymin + A1exp(-a1x) + A2exp(-a2x) + ...
Exponentielle croissante :
y = Ymin + A[1 - exp(-kx)]
Exponentielle + linéaire :
y = A[1 - exp(-kx)] + Bx
Fonction puissance :
y = Axn
Equation de Michaelis :
y = Ymaxx / (Km + x)
Equation intégrée de Michaelis :
y = H {s0 - Km W[s0 / Km
exp(s0 / Km - ks e0 t)]}
où W est la fonction de Lambert (inverse de xex)
Equation de Hill :
y = Ymaxxn / (Kn + xn)
Fonctions logistique :
y = A + (B - A) / [1 + exp(-ax + b)]
et logistique généralisée :
y = A + (B - A) / [1 + exp(-ax + b)]n
Courbe de titrage acide/base :
y = A + (B - A) / (1 + 10pKa - x)
WinReg utilise une interface multidocuments (MDI) de type Excel. La fenêtre principale peut contenir plusieurs feuilles, qui peuvent être de 3 types :
Ces feuilles contiennent les données qui feront l'objet des calculs de régression et des représentations graphiques. Pour pouvoir être prises en compte par les options de calcul et de graphisme, ces données doivent être organisées de la manière suivante :
Chaque colonne correspond à une variable. La première colonne représente la variable indépendante (x). Les autres colonnes représentent les variables dépendantes (y). Il peut y avoir plusieurs variables dépendantes, toutes relatives à la même variable indépendante. Ceci permet au logiciel de traiter simultanément plusieurs courbes.
Chaque fois que vous créez une nouvelle feuille, ou que vous lisez un fichier, le programme considère qu'il s'agit d'une feuille de données.
Les feuilles de données peuvent être lues dans des fichiers ayant l'un des formats suivants :
Il s'agit d'un fichier ASCII dont la structure est la suivante :
Ces fichiers ont l'extension *.DAT par défaut. Les données manquantes y sont représentées par le code 999999999 (neuf 9 !). Ce code peut être changé à l'aide du menu Options.
Ces fichiers ont l'extension *.XLS par défaut.
Il s'agit d'un fichier ASCII dont la structure correspond exactement au texte affiché dans la feuille de calcul. Par défaut, les colonnes sont séparées par des caractères de tabulation (code ASCII 9) ; toutefois ce caractère peut être changé lors de l'enregistrement du fichier (voir Menu "Fichier / Enregistrer"). Les fichiers texte ont l'extension *.TXT par défaut.
Ces feuilles contiennent les résultats d'un calcul de régression et sont créées automatiquement par WinReg en réponse à l'activation de la commande "Régression" (F6).
Chaque graphique est tracé dans une nouvelle feuille que le programme crée automatiquement en réponse à l'activation de la commande "Tracer" (F8).
Remarque : Il est possible de transférer du texte entre des feuilles de données ou de résultats par l'intermédiaire du presse-papiers. En revanche, il n'est pas possible de copier des graphiques dans des feuilles de données ou de résultats.
Le schéma suivant représente l'arbre des menus du programme WinReg :
Pour lancer une option, cliquez sur son nom ou bien pressez la touche Alt et la lettre soulignée dans le nom de l'option (p.ex. Alt+F pour l'option "Fichier"). Les options où figurent une touche de fonction (F1, F2...) peuvent être lancées directement en pressant cette touche.
Cette option ouvre une nouvelle feuille de calcul permettant d'entrer de nouvelles données.
Cette option permet de lire des données stockées dans un fichier au format "WinReg", "Excel 4" ou "Texte". Dans ce dernier cas, vous devrez indiquer le caractère utilisé pour séparer les colonnes (par défaut, il s'agit du caractère de tabulation).
Cette option ferme la feuille de calcul active. Les données correspondantes sont effacées de la mémoire. Il est donc conseillé de sauvegarder avant d'utiliser cette option.
Cette option sauvegarde les données de la feuille active dans un fichier.
Les tableaux peuvent être sauvegardés dans les formats WinReg, Excel ou Texte, comme discuté précédemment, ainsi qu'en HTML ou LaTeX. Dans ces derniers cas :
Les graphiques peuvent être sauvegardés dans l'un des formats suivants :
Cette option imprime la feuille active.
Lorsque cette option est cochée, seule la partie sélectionnée de la feuille de calcul est imprimée.
Cette option affiche une boîte de dialogue permettant de définir l'aspect de la page imprimée.
Cette option appelle la boîte de dialogue Windows permettant de configurer l'imprimante.
Cette option ferme le programme WinReg. Une confirmation vous sera demandée pour éviter la perte des données.
Cette option transfère le contenu de la cellule active ou du bloc sélectionné dans le presse-papiers de Windows.
Cette option copie le contenu de la cellule active ou du bloc sélectionné dans le presse-papiers de Windows.
Cette option colle le contenu du presse-papiers au niveau de la cellule active. Elle peut être utilisée pour transférer des données en provenance d'un autre logiciel. Dans ce cas, les colonnes doivent être séparées par des tabulations.
Remarques :
Cette option efface le contenu de la cellule active ou du bloc sélectionné.
Cette option insère un nombre de cases correspondant à la taille du bloc sélectionné. Pour insérer des lignes ou des colonnes entières, sélectionnez d'abord ces dernières en cliquant dans leurs cases d'en-tête (cases grises en haut et à gauche de la feuille).
Cette option supprime un nombre de cases correspondant à la taille du bloc sélectionné. Pour supprimer des lignes ou des colonnes entières, sélectionnez d'abord ces dernières.
Cette option trie le contenu du bloc sélectionné, par lignes ou par colonnes, avec un maximum de 3 variables clés.
Cette option permet de modifier la disposition (centrage, justification...) du texte situé dans la cellule active ou le bloc sélectionné.
Cette option permet de choisir la police de caractères pour le texte situé dans la cellule active ou le bloc sélectionné.
Cette option permet de tracer des traits autour ou à l'intérieur du bloc sélectionné.
Cette option permet de définir le format d'écriture des nombres pour la cellule active ou le bloc sélectionné.
Ce format ne concerne que l'affichage. Tous les calculs sont réalisés avec 18 chiffres significatifs.
Cette option permet de fixer la taille des lignes ou des colonnes définies par la cellule active ou le bloc sélectionné.
Remarque : Pour changer la taille des lignes ou des colonnes avec la souris, cliquez sur le trait de séparation dans la zone d'en-tête (le pointeur prend l'aspect d'une double flèche), puis déplacez la souris tout en maintenant le bouton gauche enfoncé.
Cette option permet de choisir les éléments de la feuille de calcul qui apparaîtront à l'écran (grille, titres des lignes et colonnes etc.)
Ce menu ouvre une boîte de dialogue qui permet de changer les options définies dans le fichier WINREG.INI
Ces options concernent :
Cliquez sur "Enregistrer" pour écrire ces options dans le fichier WINREG.INI. Elles seront activées automatiquement lors de la prochaîne exécution du programme.
Cette option permet de sélectionner les courbes qui seront modélisées par la fonction précédemment choisie. Par défaut, toutes les courbes sont sélectionnées.
Cette option permet de choisir la fonction de régression. Par défaut, il s'agit de la fonction linéaire.
Cette option permet de choisir la fonction qui représente la variance vi d'une observation en fonction de la variable indépendante xi ou de la valeur observée yi. Cette fonction est de la forme :
vi = e0.g(xi)
vi = e0.g(yi)
où e0 (variance résiduelle) est déterminé par le programme. La fonction g peut contenir des paramètres e1, e2, ... qui doivent être spécifiés par l'utilisateur.
Les fonctions disponibles dans la présente version sont les suivantes (en supposant la variance calculée en fonction de y) :
Cette option permet de choisir les algorithmes utilisés pour les calculs.
Pour la régression linéaire ou polynômiale, les algorithmes disponibles sont :
Pour comprendre le principe de ces méthodes, désignons par :
La méthode de Gauss-Jordan calcule le vecteur des paramètres de la régression (B) par la formule :
B = (XTX)-1(XTY)
Cette méthode fournit de bons résultats dans la plupart des cas. Cependant, lorsque les colonnes de la matrice X sont fortement corrélées entre elles, la matrice XTX peut devenir quasi-singulière et dans ce cas l'estimation des paramètres B est très imprécise.
La décomposition en valeurs singulières tente de pallier à cet inconvénient en factorisant la matrice X selon :
X = USVT
U et V sont des matrices orthogonales. S est une matrice diagonale dont les termes Sii, tous positifs ou nuls, sont les valeurs singulières de X. Le vecteur B s'en déduit par :
B = V × diag(1/Sii) × UT × Y
où seules les valeurs singulières non nulles sont utilisées pour le calcul.
En fait, WinReg considère comme nulle toute valeur singulière inférieure à un seuil fixé à e × n, où e représente la précision des calculs en machine (e ~10-19 dans WinReg).
La décomposition en valeurs singulières est considérée comme la méthode la plus précise. C'est donc l'option par défaut.
Pour la régression non linéaire, les algorithmes disponibles sont :
Ces méthodes recherchent le minimum de la somme des carrés des écarts SCE = F(B), de manière itérative : on part avec des valeurs approchées des paramètres B, que l'on affine au cours des itérations jusqu'à ce que F tende vers un minimum.
Les 5 méthodes différent par leur principe. Les deux premières sont des variantes de la méthode de Newton-Raphson, dont la formule d'itération est la suivante :
B' = B - k.H-1G
où :
Dans la méthode de Marquardt :
De plus, en vue d'améliorer la convergence des itérations, Marquardt multiplie chaque terme diagonal de H par (1 + l), où l est un scalaire initialisé (p. ex. à 1) au début des itérations, puis divisé par 10 si l'itération est efficace (c'est-à-dire si F diminue) ou sinon multiplié par 10. La valeur de l diminue ainsi à mesure que F tend vers un minimum.
Dans la méthode BFGS, la matrice hessienne n'est pas calculée directement mais estimée progressivement au cours des itérations.
La méthode du simplexe n'utilise pas les dérivées de la fonction de régression mais construit une figure géométrique dans l'espace à m dimensions (si m est le nombre de paramètres à estimer). Cette figure, appelée simplexe, est un polygone à (m + 1) sommets. En fonction des valeurs de la fonction en chaque sommet, le simplexe est déformé et se déplace dans l'espace des paramètres, jusqu'à atteindre un minimum.
Pour chacune de ces méthodes, vous pouvez préciser :
L'inconvénient de ces méthodes est qu'elles n'acceptent que des diminutions de la fonction. L'algorithme risque ainsi de se trouver bloqué dans un minimum local.
En revanche, le recuit simulé (simulated annealing) permet de sortir d'un minimum local (et donc, en théorie, d'atteindre le minimum global) en acceptant, avec une certaine probabilité, une augmentation de la fonction.
Cette technique s'inspire de la thermodynamique. En effet, les systèmes physiques atteignent rapidement leur état d'équilibre (minimum d'énergie) en dépit du nombre immense de configurations que peuvent prendre les particules constituant le système. Au cours de cette transition vers l'équilibre, l'énergie peut localement augmenter.
Or, la probabilité p pour qu'un système physique passe du niveau d'énergie E1 au niveau E2 > E1 est donnée par la loi de Boltzmann :
p = exp[-(E2 - E1) / kT]
où k est la constante de Boltzmann et T la température absolue.
Dans le recuit simulé :
La probabilité d'accepter une augmentation de la fonction est donc d'autant plus grande que la température est élevée. La température est donc diminuée progressivement au cours des itérations, c'est-à-dire à mesure que l'on se rapproche du minimum.
Dans la version du recuit simulé utilisée par WinReg, la valeur de chaque paramètre est déterminée par tirage aléatoire dans un intervalle dont les bornes initiales sont fixées par l'utilisateur (les bornes par défaut sont -106 à 106). Cet intervalle est réduit à mesure que l'on s'approche du minimum.
Notons aussi qu'il est possible d'effectuer plusieurs cycles de recuit simulé, en recalculant à chaque fois la température initiale. Ceci permet de relancer l'algorithme s'il s'est arrêté à trop grande distance du minimum.
Les options du recuit simulé sont donc :
Remarque : WinReg réinitialise le générateur de nombres aléatoires à chaque exécution du recuit simulé. On obtiendra donc des résultats différents à chaque fois. Il peut être utile d'exécuter l'option plusieurs fois et de comparer les résultats.
La méthode de Metropolis-Hastings peut être considérée comme une variante du recuit simulé. Elle construit progressivement la distribution statistique des paramètres, au cours d'un processus itératif connu sous le nom de chaîne de Markov. Il est nécessaire d'effectuer plusieurs cycles afin que la méthode converge.
En général, c'est l'algorithme de Marquardt qui donne les meilleurs résultats. Pour les problèmes "récalcitrants" on pourra choisir la méthode du simplexe, le recuit simulé ou la méthode de Metropolis-Hastings, et enchaîner avec la méthode de Marquardt ou la méthode BFGS.
Par défaut, WinReg calcule une première estimation des paramètres avant d'appliquer la méthode d'optimisation. Cette option ("Paramètres initiaux / Estimer") peut être désactivée. WinReg démarrera alors l'optimisation en utilisant les valeurs courantes des paramètres. En particulier, lorsqu'on enchaîne deux méthodes d'optimisation, il faut obligatoirement désactiver cette option avant l'appel de la deuxième méthode, afin qu'elle puisse démarrer sur les résultats de la première.
Il est également possible de faire afficher les résultats de cette première estimation (Option "Paramètres initiaux / Montrer"). Ceci permet de les corriger manuellement dans le cas où l'estimation fournit des valeurs aberrantes. Cette option permet aussi de définir les bornes des paramètres, ce qui est particulièrement utile dans le cas du recuit simulé ou de l'algorithme Metropolis-Hastings, l'intervalle par défaut (-106 à 106) étant généralement beaucoup trop large.
Enfin, pour les 4 premières méthodes, il est possible de créer un fichier "Log" du nom d'OPTIM.LOG qui contiendra les détails des itérations. L'examen de ce fichier peut être utile si la méthode ne converge pas.
D'autre part, la procédure Metropolis-Hastings sauvegarde dans un fichier texte les résultats du dernier cycle d'itérations. Le nom de ce fichier est MCMC.TXT par défaut (ce nom peut être changé dans la boîte de dialogue "Algorithmes"). Ce fichier peut être relu dans WinReg afin d'étudier la distribution des paramètres du modèle.
Cette option ajuste la fonction de régression, successivement à toutes les courbes sélectionnées.
Si une erreur se produit, le message "Calcul impossible" est affiché. Dans ce cas vous pouvez essayer une ou plusieurs des solutions suivantes :
Si le calcul s'est déroulé correctement, le programme fournit pour chaque courbe traitée les résultats suivants :
r² = SCEe / SCEt
SCEt = Somme des carrés des écarts totale : SCEt = S (yi - m)² / vi
où m désigne la moyenne des yi (m = S yi / n) et n le nombre d'observations.
SCEe = Somme des carrés des écart "expliquée" : SCEe = S [f(xi, B) - m]² / vi
Dans le cas d'une régression linéaire (y = a + bx), r
est du même signe que b
r²a = 1 - [(n - 1) / (n - p)](1 - r²)
p = nombre de paramètres ajustés
Ce coefficient tient compte du nombre de paramètres utilisés,
par rapport au nombre d'observations.
s² = SCEr / (n - p)
s² = variance résiduelle
SCEr = Somme des carrés des écarts résiduelle :
SCEr = S [yi - f(xi,
B)]² / vi
F = [SCEe / (p - 1)] / s²
Remarques :
Si l'option "Tableau des résidus" a été activée (voir Menu "Options"), WinReg affichera un tableau indiquant, pour chaque point :
Cette option enregistre les résultats du calcul dans un fichier de type WinReg. Chaque paramètre ajusté correspond alors à une variable, et chaque courbe à une observation. Ce fichier pourra être relu par WinReg, soit comme fichier de paramètres au moyen de l'option précédente, soit comme fichier de données au moyen de l'option "Fichier/Ouvrir". Il peut également servir à transmettre les paramètres à un autre programme.
Cette option lit les paramètres des courbes dans un fichier de type WinReg. La fonction de régression doit avoir été choisie au préalable. Les paramètres sont lus dans le fichier et attribués aux courbes sélectionnées.
Cette option permet de sélectionner les courbes qui figureront sur le graphique. Par défaut, il s'agit des courbes déjà sélectionnées pour la modélisation.
Cette option permet de choisir :
Cette option ouvre une boîte de dialogue permettant de modifier l'aspect du graphique.
Le fichier GRAPH.CFG contient les paramètres de la configuration graphique par défaut. Ce fichier est lu automatiquement à chaque lancement du programme, à condition qu'il soit présent dans le répertoire de WinReg. Vous pouvez modifier cette configuration à partir de la boîte de dialogue, puis l'enregistrer à nouveau. Vous pouvez avoir plusieurs configurations graphiques, stockées dans autant de fichiers différents, et choisir le fichier qui sera chargé au démarrage (voir Menu "Options").
Cette option dessine le graphique dans une nouvelle feuille. L'image obtenue peut être sauvegardée ou imprimée à l'aide des options "Fichier / Enregistrer" (Maj+F3) et "Fichier / Imprimer" (F4).
Ce menu propose plusieurs options permettant de modifier la disposition des feuilles dans la fenêtre principale, ainsi qu'une liste des feuilles actuellement chargées.
Cette option affiche un résumé d'utilisation du programme.
Cette option affiche le logo WinReg.
Ces exemples sont tirés de la référence 2.
On a mesuré l'absorption de la lumière par des solutions de 4-nitrophénol, de concentrations (C) croissantes. On a obtenu les résultats suivants (pour une lumière de longueur d'onde 400 nanomètres). (Les données se trouvent dans le fichier REG1.DAT).
4-nitrophénol C (µmol/L) Absorbance 10 0.1865 20 0.3616 30 0.537 40 0.7359 50 0.9238
Montrez que l'on peut admettre l'existence d'une relation linéaire entre l'absorbance et la concentration, et estimez les paramètres de la droite de régression.
4-nitrophénol y = a + b.x Var. explicative (x) = C (µmol/L) ------------------------------------------------------------------------- Var. expliquée (y) Param. Valeur E.type t Student Prob(>|t|) Absorbance a -0.0057 0.0092 -0.6184 0.5801 b 0.0185 0.0003 66.4100 0.0000 ------------------------------------------------------------------------- Nombre d'observations 5.0000 Ecart-type résiduel 0.0088 Coefficient de corrélation 0.9997 Coefficient de détermination 0.9993 Coefficient de détermination ajusté 0.9991 Rapport de variances (expliquée/résiduelle) 4410.2909 Prob(>F) 0.0000 -------------------------------------------------------------------------
L'ordonnée à l'origine (a) ne diffère pas significativement de zéro : on peut donc admettre que la droite de régression passe par l'origine. En revanche la pente (b) diffère significativement de zéro au risque 0.1% . Ce résultat est confirmé par le coefficient de corrélation voisin de 1, l'écart-type résiduel faible et la valeur élevée de F. Tout ceci montre que la droite de régression s'ajuste très bien aux points expérimentaux.
Le produit ionique d'un solvant (pKs) est lié à sa constante diélectrique (D) par une relation du type : pKs = a + b/D (1)
Estimer les valeurs de a et b à partir du tableau ci-dessous (Les données se trouvent dans le fichier REG2.DAT).
Alcools D pKs 78.5 14 24.3 19.1 18.3 20.8 32.6 16.7
Alcools 1/D D pKs 0.0127 78.5 14 0.0411 24.3 19.1 0.0546 18.3 20.8 0.0307 32.6 16.7
Alcools y = a + b.x Var. explicative (x) = 1/D -------------------------------------------------------------------------- Var. expliquée (y) Param. Valeur E.type t Student Prob(>|t|) pKs a 11.8551 0.4367 27.1439 0.0014 b 166.5077 11.4866 14.4958 0.0047 -------------------------------------------------------------------------- Nombre d'observations 4.0000 Ecart-type résiduel 0.3518 Coefficient de corrélation 0.9953 Coefficient de détermination 0.9906 Coefficient de détermination ajusté 0.9859 Rapport de variances (expliquée/résiduelle) 210.1270 Prob(>F) 0.0047 --------------------------------------------------------------------------
Un corps chimique se décompose selon une cinétique du premier ordre caractérisée par l'équation Q = Q° exp(-kt), où Q désigne la quantité de corps restant à l'instant t, Q° la quantité initiale et k la constante de vitesse de la décomposition. A partir des données expérimentales suivantes, estimer les valeurs de Q° et de k. (Les données se trouvent dans le fichier REG3.DAT).
Cinétique d'ordre 1 t Q 1 416 2 319 3 244 4 188 5 144 6 113 7 85 8 66 9 50 10 41
Cinétique d'ordre 1 y = A1.exp(-a1.x) Var. explicative (x) = t ------------------------------------------------------------------------- Var. expliquée (y) Param. Valeur E.type t Student Prob(>|t|) Q A1 540.3393 1.6885 320.0136 0.0000 a1 0.2633 0.0011 248.7951 0.0000 ------------------------------------------------------------------------- Nombre d'observations 10.0000 Ecart-type résiduel 1.1869 Rapport de variances (expliquée/résiduelle) 100676.5493 Prob(>F) 0.0000 -------------------------------------------------------------------------
Les paramètres A et a diffèrent significativement de zéro au risque 0.1%. Le coefficient de corrélation, l'écart-type résiduel et la valeur de F confirment l'excellent ajustement de la fonction exponentielle aux données expérimentales.
Je remercie tous les collègues, enseignants, chercheurs et étudiants qui ont contribué à la mise au point de ce programme en le testant sur leurs propres données expérimentales.
WinReg a été développé à l'aide des logiciels suivants :
Certains sous-programmes ont été repris ou adaptés à partir des sources suivantes :