Vous êtes sur la page 1sur 32

Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general

Ajustements au sens des (( moindres carres ))


MNI2 Jean Hare
Universite Pierre et Marie CURIE
Methodes numeriques et informatiques 2
3 mars 2009
-1.0
-0.5
0.0
0.5
1.0
-1.0 -0.5 0.0 0.5 1.0
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Sommaire
1
Introduction
2
Ajustement lineaire
Regression lineaire
Cas lineaire general
La qualite du t
Le travail du TE3
3
Cas Non-Lineaire
Generalites
Les methodes iteratives simples
Methode de Levenberg-Marquardt
4
Qualite de lajustement : cas general
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Position du probl`eme
Exemple : On dispose dun ensemble de N points
(( experimentaux )) (x
i
, y
i
), i = 1 . . . N qui ont ete obtenus avec
une precision limitee pour determiner aussi bien que possible
M param`etres p
j
, j = 1 . . . M.
On suppose que les points devraient verier le mod`ele :
y(x) = y(x, p
1
. . . p
M
) = y(x, p) , (1)
o` u p represente le vecteur `a M composantes des param`etres.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Deviations
Typiquement, on suppose quil
existe un jeu de valeurs p
v
des
param`etres tel que :
y
i
= y(x
i
, p
v
) +
i
(2)
o` u les deviations
i
resultent
de bruit sur les signaux,
dun leger ecart au mod`ele
(eets non pris en compte),
des incertitudes introduites
dans le processus de mesure.
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
-10 -5 0 5 10
x
y
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Maximum de vraisemblance
En supposant que les deviations
i
sur les y
i
sont des variables
aleatoires :
independantes,
de distribution la loi normale centree decart-type
i
,
on montre que la probabilite des valeurs y
i
est proportionnelle `a :
P(y
1
, y
N
|p) exp
_

1
2
N

i=1
(y
i
y(x
i
, p))
2

2
i
_
. (3)
On admet
1
alors que les valeurs des param`etres (( les plus
vraisemblables )) sont celles qui maximisent la fonction ci-dessus
consideree comme la probabilite :
P(p|y
1
, y
N
) P(y
1
, y
N
|p). (4)
1. Cest un resultat exact dans le cas lineaire, et il nest alors pas necessaire
que les suivent une loi normale.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Moindres carres
Les valeurs `a determiner sont alors celles qui minimisent lerreur
totale :

2
(p) =
N

i=1
_

i
_
2
=
N

i=1
_
y
i
y(x
i
, p)

i
_
2
, (5)
laquelle est nommee (( chi2 )) en raison de sa denition (cf. TE2).
Par derivation, cela conduit aux M equations suivantes :
(k = 1 . . . M) :
N

i=1
_
y
i
y(x
i
, p)

2
i
_

y(x
i
, p)
p
k
= 0 (6)
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Lineaire vs non-lineaire
La resolution des equations precedente permet de trouver les
valeurs de p qui, si le mod`ele est valide, rendent le mieux compte
des donnees. On parle alors d(( ajustement )) des donnees ou
(( best t )) en anglais.
Deux situations doivent alors etre distinguees :
1
Le cas particulier o` u la fonction y(x, p) est lineaire vis `a vis
des param`etres p
j
le syst`eme (6) est lineaire et peut etre
resolu simplement.
2
Le cas (plus general) o` u y(x, p
1
. . . p
M
) est une fonction
non-lineaire des param`etres p
j
le syst`eme (6) est
non-lineaire, et il faut trouver une autre methode.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Regression lineaire
Regression lineaire : les equations
Le cas le plus simple dajustement et le plus important est celui
dun mod`ele lineaire `a la fois vis `a vis des param`etres et des
donnees :
y(x, p) = a + b x (7)
do` u

2
(p) =
N

i=1
_
y
i
a bx
i

i
_
2
o` u p = (a, b) . (8)
Ce qui conduit aux equations :

2
a
= 0
N

i=1
y
i
a bx
i

2
i
= 0 (9)

2
b
= 0
N

i=1
x
i
y
i
a bx
i

2
i
= 0 (10)
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Regression lineaire
Regression lineaire : resolution
On est conduit `a denir les 6 param`etres :
S =

N
i=1
1

2
i
S
x
=

N
i=1
x
i

2
i
S
y
=

N
i=1
y
i

2
i
S
xy
=

N
i=1
x
i
y
i

2
i
S
xx
=

