Régression linéaire et non linéaire

publicité
Régression linéaire et non linéaire
Mark Asch
Septembre 2010
TADE - EDSS, UPJV 2010-11
1
1.1
Régression linéaire
La droite de moindres carrés
Le problème suivant est souvent rencontré dans tous les domaines où des
mathématiques sont appliquées. Pour des points discrets ti (souvent des instants
de temps), des observations bi d’un phénomène quelconque sont faites, et les
résultats sont enrégistrés comme un ensemble de couples
D = {(t1 , b1 ), (t2 , b2 ), ..., (tm , bm )} .
Sur la base des ces observations, le problème est de faire des estimations ou des
prévisions aux points (instants) t̂ différents des ti . L’approche classique est alors
de trouver l’équation de la courbe
y = f (t)
qui est ajustée au mieux aux points dans D afin de pouvoir ensuite estimer le
phénomène selon ŷ = f (t̂).
Commençons par ajuster une ligne droite aux points dans D. Une fois que
nous avons compris ceci, il est relativement facile d’ajuster les données avec des
lignes courbes. La stratégie est de déterminer les coefficients, α et β, de la droite
f (t) = α + βt
qui s’ajuste au mieux aux points (ti , bi ) dans le sens où la somme des erreurs verticales (nous supposons ici que les instants sont connus sans erreurs) 1 , 2 , ...m
est minimale.
Si nous définissons les erruers comme
i = |f (ti ) − bi | = |α + βti − bi |
1
alors le but est : trouver les valeurs de α et β qui minimisent
m
X
E=
2i .
i=1
Selon la théorie d’optimisation, la valeur minimale se trouve par la résolution
des équations pour les points stationnaires,
∂E
= 0.
∂β
∂E
= 0,
∂α
Nous calculons aisement,
2
2
m
X
i=1
m
X
(α + βti − bi ) =
0
(α + βti − bi ) ti =
0,
i=1
qui peut être réecrit en termes des deux inconnus,
!
!
m
m
m
X
X
X
1 α+
ti β =
bi
i=1
m
X
i=1
!
ti
α+
m
X
i=1
i=1
!
t2i
β
m
X
=
i=1
ti bi .
i=1
Ce système est équivalent à l’équation matricielle,
AT Ax = AT b,
avec



A=

1
1
..
.
t1
t2
..
.
1
tm




,



b=

b1
b2
..
.
(1)





et x =
.
bm
Le système (1) est le système d’équations normales associé
Le produit,

1 t1
 1 t
2
1 1 ··· 1

AT A =

..
t1 t2 · · · tm  ...
.
1
=
α
β
Pm
i=1 ti
Pm
.
2
i=1 ti
m
Pm
i=1 ti
2
tm
au système Ax = b.





Vu que les ti sont supposés distincts, le système admet une solution unique
donnée par
−1 T
x = AT A
A b
et l’erreur totale par
m
X
2i = (Ax − b)T (Ax − b).
i=1
Nous résumons dans un théorème.
Pour A ∈ Rm×n et b ∈ Rm , soit = (x) = Ax − b. Le problème général de
moindres carrés est de trouver le vecteur x qui minimise la quantité
m
X
2i = T = (Ax − b)T (Ax − b).
i=1
Tout vecteur qui fournit une valeur minimale s’appele une solution de moindres
carrés. L’ensemble de toutes les solutions de moindres carrés est précisément
l’ensemble de solutions du système des équations normales, AT Ax = AT b. Il
−1 T
existe une solution de moindres carrés unique, donnée par x = AT A
A b,
si et seulement si le rank(A) = n. Si Ax = b est consistente, alors la solution de
Ax = b est la même que celle de moindres carrés.
1.2
La courbe de moindres carrés
Le problème est ici de trouver un polynôme de degré donné,
p(t) = α0 + α1 t + α2 t2 + · · · + αn−1 tn−1
qui se rapproche autant que possible, dans le sens des moindres carrés, à un
ensemble de mesures
D = {(t1 , b1 ), (t2 , b2 ), ..., (tm , bm )} ,
où les ti sont distincts et n ≤ m. Le but, de nouveau, est de minimiser la somme
de carrés,
m
m
X
X
2
2i =
(p(ti ) − bi ) = (Ax − b)T (Ax − b).,
i=1
i=1
où



