Approssimazione di dati nel senso dei minimi quadrati

Approssimazione di dati nel senso dei minimi quadrati
Corso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis
a.a. 2013-14
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Il best fitting
In molte applicazioni accade di avere una certa quantità di dati
(solitamente elevata) e di voler descrivere l’andamento del fenomeno
che ha generato tali dati ed utilizzare quindi il modello, cosı̀ dedotto,
per “prevedere” valori in corrispondenza di ascisse non comprese nei
dati iniziali.
Tale strategia è anche utilizzata per “correggere” dati sperimentali.
Facciamo un esempio.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Esempio
A tutti è nota la prima legge di Ohm
V = RI
dove I misura l’intensità di corrente, R è la resistenza del mezzo
attraversato dalla corrente e V è la differenza di potenziale.
Supponiamo allora di fare il seguente esperimento: preso un filo con
resistenza costante, mediante due strumenti di misura si calcola
l’intensità della corrente (con l’amperometro) e la differenza di
potenziale (con il voltmetro).
Se si suppone la temperatura costante, la resistenza è costante e
dunque la legge fisica è di tipo lineare (cioè la differenza di potenziale
è direttamente proporzionale all’intensità di corrente).
Tuttavia i dati sperimentali in genere non “disegnano” una retta.
Ciò è dovuto al fatto che gli strumenti di misura producono degli
errori nelle misurazioni.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Realisticamente si perviene ad una situazione del tipo
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Tuttavia essendo noto che la legge è di tipo lineare è lecito cercare
una retta che si allontani il meno possibile dai dati sperimentali.
Nella precedente figura la retta è disegnata in blu.
Tale retta, detta di regressione, realizza il cosiddetto “best fitting”
(letteralmente il “migliore adattamento”) dei dati.
Nel nostro esempio la legge, nota a priori, era di tipo lineare. È ovvio
tuttavia che il ragionamento può essere generalizzato a leggi, e quindi
a curve, di qualsiasi tipo.
Vediamo allora come questo problema di approssimazione di dati sia
legato al problema dei minimi quadrati lineari.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Approssimazione nel senso dei minimi quadrati
Supponiamo di avere m ascisse x1 , x2 , . . . , xm ed in corrispondenza m
ordinate y1 , y2 , . . . , ym . In altre parole sono note le coppie del piano
cartesiano (xi , yi ), i = 1, . . . , m.
Scegliamo quindi delle funzioni base ϕ1 (x), ϕ2 (x), . . . , ϕn (x), con
n << m e supponiamo di approssimare il fenomeno che ha generato
le coppie (xi , yi ), mediante la funzione
fn (x) = c1 ϕ1 (x) + c2 ϕ2 (x) + . . . + cn ϕn (x)
combinanzione lineare delle ϕk (x), k = 1, . . . , n, mediante le costanti
ck , k = 1, . . . , n, in modo tale che l’errore commesso nei punti dato
sia minimo nel senso della norma 2, cioè fn realizzi il
min
fn
m
X
i=1
[yi − fn (xi )]2 = min
m
X
(c1 ,...,cn )
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
i=1
"
yi −
n
X
#2
ck ϕk (xi )
k=1
Corso di Matematica per la Chimica
.
Approssimazione di dati nel senso dei minimi quadrati
Se si pone allora
A = (ϕk (xi ))i=1,...,m,k=1,...,n ,
b = (y1 , y2 , . . . , ym )T ,
c = (c1 , . . . , cn )T ,
allora il problema precedente diventa
min
(c1 ,...,cn )T
kb − Ack22 ,
cioè un problema ai minimi quadrati lineari, in cui gli elementi della
matrice A sono dati dai valori delle funzioni base nelle ascisse xi .
In genere le funzioni ϕk (x), sono scelte in accordo con la natura del
problema.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Per esempio nel caso della legge di Ohm, essendo il modello di tipo
lineare, si sceglie
ϕ1 (x) = 1, ϕ2 (x) = x
e quindi f2 (x) = c1 + c2 x è la retta (di regressione) che minimizza la
quantità
m
X
[yi − c1 − c2 xi ]2 .
i=1
In termini di matrice e vettori si ha


1 x1
 1 x2 


c1
 1 x3 
,
A=
, c =
c2
 .. .. 
 . . 
1 xm
Dott.ssa Maria Carmela De Bonis a.a. 2013-14




b=


y1
y2
y3
..
.
ym
Corso di Matematica per la Chimica







Approssimazione di dati nel senso dei minimi quadrati
In generale se si suppone che il modello sia di tipo polinomiale si
sceglie ϕk (x) = xk−1 , cioè la base standard dei polinomi, e fn risulta
quindi un polinomio di grado n − 1.
Dunque in questo caso la matrice A è una matrice di Vandermonde
rettangolare


1 x1 x12 . . . x1n−1
 1 x2 x2 . . . xn−1 
2


2
 1 x x2 . . . xn−1 
3


3
3

.
.
.
.
.
A=
..
..
.. 
 .. ..


 . .

.
.
.
.
.
.
.
.
 . .