N
i=1
x
2
i

2
i
S
yy
=

N
i=1
y
2
i

2
i
dont linterpretation en termes de moyennes et de variance est tr`es
claire.
Il vient :
aS + bS
x
= S
y
et aS
x
+ bS
xx
= S
xy
do` u :
a =
S
xx
S
y
S
x
S
xy

b =
SS
xy
S
x
S
y

,
o` u = SS
xx
(S
x
)
2
est le determinant du syst`eme et `a S
pr`es la variance des x
i
.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Regression lineaire
Qualite de la regression : variances/covariances de a et b
Les deviations obtenues pour les valeurs qui minimisent lerreur
sont appelees les (( residus )). La somme ponderee de leurs carres est
le
2
`a proprement parler, `a N M = N 2 degres de liberte (cf.
plus bas).
Il est utile devaluer les variances et covariances de a et b :

2
a
=
S
xx


2
b
=
S

Cov(a, b) =
S
x

. (11)
La covariance de a et b est generalement rapportee `a la variance
de a et de b pour denir le coecient de correlation de a et b :
R
ab
=
Cov(a, b)

a

b
=
S
x

S S
xx
On a 1 R
ab
1, et il doit etre aussi petit que possible (les
valeurs 1 annulent et font que a et b ne sont plus denis).
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Regression lineaire
Qualite de la regression : coecient de correlation lineaire
La qualite de la regression est souvent evaluee en considerant que
le mod`ele secrit aussi :
x = a

+ b

y (12)
Moyennant certaines hypoth`eses sur les
i
, on obtient la pente :
b

=
S S
xy
S
x
S
y
S S
yy
S
2
y
. (13)
Les deux droites sont confondues si et seulement si b b

= 1, cest
`a dire si le coecient de correlation lineaire :
r =
Cov(x, y)

x

y
(14)
est egal `a +1 ou 1.
La correlation lineaire est donc appreciee qualitativement selon que
r est plus ou moins proche de 1.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Cas lineaire general
Cas lineaire general
Un mod`ele y(x, p) qui depend lineairement des param`etres p est
necessairement de la forme :
y(x, p) =
M

k=1
p
k
F
k
(x) , (15)
o` u F
1
(x) F
M
(x) sont M fonctions quelconques de x.
La minimisation de
2
=
N

i=1
_
y
i

M
k=1
p
k
F
k
(x
i
)

i
_
2
(16)
donne les M equations dites (( equations normales )) :
N

i=1
_
y
i

M
j =1
p
j
F
j
(x
i
))

2
i
_
F
k
(x
i
) = 0 pour k = 1, M ,
(17)
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Cas lineaire general

Equations normales
Ces derni`eres se mettent sous la forme matricielle :
M

j =1

kj
p
j
=
k
[] p =

(18)
o` u les coecients
kj
de la matrice M M symetrique [] et les
composantes du vecteur colonne

sont :
[]
kj
=
N

i=1
F
j
(x
i
) F
k
(x
i
)

2
i

k
=
N

i=1
y
i
F
k
(x
i
)

2
i
(19)
Le vecteur des param`etres p peut alors etre obtenu avec une des
methodes standards de resolution des syst`emes lineaires :
Methodes delimination de Gauss-Jordan, methode LU, QR, de
Cholesky, decomposition en valeurs singuli`eres, etc.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
La qualite du t
Variances-covariances
Une fois obtenue la solution, il faut savoir estimer sa qualite. Un
premi`ere chose est de voir `a quel point il est contraint, en evaluant
la variance des param`etres. Cest la matrice [C] = []
1
qui les
donne. En eet :
p = [C]

p
j
=

k
C
jk

i
y
i
F
k
(x
i
)

