|
|
Dernière mise à jour : 20 Septembre 1999
On cherche à exprimer la relation entre deux variables x et y :
On va chercher une relation de la forme : y = b0 + b1x. C'est l'équation d'une droite, d'où le terme de régression linéaire (Figure 1).

Du fait de l'erreur sur y, les points expérimentaux, de coordonnées (xk, yk), ne se situent pas exactement sur la droite. Il faut donc trouver l'équation de la droite qui passe le plus près possible de ces points.
La méthode des moindres carrés consiste à chercher les valeurs des paramètres b0 et b1 qui rendent minimale la somme des carrés des écarts résiduelle (SSr : sum of squared residuals ) entre les valeurs observées yk et les valeurs calculées de y :
où n est le nombre de points et :
d'où :
Cette relation fait apparaître la somme des carrés des écarts comme une fonction des paramètres b0 et b1. Lorsque cette fonction est minimale, les dérivées par rapport à ces paramètres s'annulent :
soit :
Le système (5) est dit système des équations normales. Il admet pour solutions :
On montre que :
C'est l'équation d'analyse de la variance.
Si l'équation de la droite représente correctement les valeurs expérimentales, on a :
r2 est le coefficient de détermination. Il représente la part des variations de y qui est "expliquée" par x.
r est le coefficient de corrélation. Il est affecté du signe + ou - selon que la pente de la droite (b1) est positive ou négative. r est toujours compris entre -1 et 1.
Remarques :On définit :
où p désigne le nombre de paramètres du modèle (soit p = 2 pour une droite).
Si l'équation de la droite représente correctement les valeurs expérimentales, SSr doit tendre vers 0 et le rapport F = Ve / Vr doit tendre vers l'infini.
L'écart-type résiduel (sr) est égal à la racine carrée de la variance résiduelle. C'est une estimation de l'erreur commise sur la mesure de y. Cette erreur est supposée constante et indépendante de y (hypothèse d'homoscédasticité).
Il est possible d'associer à chaque paramètre (b0 ou b1) un écart-type (s0 ou s1) qui constitue une estimation de l'erreur commise sur la détermination du paramètre.
On montre que ces écart-types sont donnés par :
Le système des équations normales (5) s'écrit sous forme matricielle :
A est la matrice du système, B le vecteur des paramètres et C le vecteur des termes constants (on a omis l'indice k pour alléger l'écriture).
Introduisons la matrice U et le vecteur Y tels que :
On vérifie que :
où le symbole T désigne la transposition matricielle (échange des lignes et des colonnes).
On en déduit :
La matrice inverse A-1 est donnée par :
où det A est le déterminant de la matrice.
On en déduit :
Soit :
On retrouve ainsi les équations (6).
La matrice de variance-covariance V est telle que : V = Vr A-1, où Vr est la variance résiduelle. Les termes diagonaux de V donnent les variances des paramètres, c'est-à-dire les carrés des écart-types s0 et s1. Il vient donc :
On retrouve ainsi les équations (9).
Le terme non diagonal, V01 (égal à V10 puisque la matrice est symétrique) représente la covariance des deux paramètres. On en déduit leur coefficient de corrélation r01 (à ne pas confondre avec le coefficient de corrélation r entre les variables x et y) :
On suppose ici que la variable dépendante y est fonction de m variables x1,... xm :
Les xi peuvent être des variables indépendantes ou des fonctions d'une même variable x, par exemple dans la régression polynômiale (où xi = xi) :
Les paramètres bi sont estimés en minimisant la somme des carrés des écarts résiduelle :
où n désigne le nombre d'observations et xik la valeur prise par la variable xi pour l'observation k.
Les formules de la régression linéaire simple sont encore valables sous leur forme matricielle :
avec :
et :
L'analyse de variance s'effectue comme dans le cas de la régression linéaire simple, sauf qu'ici p = m+1 (nombre de paramètres estimés).
Les variances des paramètres sont données par les termes diagonaux de la matrice de variance-covariance, V = Vr A-1, les autres termes donnant les covariances. On en déduit les coefficients de corrélation entre paramètres :
Les valeurs de r2, sr et F se calculent comme précédemment. Toutefois, le coefficient de corrélation r est ici toujours positif.
On peut définir le coefficient de détermination ajusté par : r2a = 1 - (1 - r2) · (n - 1) / (n - p). Lorsque le nombre de paramètres (p) tend vers le nombre d'observations (n), ce coefficient tend vers 0, alors que r2 tend vers 1. L'examen de la valeur de r2a permet d'éviter l'utilisation d'un trop grand nombre de variables explicatives.
Réécrivons le modèle sous la forme :
où ek représente l'erreur de mesure de yk (encore appelée résidu).
Les calculs précédents supposent que :
Les résidus normalisés, ek / sr, sont distribués selon une loi normale réduite (c'est-à-dire de moyenne 0 et d'écart-type 1). La figure 2 indique l'allure de la distribution (courbe de Gauss) et donne la proportion de résidus qui doivent tomber dans un intervalle donné.
Un résidu normalisé hors de l'intervalle [-3, 3] doit faire suspecter un point aberrant. Il peut alors être utile de recalculer la droite de régression après avoir supprimé ce point.
Il faut aussi vérifier que les résidus ne manifestent pas de tendance à varier en fonction de y. Dans le cas contraire on doit recourir à la régression pondérée.
Pour chaque paramètre estimé bi, le quotient :
(où ßi désigne la vraie valeur du paramètre) est distribué selon une loi de Student à (n - p) degrés de liberté.
On peut alors, pour chaque paramètre, tester l'hypothèse nulle :
Sous H0, ti = bi / si et on peut calculer la probabilité :
Si cette probabilité est suffisamment faible (p.ex. < 0.05 ou < 0.10) on rejette H0 au risque p. Dans le cas contraire, on accepte H0.
Remarques :Le rapport de variances F est distribué selon une loi de Snedecor à (p - 1) et (n - p) degrés de liberté. On peut alors tester l'hypothèse nulle :
Sous H0, on calcule la probabilité p = Prob(F > Fobs), où Fobs désigne la valeur observée de F. Si cette probabilité est suffisamment faible, on rejette H0 au risque p, ce qui revient à admettre que la variance expliquée est significativement supérieure à la variance résiduelle, donc que l'équation de régression représente correctement les données expérimentales.
On considère ici que la variance de l'erreur de mesure ek n'est plus constante mais dépend de yk, selon une relation du type : vk = Vr g(yk), où vk est la variance de ek, Vr la variance résiduelle et g une fonction définie par l'utilisateur, p.ex. g(yk) = yk2 pour un coefficient de variation constant. (Nous verrons dans un autre cours qu'il existe des méthodes pour déterminer automatiquement cette fonction).
Les sommes de carrés d'écarts deviennent alors :
où wk désigne le "poids", égal à 1/g(yk)
Les paramètres B sont estimés par :
où W est la matrice diagonale des poids :
Les valeurs de r2, sr et F, ainsi que la matrice de variance-covariance, se calculent comme précédemment. Le résidu normalisé pour l'observation k est égal à (ek / sr) · wk½. Ces résidus normalisés doivent suivre la loi normale réduite.
La programmation des calculs précédents peut être réalisée au moyen de la bibliothèque TP MATH.
L'archive TPMATH1.ZIP contient deux unités relatives à la régression :
Nous ne présentons ici que les procédures de régression linéaire contenues dans REGRESS.PAS. L'unité MODELS.PAS, ainsi que les programmes de démonstration, font l'objet d'un chapitre séparé.
Les fonctions suivantes sont disponibles, pour la régression linéaire, multiple, et polynômiale :
function LinFit(X, Y : PVector;
N : Integer;
B : PVector;
V : PMatrix) : Integer;
function MulFit(X : PMatrix;
Y : PVector;
N, Nvar : Integer;
ConsTerm : Boolean;
B : PVector;
V : PMatrix) : Integer;
function PolFit(X, Y : PVector;
N, Deg : Integer;
B : PVector;
V : PMatrix) : Integer;
La signification des paramètres est la suivante :
En entrée
---------------------------------------------------------
X = Vecteur ou matrice des variables indépendantes
Y = Vecteur de la variable dépendante
N = Nombre d'observations
Nvar = Nombre de variables indépendantes
Deg = Degré du polynôme de régression
ConsTerm = Indique la présence d'un terme constant (b0)
En sortie
---------------------------------------------------------
B = Vecteur des paramètres de la régression
V = Inverse de la matrice des équations normales
(soit A-1 des équations (13), (22) et (31))
Remarque : Pour la définition des types PVector et PMatrix, voir le cours sur le calcul matriciel.
Ces fonctions retournent l'un des codes d'erreur suivants (définis dans MATRICES.PAS) :
Symbole Valeur Signification
---------------------------------------------------------
MAT_OK 0 Pas d'erreur
MAT_SINGUL -1 Singularité de la matrice
des équations normales
Les 3 fonctions précédentes ont leurs homologues en régression pondérée :
function WLinFit(X, Y, W : PVector;
N : Integer;
B : PVector;
V : PMatrix) : Integer;
function WMulFit(X : PMatrix;
Y, W : PVector;
N, Nvar : Integer;
ConsTerm : Boolean;
B : PVector;
V : PMatrix) : Integer;
function WPolFit(X, Y, W : PVector;
N, Deg : Integer;
B : PVector;
V : PMatrix) : Integer;
Il y a un paramètre supplémentaire en entrée : le vecteur des poids W.
Les procédures suivantes sont disponibles, pour la régression non pondérée et pondérée :
procedure RegTest(Y, Ycalc : PVector;
N, Lbound, Ubound : Integer;
V : PMatrix;
var Test : TRegTest);
procedure WRegTest(Y, Ycalc, W : PVector;
N, Lbound, Ubound : Integer;
V : PMatrix;
var Test : TRegTest);
La signification des paramètres est la suivante :
En entrée
---------------------------------------------------------
Y = Vecteur de la variable dépendante
Ycalc = Valeurs calculées de Y
W = Vecteur des poids (si nécessaire)
N = Nombre d'observations
Lbound = Indice du premier paramètre ajusté
(0 s'il y a un terme constant b0, sinon 1)
Ubound = Indice du dernier paramètre ajusté
V = Inverse de la matrice des équations normales
En sortie
---------------------------------------------------------
V = Matrice de variance-covariance
Test = Résultats des tests de la régression
Test est une variable de type TRegTest, défini comme suit :
type TRegTest = record
Vr, { Variance résiduelle }
R2, { Coefficient de détermination }
R2a, { Coeff. de détermination ajusté }
F, { Rapport de variances }
Prob : Float; { Probabilité de F }
end;
La procédure suivante teste la signification des paramètres de la régression. Elle doit être appelée après RegTest ou WRegTest car elle utilise la matrice de variance-covariance.
procedure ParamTest(B : PVector;
V : PMatrix;
N, Lbound, Ubound : Integer;
S, T, Prob : PVector);
La signification des paramètres est la suivante :
En entrée --------------------------------------------------------- B = Vecteur des paramètres de la régression V = Matrice de variance-covariance N = Nombre d'observations Lbound = Indice du premier paramètre ajusté Ubound = Indice du dernier paramètre ajusté En sortie --------------------------------------------------------- S = Ecart-types des paramètres T = t de Student Prob = Probabilités des valeurs de t
Le type TRegAlgo définit l'algorithme de résolution des équations linéaires, qui peut ensuite être choisi par la procédure SetRegAlgo, et retourné par la fonction GetRegAlgo :
type TRegAlgo = (
GAUSS_JORDAN, { Algorithme de Gauss-Jordan }
SVD); { Décomposition en valeurs singulières }
procedure SetRegAlgo(Algo : TRegAlgo);
function GetRegAlgo : TRegAlgo;
L'algorithme de Gauss-Jordan et la décomposition en valeurs singulières sont étudiés dans le cours sur le calcul matriciel.
L'algorithme par défaut est la décomposition en valeurs singulières, qui requiert plus de mémoire mais est moins sensible aux erreurs d'arrondi.
procedure SetFirstPoint(Index : Integer); function GetFirstPoint : Integer;
Ces procédures permettent de fixer et de retourner l'indice du premier point (en général 0 ou 1). La valeur par défaut est 1, c'est-à-dire que les points vont de (X^[1], Y^[1]) à (X^[N], Y^[N]), soit N points.
Si l'on fait p.ex. SetFirstPoint(0) les points iront de (X^[0], Y^[0]) à (X^[N], Y^[N]), soit N+1 points.