• Aucun résultat trouvé

Interpolation par splines

Interpoler et extrapoler

5.4 Cas `a plusieurs variables

5.4.2 Interpolation par splines

La pr´esentation des splines cubiques dans le cas `a une variable fait craindre que les splines multivariables ne soient une affaire compliqu´ee. Les splines cubiques peuvent en fait ˆetre consid´er´ees comme un cas particulier du krigeage [242, 46], et le traitement du krigeage dans le cas `a plusieurs variables est plutˆot simple, au moins dans son principe.

5.4.3 Krigeage

Le nom de krigeage est un hommage au travail s´eminal de D.G. Krige sur les champs aurif`eres du Witwatersrand en Afrique du Sud, vers 1950 [131]. Cette tech-nique fut d´evelopp´ee et popularis´ee par G. Matheron, du Centre de g´eostatistique de l’ ´Ecole des mines de Paris, l’un des fondateurs de la g´eostatistique o`u elle joue un rˆole central [46, 41, 241]. Initialement appliqu´ee `a des probl`emes `a deux ou trois dimensions, o`u les facteurs d’entr´ee correspondaient `a des variables d’espace (comme dans la prospection mini`ere), elle s’´etend directement `a des probl`emes avec un nombre de dimensions bien sup´erieur (comme c’est souvent le cas en statistique industrielle).

Nous montrons ici, sans justification math´ematique pour le moment, comment la version la plus simple du krigeage peut ˆetre utilis´ee pour de l’interpolation `a plusieurs dimensions. Les ´equations qui suivent seront ´etablies dans l’exemple 9.2. Soit y(x) la valeur de la sortie scalaire `a pr´edire sur la base de la valeur prise par le vecteur d’entr´ee x. Supposons qu’une s´erie d’exp´eriences (qui peuvent ˆetre des exp´eriences sur ordinateur ou de vraies mesures physiques) ait fourni les valeurs de sortie

yi= f (xi), i= 1,··· ,N, (5.57) pour N valeurs num´eriques xi du vecteur des entr´ees, et soit y le vecteur de ces valeurs de sortie. Notons que le sens de y ici diff`ere de celui dans (5.1). La pr´ediction par krigeagey(x) de la valeur prise par f (x) pour xb 6∈ {xi, i = 1,··· ,N} est lin´eaire en y, et les poids de la combinaison lin´eaire d´ependent de la valeur de x. On peut donc ´ecrire

b

y(x) = cT(x)y. (5.58) Il semble naturel de supposer que plus x est proche de xiet plus f(x) ressemble `a f(xi). Ceci conduit `a d´efinir une fonction de corr´elation r(x, xi) entre f (x) et f (xi) telle que

r(xi, xi) = 1 (5.59) et que r(x, xi) d´ecroisse vers z´ero quand la distance entre x et xiaugmente. Cette fonction de corr´elation d´epend souvent d’un vecteur p de param`etres `a r´egler `a partir des donn´ees disponibles. Elle sera alors not´ee r(x, xi, p).

Une fonction de corr´elation param´etr´ee couramment utilis´ee est r(x, xi, p) = dim x

j=1 exp(−pj|xj− xi j|2). (5.60) Les param`etres de port´ee pj> 0 sp´ecifient la vitesse avec laquelle l’influence de la mesure yid´ecroˆıt quand la distance `a xicroˆıt. Si p est trop grand alors l’influence des donn´ees d´ecroˆıt tr`es vite etby(x) tend vers z´ero d`es que x n’est plus dans le voisinage

imm´ediat d’un xi. 

Supposons, pour simplifier, que la valeur de p ait ´et´e choisie auparavant, de sorte que p n’apparaˆıt plus dans les ´equations. (Des m´ethodes statistiques sont disponibles pour estimer p `a partir des donn´ees, voir la remarque 9.5.)

La pr´ediction par krigeage est gaussienne, et donc enti`erement caract´eris´ee (pour toute valeur donn´ee du vecteur d’entr´ee x) par sa moyenneby(x) et sa varianceσb2(x). La moyenne de la pr´ediction est

b y(x) = rT(x)R−1y, (5.61) o`u R=      r(x1, x1) r(x1, x2) ··· r(x1, xN) r(x2, x1) r(x2, x2) ··· r(x2, xN) .. . ... . .. ... r(xN, x1) r(xN, x2) ··· r(xN, xN)      (5.62) et rT(x) = r(x, x1) r(x, x2) ··· r(x,xN)  . (5.63) La variance de la pr´ediction est

b

σ2(x) = σ2

y1 − rT(x)R−1r(x) , (5.64) o`u σ2

y est une constante de proportionnalit´e, qui peut elle aussi ˆetre estim´ee `a partir des donn´ees, voir la remarque 9.5.