2
i
(20)
do` u Var(p
k
) =

i
(
p
k
y
i
)
2
Var(y
i
) =

i
_

k
C
jk
F
k
(x
i
)

2
i
_
2

2
i
=

k,l
C
jk
C
jl

i
F
k
(x
i
) F
l
(x
i
)

2
i
= [
t
C C]
kk
= C
kk
et de meme, on aurait Cov(p
k
, p
l
) = C
kl
.
Ce resultat sappliquera de la meme facon dans le cas non lineaire.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Le travail du TE3
Exercice de la 1
`ere
seance
On consid`ere lajustement des N = 50 donnees (x
i
, y
i
,
i
)
contenues dans le chier : set.dat au mod`ele lineaire `a M = 2
param`etres, p
1
, p
2
:
y(x, p) = p
1
F
1
(x) + p
2
F
2
(x)
o` u
F
1
= exp((x/10)
2
) ,
F
2
=
(x/2)
1 + (x/2)
2
.
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
-10 -5 0 5 10 x
y
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Le travail du TE3

Elements fournis 1/2


les chiers source dun sous-programme gaussj permettant de
resoudre les equations normales :
en fortran : gaussj(mat, v, matinv, u), encapsulee dans
un module gaussj ;
en C : gaussj_double(double **mat, double *v,
double **matinv, double *u, int m).
Il resoud le syst`eme lineaire mat u=v par la methode delimination
de Gauss-Jordan. En entree, mat est une matrice carree mm, et v
un vecteur `a m composantes ; en sortie : u est le vecteur solution et
matinv la matrice inverse de mat.
le sous-programme fortran foncfit1(x,afonc) ou en C
foncfit1(double x, double *afonc, int m), qui renvoie le
vecteur `a m=2 composantes : en fortran afonc(1)= F
1
(x) et
afonc(2)= F
2
(x), en C afonc[0]= F
1
(x) et afonc[0]= F
2
(x),
pour la valeur de x passee en argument.
dierents modules pour lachage, et la visualisation dans scilab.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Le travail du TE3
Organisation du code
Il reste `a ecrire :
le programme principal lsqmain.f90 ou lsqmain.c qui :
lit N et M, et alloue les tableaux, x, y, sig, par, covar,
lit les donnees : x, y, sig dans le chier,
appelle un sous-programme lsqlin,
le sous-progr. en fortran lsqlin(x, y, sig, par, covar,
chisq)
ou en C lsqlin(double *x, double *y,double *sig,
int n, double *par, int m, double **covar,
double *chisq) qui doit :
calculer la matrice [] = alpha et le vecteur [] = beta,
resoudre les equations normales en appelant gaussj,
retourner le vecteur par = p, et la valeur chisq =
2
,
calculer la matrice C des variances-covariances
ecrire dans un chier (pour visualisation dans SciLab) les
valeurs de x, y et y_fit= y(x
i
, p).
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Generalites
Approche generale : methode iterative
Le cas non lineaire est le cas general : e.g. determiner non
seulement le poids, mais la largeur de la lorentzienne l et celle de
la gaussienne g. Les dierentes methodes existantes sont des
methodes iteratives qui diminuent progressivement
2
(p) jusqu`a
obtenir un minimum local.
On se donne la valeur initiale p
(0)
((( guess )) en anglais, soit
(( estimation ))) et on determine successivement p
(1)
, p
(n)
jusqu`a ce que
2
cesse de diminuer. Il faut donc denir un crit`ere
de convergence comme :
0
2
(p
n
)
2
(p
n+1
)
tol.
o` u
tol.

2
_
p
(n)
_
. (21)
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Generalites
Les ecueils
Deux principales dicultes se presentent :
On peut converger un minimum local qui est une solution
(( articielle )) denuee de sens : do` u limportance de choisir une
valeur initiale p
(0)
pertinente, et eventuellement une methode
qui soit adaptee sil y a beaucoup de minima locaux possibles.
La surface
2
(p) peut presenter des vallees dans lesquelles on
descend tr`es vite, et o` u ensuite la progression est tr`es lente
(meandres).
Ces deux probl`emes sont dautant plus probables que le nombre M
de param`etres est (trop) grand (il faut alors proceder par etapes en
faisant varier certains param`etres seulement).
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
La methode du gradient
La methode la plus simple consiste `a faire un deplacement
p = p
n+1
p
n
selon le gradient de
2
, qui denit la plus grande
pente ((( steepest descent )) en anglais) :
p =
2
(p
n
) ( IR
+
) , (22)
o` u le gradient est deni par des composantes :
_

2
_
k
=

2
p
k
= 2
N

i=1
y
i
y(x
i
, p)