.
.
. 
2
n−1
1 xm xm
. . . xm
e come è noto rank(A) = n se tutti gli xi sono distinti.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
La scelta polinomiale tuttavia non è l’unica possibile.
Per esempio se è noto che il fenomeno è periodico, è possibile
utilizzare come funzioni della base quelle del sistema trigonometrico.
Si pone cioè
ϕ1 (x) = 1,
ϕ2 (x) = cos x,
ϕ4 (x) = cos 2x,
ϕ3 (x) = sin x,
ϕ5 (x) = sin 2x,
...
e dunque fn risulterà essere un polinomio trigonometrico di ordine n.
Ovviamente è possibile utilizzare altri modelli di approssimazione.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Se per esempio è noto che il fenomeno che genera i dati è limitato, il
modello polinomiale può risultare fortemente inadeguato (i polinomi,
“lontano” dall’intervallo che contiene le radici, crescono
rapidamente).
In questo caso può essere più performante una funzione di tipo spline
cubica, e quindi le ϕj (x) possono essere scelte coincidenti con una
base delle spline cubiche (per esempio le spline cardinali oppure la
base delle B-spline).
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Sorgono spontanee le seguenti domande: il problema dei minimi
quadrati ammette sempre soluzione? In quali circostanze è unica? La
risposta ci è data dal seguente teorema.
Teorema
Il problema kb − Ack22 =minimo ammette sempre soluzione. La
soluzione è unica se e soltanto se le colonne della matrice A sono
linearmente indipendenti. Se invece le colonne di A sono linearmente
dipendenti allora il problema ha infinite soluzioni; tuttavia quella di
lunghezza euclidea minima è unica.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Le functions Matlab
Il Matlab risolve il problema del best fitting nel caso si voglia
costruire un’approssimazione di tipo polinomiale.
Le functions coinvolte sono:
polyfit: c=polyfit(x,y,n), costruisce il vettore c dei coefficienti
(ordinati in senso discendente rispetto alle potenze) del
polinomio di grado n di best fitting dei dati (xi , yi ). Il problema
dei minimi quadrati lineari, con A matrice di Vandermonde, è
risolto mediante il \, in quanto la matrice dei coefficienti è
risaputamente mal condizionata.
polyval: yy = polyval(c,xx), calcola il polinomio di coefficienti c
nei punti del vettore xx.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Inoltre se si hanno dei dati memorizzati nei vettori x e y e si vuole
riportarli su grafico si può usare il comando plot.
Per esempio plot(x,y,’.’), apre automaticamente la finestra con il
grafico nel quale i punti del piano (xi , yi ) sono indicati con un punto.
A questo punto dal menù della finestra si può scegliere nella voce
“Tools”, l’opzione “Basic Fitting”.
Si attiva in questo modo automaticamente la “Basic Fitting GUI”
(Graphical User Interface) che consente di scegliere vari possibili
approssimanti per i dati.
In questo modo è possibile selezionare polinomi dei minimi quadrati
di vario grado (dal primo al decimo) ed averne i coefficienti e l’analisi
grafica dei residui, nonché il calcolo della norma 2 del residuo.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
L’analisi dei dati a posteriori
Quando si hanno dei dati sperimentali ed è nota la legge che li genera
(come nel caso della legge di Ohm), l’approssimazione nel senso dei
minimi quadrati può essere utilizzata per “scartare” dei valori che
sono “sbagliati” (i cosiddetti outliers) e quindi per correggerli.
Infatti una volta costruita l’approssimante fn è possibile calcolare i
residui come yi − fn (xi ), e decidere di eliminare i dati yi che si
“allontanano” troppo dal valore fn (xi ).
In altri casi invece la legge che genera i dati non è nota affatto e si
vuole determinare il modello proprio mediante una strategia ai minimi
quadrati.
Una prima analisi grossolana consiste nel guardare il grafico dei
residui. Per ogni valore xi si riporta in ordinata il residuo yi − fn (xi ).
Se non vi sono distribuzioni “strane” in tale grafico, se cioè i residui
sembrano distribuiti casualmente, allora il modello è accettabile.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Esistono poi vari indicatori statistici che forniscono informazioni sulla
bontà del modello.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Esempio
Supponiamo di aver effettuato i seguenti rilevamenti:
t
1
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
10
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
E(t)
1.5
1.1
1.4
1.5
1.4
1.5
1.8
2
2.1
2.01
2.25
2.5
2.3
2.5
2.4
2.5
2.4
2.3
2.35
2.3
2.2
1.9
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Denotando con x il vettore che ha per componenti gli elementi della
prima colonna della tabella e con y il vettore che ha per componenti
gli elementi della seconda colonna della tabella, prima di tutto
disegnamo l’andamento dei dati con il comando
plot(x,y,’*’)
Otteniamo il grafico
2.5
2
1.5
1
1
2
3
4
5
6
7
8
9
10
Determiniamo con il metodo dei minimi quadrati i coefficienti del
polinomio y = ax3 + bx2 + cx + d e valutiamo il valore del residuo.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
La matrice A è la seguente
A = {ai,k }i=1,...,22,k=1,2,3,4 = {ϕk (xi )}i=1,...,22,k=1,2,3,4 .
Risolvendo il sistema Ac = y con la function \ del Matlab otteniamo
il vettore


1.184020106917738e + 000
 8.419644139471798e − 002 

c=
 4.436439798930818e − 002  .
−4.349397590361441e − 003
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Approssimazione di dati nel senso dei minimi quadrati
Dunque il polinomio di grado 3 che approssima meglio i dati del
nostro esperimento nel senso dei minimi quadrati è
2.5
data 2
cubic
y = − 0.0043*x3 + 0.044*x2 + 0.084*x + 1.2
2
1.5
1
1
2
3
4
5
6
7
Il residuo, calcolato con il comando
norm(A c-y)
è 0.5804853949106901.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
8
9
10