Il metodo di Gauss-Newton per le regressioni non-lineari

Transcript

Il metodo di Gauss-Newton per le regressioni non-lineari
Il metodo di Gauss-Newton per le regressioni
non-lineari
Andrea Onofri
Dipartimento di Scienze Agrarie ed Ambientali
Università degli Studi di Perugia
Versione on-line: http://www.unipg.it/ onofri/RTutorial/index.html
1
Sviluppo del metodo iterativo
L’algoritmo di Gauss-Newton è basato sull’espansione in serie di Taylor; in
breve, il principio è che ogni funzione f(x) derivabile nel punto x0 e che
ammetta derivate fino all’ ordine n-1 in un intervallo che contiene il punto
x0 può essere approssimata con un polinomio P(x), di grado minore o uguale
ad n-1 e definito da:
P (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + f 00 (x0 )(x − x0 ) + ..... + f n (x0 )(x − x0 )
Nel punto x0 P(x) assume lo stesso valore della funzione f(x), mentre
per x diverso da x0 esso approssima solamente il valore reale della f(x). In
parole più semplici e fermando l’ espansione alla derivata prima, posso dire
che se ho una funzione f(x) derivabile in un punto x0 e della quale conosco
f(x0 ), posso utilizzare la retta tangente alla funzione in x0 per ottenere valori
approssimati per f(x) in un intorno di x0 , il che è utile, se la f è complessa.
Lo sviluppo di Taylor può trovare applicazione nelle regressioni non
lineari. Infatti, immaginiamo di avere due osservazioni sperimentali, con:
"
X=
0.5
2.5
#
"
Y =
1.3
2.0
#
Immaginiamo di voler descrivere il vettore Y con una funzione del tipo:
Y = exp(θ · X)
Nello spazio a due dimensioni (R2 ), il problema può essere posto come
in figura 1: il punto Y rappresenta la risposta osservata, mentre la risposta
attesa giace sulla curva E(Y), ottenuta assegnando al parametro θ i valori
possibili [E(Y) = g(θ)]:
"
E(Y ) =
exp(θ · 0.5)
exp(θ · 5.5)
1
#
1
SVILUPPO DEL METODO ITERATIVO
2
Figura 1: Geometria delle regressioni non-lineari
Trovare la risposta attesa E(Y) equivale a trovare il punto della curva più
vicino ad Y, minimizzando quindi lo scostamento . Tuttavia, a differenza
del caso lineare, la superficie dove giace la risposta attesa è curva, non lineare
(gli incrementi sono più grandi al crescere di θ) e, talvolta (non in questo
caso) la superficie è finita. Insomma, il problema della minimizzazione di non può essere sempre risolto direttamente in modo banale, come nel caso
lineare.
Possiamo quindi sfruttare le serie di Taylor, ed approssimare la g(θ)
tramite la sua derivata prima g’(θ). Il metodo è iterativo e si sviluppa in
questo modo.
PRIMA ITERAZIONE
1 - Fissiamo un valore iniziale verosimile per θ (ad esempio θ1 = 0).
2 - Tracciamo la derivata prima di g(θ) nel punto θ1 = 0. In figura 2, la
retta passa per il punto g(θ) e per il punto V, individuato da:
1
SVILUPPO DEL METODO ITERATIVO
"
g(θ1 ) =
"
V =
#
exp(0 · 0.5)
exp(0 · 2.5)
d[exp(θ1 ·0.5)]
dθ
d[exp(θ1 ·2.5)]
dθ
3
"
=
#
"
=
1
1
0.5
2.5
#
#
Figura 2: Linearizzazione della regressione
3 - Spostiamo l’origine degli assi in corrispondenza del punto g(θ1) ed
otteniamo quindi il punto Y1 definito come:
"
Y1 =
1.3 − 1
2.0 − 1
#
"
=
0.3
1.0
#
La distanza al quadrato di Y1 dall’origine degli assi è pari a
Y T Y = 1.09
1
SVILUPPO DEL METODO ITERATIVO
4
che rappresenta la devianza del residuo del modello non-lineare in questa
prima iterazione.
Ora il problema è posto in forma lineare: si tratta di trovare il punto
della retta g’(θ) più vicino a Y1 , cosa che può essere fatta con le usuali
metodiche (approssimazione lineare):
β = (V T V )−1 V T Y1 = 0.40769
Il valore di β indica di quanto ci dobbiamo spostare lungo la retta tangente (cioè quanto dobbiamo aggiungere o togliere a θ1) per trovare il punto
più vicino ad Y1 . Siccome la retta approssima il valore di g(θ1), se poniamo
θ2 = θ1 + β otteniamo una nuova stima di θ che ci porta più vicini di prima
al valore ricercato.
Possiamo quindi procedere ad una nuova iterazione.
SECONDA ITERAZIONE
1 - Fissiamo θ2 = 0.40769
2 - Individuiamo la derivata prima, generata da:
"
exp(0.40769 · 0.5)
exp(0.40769 · 2.5)
g(θ2 ) =
"
V =
d[exp(θ2 ·0.5)]
dθ
d[exp(θ2 ·2.5)]
dθ
#
#
"
=
"
1.226
2.771
0.613
6.928
=
#
#
3 - Spostiamo l’origine degli assi in corrispondenza del punto g(θ2) ed
otteniamo il punto Y2 :
"
Y2 =
1.3 − 1.226
2.0 − 2.771
#
"
=
0.074
−0.771
#
La devianza del residuo in questa seconda iterazione è pari a
Y2T Y2 = 0.599994
Calcoliamo ora un nuovo incremento
β = (V T V )−1 V T Y1 = −0.1095
e quindi un nuovo valore di θ:
θ3 = 0.40769 − 0.1095 = 0.2982
Proseguendo nelle iterazioni otteniamo i valori di θ e di devianza riportati
in tabella.
2
PER APPROFONDIMENTI
Iterazione
1
2
3
4
5
6
RSS
1.0900000
0.5999969
0.03092673
0.02259788
0.02259605
0.02259605
5
θ
0
0.4076923
0.2981916
0.2809176
0.2806507
0.2806524
Alla sesta iterazione la variazione del valore di θ diviene trascurabile cosı̀
come quella della devianza residua. Di conseguenza il processo iterativo può
essere arrestato, considerando di aver raggiunto la convergenza.
2
Per approfondimenti
BATES DM, WATTS DG (1988). Nonlinear Regression Analysis and Its
Applications. John Wiley & Sons, Inc., New York.