2
i
y(x
i
, p)
p
k
(23)
Cette methode est robuste, mais tr`es souvent converge tr`es
lentement.
Probl`eme : Comment choisir ?
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
Minimisation 1D
Une solution consiste `a rechercher le minimum 1D sur la ligne de
plus grande pente. En ce point, la droite est tangente `a la ligne de
niveau : on zigzague en faisant un virage `a angle droit `a chaque
fois.
0 5 10 15 20
0
2
4
6
8
10
g
l
Courbes de niveau de
2
dans le plan des largeurs (g, l ) pour
des poids xes. En couleur, des trajectoires brisees obtenues
par la methode du gradient.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
La hessienne
Pour aller plus vite,cest `a dire plus directement vers le minimum, il
est utile de considerer la courbure locale de la surface, an de
mieux choisir la direction de p. Celle-ci est accessible via la
matrice de Hess ou hessienne des derivees secondes de
2
(p) :
[H(p)]
kl
=

2

2
(p)
p
k
p
l
=
M

i=N
2

2
i
_
y(x
i
, p)
p
k
y(x
i
, p)
p
l
(y
i
y(x
i
, p))

2
y(x
i
, p)
p
k
p
l
_
Cest son anisotropie qui est le principal responsable de la lenteur
de convergence de la methode du gradient.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
Prise en compte de la courbure
En faisant un developpement limite de
2
(p) autour de p
(n)
:

2
(p)
2
(p
(n)
) +
2
(p
(n)
) p +
1
2
t
p H p + , (24)
En derivant, on obtient le gradient de
2
au premier ordre en p. Il
sannule donc pour :

2
(p
(n)
) + H p = 0 p = H
1

2
(p
(n)
) . (25)
Si le
2
etait eectivement quadratique, on obtiendrait
directement la solution : la matrice [H] se confond alors avec la
matrice 2[] de lajustement lineaire, et
2
avec

.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
Approximation parabolique
Cette solution est bien adaptee
lorsquon est assez proche dun
minimum (ie au fond de la
vallee), mais nest pas forcement
beaucoup meilleure dans les
autres cas (cf. gure).
x
1
x
2
x
0
Estimation (`a 1D) de la position du
minimum x
0
`a partir des paraboles
osculatrices en x
1
et en x
2
.
De plus elle nest pas robuste, car dans le cas le plus general elle
peut meme conduire `a une augmentation du
2
!
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
La methode du gradient conjugue
Elle consiste `a faire des (( pas )) ou increments
p dans la direction du p tel que deni par
lequation (25), mais de longueur moins grande :
p = p.
Elle est ainsi nommee car la surface de niveau et
lincrement p ne sont pas orthogonaux pour
le produit scalaire normal, mais pour la forme
quadratique H, soit, pour tout u tangent `a la
surface de niveau :
t
u
2
= 0
t
u H p = 0 .
gradientconjugue
gradient
Comparaison des
methodes du gradient et
du gradient conjugue
Elle a le merite de progresser dans la (( bonne )) direction, et
conduit `a une convergence rapide si lapproximation quadratique
(24) est adaptee.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Les methodes iteratives simples
Taille des pas et choix de la methode
Pour des raisons de dimension et dordre de grandeur, on doit
prendre un facteur dierent dans chaque direction k, tel que

k
1/H
kk
, ce qui conduit `a ecrire la methode du gradient :
H
kk
p
k
=
k
pour tout k {1, M}
o` u IR
+
, assez grand pour limiter la taille des (( pas )).
Dans ces conditions :
La methode du gradient est plus s ure quand on est loin de
loptimum car lapproximation quadratique est alors grossi`ere.
La methode du gradient conjugue est plus rapide lorsquon
sapproche du minimum, car lapproximation quadratique est
alors bien meilleure.
On peut donc chercher `a combiner les deux pour descendre `a
coup s ur dans la vallee, et ensuite y progresser rapidement. Cest
precisement ce que realise la methode de Levenberg-Marquardt.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Methode de Levenberg-Marquardt
Methode de Levenberg-Marquardt : les equations
On denit tout dabord la matrice [] et le vecteur

comme suit :

kl
=
M

i=N
1

2
i
y(x
i
, p)
p
k
y(x
i
, p)
p
l
et
k
=
N

i=1
y
i
y(x
i
, p)

2
i
y(x
i
, p)
p
k
(26)
On choisit donc domettre les termes en
2
y/p
k
p
l
dans H en
considerant quils seront negligeables. Cela nest pas vrai en toute
rigueur, mais si les ecarts y
i
y(x
i
, p) sont petits, independants et
disperses selon une loi normale centree, la contribution de la
somme sera eectivement negligeable.
On denit encore la matrice

[] en augmentant les termes
diagonaux par

[]
kk
= []
kk
(1 + ), sans modier les termes
non-diagonaux. Ainsi, si est grand, on retrouvera le gradient, et
sil est petit, le gradient conjugue !
Lalgorithme va adapter `a la topographie de la surface...
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Methode de Levenberg-Marquardt
Methode de Levenberg-Marquardt : lalgorithme
Les iterations sont alors eectuees comme suit :
1
Choisir une valeur initiale p
(0)
et evaluer
2
(p
(0)
). Choisir une
valeur initiale de assez petite, typiquement 0.01 ou 0.001.
2
Au point p
(n)
, evaluer [],

[],

et resoudre lequation

[]p =

3

Evaluer
2
au point p
(n)
+ p :
si le
2
a augmente, cest que le gradient conjugue va trop
loin. Augmenter dun facteur f 10 pour renforcer le poids
du gradient et reduire la taille des (( pas )), et retourner en (2).
si le
2
a diminue, cest que lon sapproche du minimum.
Adopter alors la nouvelle valeur p
(n+1)
= p
(n)
+ p et
diminuer dun facteur f : plus on est proche, plus on favorise
le terme (( conjugue )).
4
Tester la convergence : si le
2
ne diminue plus, cest `a dire
0 <
2
(p
(n)
)
2
(p
(n+1)
) < 1, on peut arreter les
iterations. Sinon, retourner en (2).
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Crit`eres devaluation de la qualite de lajustement
La matrice des variances-covariances est toujours donnee par
linverse de matrice []. Elle rend compte de ce que
lajustement est plus ou moins contraint. Elle donne
generalement des variances tr`es faibles, non-signicatives.
Attention aux covariances choix des param`etres.
La forme (en fonction de x) et la distribution statistique des
residus fournissent une indication importante sur la
vraisemblance du mod`ele et la qualite de lajustement.
La pertinence du mod`ele est enn appreciee par le test du
2
.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Rappel : loi du
2
La somme des carres de N variables aleatoires normales centrees
independantes est une variable aleatoire X
N
(notee
2
N
) qui obeit
`a la (( loi du
2
`a N degres de liberte )). Cette loi de probabilite a
pour fonction de repartition :
P(X
N
< x) =
_
x/2
0
e
t
t
N/21
dt
_