A=

1
1
..
.
t1
t2
..
.
t21
t22
..
.
1
tm
t2m
···
···
···
···
tn−1
1
tn−1
2
..
.




,



b=

tn−1
m
b1
b2
..
.
bm








et x = 

α0
α1
..
.



.

αn−1
Le polynome de moindres carrés est unique parce que Am×n est une matrice de
Vandermonde avec n ≤ m, et donc rank(A) = n.
3
1.3
Résolution numérique des équations normales
– instabilités d’une résolution directe par élimination de Gauss et même par
factorisation de Cholesky
– QR (Householder) et SVD factorisations pour la résolution des équations
normales
– Matlab anti-slash opérateur
– SVD plus robuste que Householder, mais beaucoup plus cher
La solution de norme minimale à
Ax = b
est donnée par
x = A+ b,
où la pseudoinverse de la matrice A de dimension m × n, avec m > n, est définie
par
−1 T
A+ = AT A
A .
La factorisation SVD de A est
A = U ΣV T
où U est une matrice orthogonale m × m, V est une matrice orthogonale n × n
et Σ est une matrice diagonale de dimension m × n avec
(
0 pour i 6= j,
σij =
σi pour i = j
et σi sont les valeurs singulières de A. Finalement le pseudoinverse est aussi
donnée par
A + = V Σ+ U T .
La factorisation QR de A est
A=Q
R
0
où Q est une matrice orthogonale de dimension m × m, et R est une matrice
triangulaire supérieure de dimension n×n. Finalement le pseudoinverse est aussi
donnée par
A+ = R−1 QT1
où Q1 est la partition m × n de Q telle que
R
R
A=Q
= [Q1 Q2 ]
= Q1 R.
0
0
4
2
Régression non linéaire
2.1
La méthode de Gauss-Newton
Dans les problèmes de moindres carrés non linéaires, la fonction à minimiser
prend en général la forme
m
1X
gi (x)2 .
2 i=1
g(x) =
Pour appliquer la méthode de Newton à la minimisation de g(x), on doit calculer
le Hessien de g, qui dans ce cas précis prend une forme particulière. D’une part,
la gradient de g est
m
X
∇g(x) =
∇gi (x)gi (x)
i=1
et le Hessien de g est donné par
∇2 g(x) =
m
X
∇gi (x)∇gi (x)T +
m
X
gi (x)∇2 gi (x).
i=1
i=1
Si l’on se place près de l’optimum, où on supposera que les gi (x) sont petits, le
deuxième terme peut alors être négligé. La matrice obtenue
H(x) =
m
X
∇gi (x)∇gi (x)T
i=1
est semi-définie positive et la plupart du temps, avec m n, elle est définie
positive. La méthode obtenue de la méthode de Newton en ramplacant ∇2 g(x)
par H(x) est la méthode de Gauss-Newton :


donné,
x 0
Pm
Hk
= i=1 ∇gi (xk )∇gi (xk )T ,


xk+1 = xk − Hk−1 ∇g(xk ).
Pour l’ajustement de données (ti , yi ), soit la fonction résiduelle
ri (x) = yi − f (t, xi ),
i = 1, ..., m
où x est un vecteur de paramètres inconnus, f est une fonction non linéaire
connue. Nous voulons minimiser
φ(x) =
1 T
r (x)r(x).
2
Son gradient est
∇φ(x) = J T (x)r(x)
5
i
[S]
rate
1
0.038
0.050
2
0.194
0.127
3
0.425
0.094
4
0.626
0.2122
5
1.253
0.2729
6
2.500
0.2665
7
3.740
0.3317
Table 1 – Données expérimentales.
et sa matrice Hessienne est donnée par
H(x) = J T (x)J(x) +
m
X
ri (x)Hi (x)
i=1
∂(r1 ,..,rm )
est le Jacobien de r(x) et Hi (x) est le Hessien de r(xi ).
où J(x) = ∂(x
1 ,...,xn )
Mais le deuxième terme de H(x) est supposé petit proche de la solution, et nous
le négligeons. Ceci donne le système linéaire à résoudre à chaque itération :
J T (xk )J(xk )sk = J T (xk )r(xk )
(2)
puis la mise à jour
xk+1 = xk + sk .
Notons que l’équation (2) est le système d’équations normales et peut être résolue par une factorisation QR (ou une SVD). Finalement, nous répétons les
itérations jusqu’à la convergence.
Vitesse de réaction. Dans cet exemple, l’algorithme de Gauss–Newton
est utilisé pour ajuster un modèle en minimisant la somme des carrés entre les
observations et les prévisions du modèle. Dans une expérience de biologie, on
étudie la relation entre la concentration du substrat [S] et la vitesse de réaction
dans une réaction enzymatique à partir de données reportées dans la Table 1.
On souhaite ajuster les données à une courbe de la forme :
rate =
Vmax [S]
.
KM + [S]
L’estimation par moindres carrés porte sur les paramètres Vmax et KM . Pour
i = 1, ..., 7 on note par xi les valeurs de [S] et par yi la vitesse de réaction. On
pose β1 = Vmax et β2 = KM . Nous allons chercher β1 et β2 pour minimiser la
somme des carrés des résidus,
ri = yi −
β1 x i
,
β2 + x i
i = 1, ..., 7.
La jacobienne Jr du vecteur des résidus ri par rapport aux inconnus βj est une
matrice 7 × 2 dont la ligne i est
∂ri
−xi
=
,
∂β1
β2 + x i
∂ri
β1 x i
=
2.
∂β2
(β2 + xi )
Commençant avec l’estimation initiale β1 = 0.9 et β2 = 0.2 , il suffit de 5 itérations de l’algorithme de Gauss–Newton pour atteindre les estimations optimales
6
Itération
1
2
3
4
5
6
Σ7i=1 ri2
1.4455
0.01507
0.00846
0.00786
0.007844
0.007844
Estimation
[0.9 , 0.2]
[0.3327 , 0.2602]
[0.93428 , 0.24261]
[0.3578 , 0.5295]
[0.3614 , 0.5537]
[0.3618 , 0.5561]
Table 2 – Résultats de la méthode Gauss-Newton
Regression non lineaire pour reaction enzymatique
0.35
0.3
0.25
rate
0.2
0.15
0.1
0.05
0
0
0.5
1
1.5
2
[S]
2.5
3
3.5
4
Figure 1 – Courbe de régression non linéaire pour données observées.
β̂1 = 0.362 et β̂2 = 0, .556. Le critère de la somme des carrés des résidus chute de
1.02 à 0.0886 en 5 itérations. La Table 2 détaille les cinq itérations et la courbe
obtenue est tracée dans la Figure 1.
2.2
La méthode de Levenberg-Marquardt
Afin d’assurer la convergence globale de la méthode de Gauss-Newton, on
peut la combiner avec une recherche linéaire. L’itération obtenue est alors :
(
dk
= −Hk−1 ∇f (xk ),
xk+1 = xk + ρk dk ,
cependant, il n’y a pas de garantie que Hk reste définie positive et en général
on fait appel à la méthode de Levenberg-Marquardt qui remplace la matrice Hk
par Hk + λI où λ est un réel positif. La méthode est décrite par :
7

x0



H
k

d
k



xk+1
donné,
Pm
= i=1 ∇fi (xk )∇fi (xk )T ,
−1
= − (Hk + λI) ∇f (xk )
= xk + ρk d k .
Vitesse de réaction II. Le modèle Hougen-Watson pour la cinétique d’une
réaction est donnée par :
r=
β1 x2 − x3 /β5
1 + β2 x1 + β3 x2 + β4 x3
où
– x1 , x2 et x3 sont les concentrations d’hydrogène, n-pentane, isopentane
resp.,
– β1 , ..., β5 sont des paramètres inconnus,
– r̂1 , ..., r̂n sont des vitesses observées, pour des concentrations xij , i = 1, ...5,
j = 1, ..., n.
Formulation : chercher les valeurs des paramètres qui minimisent le carré
de l’erreur,
n
X
2
(r̂j − r(x, β)) .
min E =
β
j=1
Pour résoudre ce problème on utilisera la fonction nlinfit de Matlab qui
implémente l’algorithme de Levenberg-Marquardt.
3
Régression par modélisation statistique
– modélisation de l’erreur (qui a été négligée ci-dessus)
– intervalles de confiance
– maximum de vraisemblance
8
Téléchargement