Remarque 5.6.L’´equation (5.64) permet de fournir des intervalles de confiance pour la pr´ediction ; sous l’hypoth`ese que le processus qui g´en`ere les donn´ees est gaussien de moyenney(x) et de varianceb σb2(x), la probabilit´e que y(x) appartienne `a l’inter-valle

I(x) = [by(x)− 2bσ(x),y(x) + 2b σb(x)] (5.65) est approximativement ´egale `a 0.95. Le fait que le krigeage puisse accompagner ses pr´edictions d’un tel label de qualit´e se r´ev`ele tr`es utile, en particulier dans le contexte de l’optimisation (voir la section 9.4.3).  Dans la figure 5.4, il y a un seul facteur d’entr´ee x∈ [−1,1] par souci de lisibilit´e. Le graphe de la fonction f(·) `a interpoler est trac´e avec des tirets, et les points interpol´es sont indiqu´es par des carr´es. Le graphe de la pr´edictionby(x) obtenue par

interpolation est en trait plein et la r´egion de confiance `a 95% pour cette pr´ediction est en gris. Il n’y a pas d’incertitude sur la pr´ediction aux points interpol´es, et plus xs’´eloigne d’un point o`u f(·) a ´et´e ´evalu´ee plus la pr´ediction devient incertaine.

Fig. 5.4 Interpolateur par krigeage (merci `a Emmanuel Vazquez, de Sup´elec)

Puisque ni R ni y ne d´ependent de x, on peut ´ecrire

b

y(x) = rT(x)v, (5.66) o`u

v= R−1y (5.67) peut ˆetre calcul´e une fois pour toute en r´esolvant le syst`eme d’´equations lin´eaires

Rv= y. (5.68) Ceci simplifie grandement l’´evaluation de y(x) pour toute nouvelle valeur de x.b Notons que (5.61) garantit qu’il y a interpolation, puisque

rT(xi)R−1y= (ei)Ty= yi, (5.69) o`u eiest la i-`eme colonne de IN. Mˆeme si ceci est vrai pour n’importe quelle fonc-tion de corr´elafonc-tion et n’importe quelle valeur de p, la structure de la foncfonc-tion de corr´elation et la valeur donn´ee `a p influent sur la qualit´e de la pr´ediction.

La simplicit´e de (5.61), valide quel que soit le nombre des facteurs d’entr´ee, ne doit pas cacher que la r´esolution de (5.68) pour calculer v peut ˆetre un probl`eme

mal conditionn´e. Une fac¸on d’am´eliorer le conditionnement est de forcer r(x, xi) `a z´ero quand la distance entre x et xid´epasse un seuil δ `a choisir, ce qui revient `a dire que seules les paires(yi, xi) telles que||x − xi|| 6 δ contribuent `aby(x). Ceci n’est faisable que s’il y a assez de xidans le voisinage de x, ce que la mal´ediction de la dimensionrend impossible quand dim x est trop grand (voir l’exemple 8.6).

Remarque 5.7.Une l´eg`ere modification des ´equations du krigeage transforme l’in-terpolation des donn´ees en leur approximation. Il suffit de remplacer R par

R0= R + σ2

mI, (5.70) o`u σm2> 0. En th´eorie, σ2

mdevrait ˆetre ´egal `a la variance de la pr´ediction en tout xio`u des mesures ont ´et´e effectu´ees, mais on peut le voir comme un param`etre de r´eglage suppl´ementaire. Cette transformation facilite aussi le calcul de v quand R est mal conditionn´ee, et c’est pourquoi un petit σm2 peut ˆetre utilis´e mˆeme quand le bruit sur les donn´ees est n´egligeable.  Remarque 5.8.Le krigeage peut aussi ˆetre utilis´e pour estimer des d´eriv´ees et des int´egrales [41, 234], ce qui fournit une alternative aux approches pr´esent´ees au

cha-pitre 6. 

5.5 Exemples MATLAB

La fonction

f(x) = 1

1+ 25x2 (5.71) fut utilis´ee par Runge pour ´etudier les oscillations non d´esir´ees qu’on peut observer quand on interpole des donn´ees recueillies en des points r´eguli`erement espac´es avec un polynˆome de degr´e ´elev´e. Des donn´ees sont g´en´er´ees en n+ 1 points de ce type par le script

for i=1:n+1,

x(i) = (2*(i-1)/n)-1; y(i) = 1/(1+25*x(i)ˆ2); end

Nous commenc¸ons par interpoler ces donn´ees grˆace `a polyfit, qui proc`ede via la construction d’une matrice de Vandermonde, et `a polyval, qui calcule la valeur prise par le polynˆome interpolateur r´esultant sur une grille r´eguli`ere fine sp´ecifi´ee dans FineX, comme suit