0
e
t
t
N/21
dt
=
(N/2, x/2)
(N/2)
o` u est la fonction (( gamma incompl`ete ))
(a, x) =
_
x
0
e
t
t
a1
dt .
On montre que cette loi a pour moyenne N et pour variance 2N.
Pour N assez grand, elle tend vers une loi normale de meme
esperance et de de meme variance.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Test du
2
La validite de notre ajustement est evaluee de fa con
probabiliste par le (( test du
2
)). Les residus doivent satisfaire
une loi du
2
`a N M degres de liberte si le mod`ele est
correct et que les
i
sont correctement evalues.
Faut-il conserver ou non le mod`ele (selon la valeur de
2
) ?
Plutot que de denir une probabilite que le mod`ele soit bon,
on denit le risque derreur que lon prendrait en le rejetant.
Ce risque est evalue en considerant la valeur residuelle de la
fonction de distribution entre la valeur de
2
obtenue et
linni, qui est une fonction decroissante de
2
:
Q(
2
) = P(X >
2
) = 1P(X <
2
) = 1(
NM
2
,

2
2
)
_
(N/2)
Il reste alors de se donner un seuil de risque acceptable Q
0
.
Si Q > Q
0
(i.e.
2
assez faible) on peut conserver le mod`ele,
et le rejeter dans le cas contraire.
Introduction Ajustement lineaire Cas Non-Lineaire Qualite de lajustement : cas general
Test du
2
; choix du seuil
Le choix du seuil est une question delicate.
Un seuil de Q
0
= 0.1 signie que lon est exigeant sur le
mod`ele, puisque lon sexpose `a le rejeter de facon injustiee 1
fois sur 10.
Une valeur de Q
0
0.01 voire 0.001 est souvent utilisee, car
la probabilite de le rejeter par erreur est reduite `a 1%. Alors si
on croit au mod`ele...
Observons toutefois quune valeur trop grande de
2
, et donc
trop faible de Q, provient tr`es souvent de dispersions
i
sous-evaluees, car on est frequemment trop optimiste sur ces
(( barres derreur )). Ce peut alors etre lexperimentateur quil
faut mettre en cause, et non le mod`ele !

Vous aimerez peut-être aussi