N = 20*n

FineX = zeros(N,1); for j=1:N+1,

FineX(j) = (2*(j-1)/N)-1; end

polynomial = polyfit(x,y,n);

fPoly = polyval(polynomial,FineX);

La figure 5.5 pr´esente les r´esultats obtenus avec neuf points d’interpolation, en uti-lisant donc un polynˆome de degr´e huit. Le graphe de la fonction interpol´ee est en trait plein, les points d’interpolation sont indiqu´es par des cercles et le graphe du polynˆome interpolateur est en trait mixte. Accroˆıtre le degr´e du polynˆome tout en gardant des points d’interpolation xi r´eguli`erement espac´es ne fait qu’aggraver la situation. −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x y

Fig. 5.5 Interpolation polynomiale pour neuf valeurs r´eguli`erement espac´ees de x ; le graphe de la fonction interpol´ee est en trait plein

Une meilleure option consiste `a remplacer les xir´eguli`erement espac´es par des points de Tchebychev satisfaisant (5.13) et `a g´en´erer les donn´ees par le script

for i=1:n+1,

x(i) = cos((i-1)*pi/n); y(i) = 1/(1+25*x(i)ˆ2); end

Les r´esultats avec neuf points d’interpolation montrent encore quelques oscillations, mais nous pouvons maintenant sans danger accroˆıtre l’ordre du polynˆome pour am´eliorer la situation. Avec 21 points d’interpolation nous obtenons les r´esultats de la figure 5.6.

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x y

Fig. 5.6 Interpolation polynomiale pour 21 valeurs de Tchebychev de x ; le graphe de la fonction interpol´ee est en trait plein

Une option alternative est l’utilisation de splines cubiques. Ceci peut ˆetre men´e `a bien en utilisant les fonctions spline (qui calcule le polynˆome par morceaux) et ppval(qui ´evalue ce polynˆome par morceaux en des points `a sp´ecifier). On peut ainsi ´ecrire

PieceWisePol = spline(x,y);

fCubicSpline = ppval(PieceWisePol,FineX);

Les r´esultats obtenus avec neuf xir´eguli`erement espac´es sont pr´esent´es en figure 5.7.

5.6 En r´esum´e

— Pr´ef´erer l’interpolation `a l’extrapolation, chaque fois que possible.

— L’interpolation peut ˆetre une mauvaise r´eponse `a un probl`eme d’approxima-tion ; il ne sert `a rien d’interpoler des donn´ees bruit´ees ou incertaines. — L’interpolation polynomiale sur la base de donn´ees recueillies `a des valeurs

r´eguli`erement espac´ees de la variable d’entr´ee doit ˆetre limit´ee `a des po-lynˆomes de degr´e bas.

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x y

Fig. 5.7 Interpolation par spline cubique pour neuf valeurs de x r´eguli`erement espac´ees ; le graphe de la fonction interpol´ee est en trait plein

— Quand les donn´ees sont recueillies en des points de Tchebychev, l’interpola-tion avec des polynˆomes de degr´e tr`es ´elev´e devient viable.

— L’expression explicite d’un polynˆome interpolateur peut ˆetre obtenue en r´esolvant un syst`eme d’´equations lin´eaires.

— Le conditionnement du syst`eme lin´eaire `a r´esoudre pour obtenir les coeffi-cients du polynˆome interpolateur d´epend de la base choisie pour le polynˆome, et la base en puissances peut ne pas ˆetre la plus appropri´ee, car les matrices de Vandermonde sont mal conditionn´ees.

— L’interpolation de Lagrange est une des meilleures m´ethodes disponibles pour l’interpolation polynomiale, pourvu que sa variante barycentrique soit employ´ee.

— L’interpolation par spline cubique requiert la r´esolution d’un syst`eme lin´eaire tridiagonal, ce qui peut ˆetre men´e `a bien de fac¸on tr`es efficace, mˆeme quand le nombre des points `a interpoler est tr`es grand.

— L’interpolation par des fonctions rationnelles est plus flexible que l’interpo-lation par des polynˆomes, mais plus compliqu´ee (mˆeme si les ´equations qui imposent l’interpolation peuvent ˆetre rendues lin´eaires).

— Le principe d’extrapolation de Richardson est utilis´e quand l’extrapolation ne peut ˆetre ´evit´ee, par exemple pour de l’int´egration ou de la diff´erentiation.

— Le krigeage utilise des formules simples pour l’interpolation (ou l’approxi-mation) de fonctions de plusieurs variables, et propose une estim´ee de la qualit´e des pr´edictions qu’il fournit.