Consideriamo A vettore colonna dei coefficienti da trovare, Bt il vettore
riga dei dati disponibili.
Xt rappresenta la nostra stima ottenuta combinando linearmente A e Bt per
cui
stima di Xt = trasposta(A)*Bt
Volendo calcolare A tramite il metodo dei minimi quadrati otteniamo
(1)(questo so dimostrarlo)
A= Inversa ( Sommatoria per t=0 -> N-1 di ( Bt * trasposta(Bt) ) ) *
Sommatoria per t=0 -> N-1 di (Bt * Xt)
Passato l'istante N vogliamo aggiornare il vettore dei coefficienti A in
modo tale da includere il nuovo dato nella nostra stima, applichiamo dunque
la stima ricorsiva, definita dalle seguenti due formule, che sono nuovamente
in grado di dimostrare, partendo dalla (1):
A(n+1) = An + Inversa( S(n+1) ) * Bn * ( Xn - Trasposta(Bn) * An )
S(n+1) = Sn + Bn * Trasposta(Bn)
nelle quali abbiamo introdotto Sn cosě definito: Sn = Sommatoria per t=0 ->
n-1 di (Bt * Trasposta(Bt) ) da cui otteniamo banalmente, insieme alla (1)
che:
An = Inversa (Sn) * Sommatoria per t=0 -> N-1 di (Bt * Xt)
Adesso il problema della stima ricorsiva cosě ottenuta č che richiede
l'inversione della matrice S ad ogni passo della ricorsione, e ad ogni passo
della ricorsione tale matrice diventa sempre piů grande, complicando i
calcoli. Si decide cosě di calcolare la stima ricorsiva calcolando
direttamente l'inversa di S ad ogni passo della ricorsione ottenendo le
seguenti formule (che non so dimostrare):
A(n+1) = An + V(n+1) * Bn * ( Xn - Trasposta(Bn) * An )
V(n+1) = Vn - (Vn * Bn * Trasposta(Bn) * Vn) / (1+ Trasposta(Bn) * Vn * Bn)
nelle quali abbiamo introdotto Vn = Inversa (Sn).
Ammettendo ora che quanto sia scritto sia corretto (proviene da appunti
presi in classe) sareste capaci di dimostrare partendo dalla stima ricorsiva
calcolata tramite S a pervenire alle formule della stima ricorsiva calcolata
con V, considerando che i due sistemi ricorsivi, a parte per la differenza
nei tempi pratici di calcolo, sono matematicamente identici?
Il professore non ha dimostrato le formule della stima ricorsiva, ne lo
chiede negli esami, tuttavia mi infastidisce imparare a memoria delle
formule.
La stima ricorsiva con S me lo sono dimostrato da solo partendo dalle
formule dei minimi quadrati, tuttavia non riesco a ottenere la formula di
V(n+1) combinando la formula di S(n+1) ed il fatto che Vn = Inversa (Sn).
Grazie.
[zip]
> Ammettendo ora che quanto sia scritto sia corretto (proviene da appunti
> presi in classe) sareste capaci di dimostrare partendo dalla stima
ricorsiva
> calcolata tramite S a pervenire alle formule della stima ricorsiva
calcolata
> con V, considerando che i due sistemi ricorsivi, a parte per la differenza
> nei tempi pratici di calcolo, sono matematicamente identici?
[zip]
Nessuno ha la possibilitą di aiutarmi?
In fondo se non sbaglio si trarra solo di dimostrare l'identitą tra due
formule matriciali.
Per me quello che hai scritto è troppo complicato.
Intanto però potresti cominciare a spiegare:
come fai a moltiplicare tra loro due vettori riga? (trasposta(A)*Bt)
cosa è N?
Uhm... hai ragione, ho sbagliato a definire Bt, sono entrambi vettori
colonna.
Riprovo a spiegarmi vediamo se migliora.
Abbiamo un certo numero N di dati passati relativi ad una distribuzione, nel
caso particolare la domanda di un bene.
Dati noti: x(t-N), x(t-N+1), x(t-N+2), [...], x(t-2), x(t-1)
Racccogliamo questi dati, che dipendono dal tempo, nel vettore colonna Bt
(la t indica che dipende dal tempo).
Ora vogliamo calcolare una generica funzione stima che a partire dai dati
passati calcoli la domanda attuale mediante formula lineare.
Stima di x(t)= a1 * x(t-1) + a2 * x(t-2) + a3 * x(t-3) + [...] + an * x(t-N)
Consideriamo gli N coefficienti a1, a2, [...]. an, che sono costanti
(stazionari) nel tempo, e li raccogliamo nel vettore colonna A, e dunque
otteniamo:
(1): Stima di x(t) = trasposta(A) * Bt
Si vuole calcolare il vettore dei coefficienti mediante il metodo dei
minimi quadrati, ovvero si vuole trovare il vettore ottimo A tale che sia
minima la seguente funzione di costo:
(2): Costo da minimizzare = Sommatoria da 0 a N-1 di ( x(t) - Stima di
x(t) )^2
Sostituendo la (1) nella (2), ponendo a 0 il gradiente e osservando che
trasposta(A) * Bt = trasposta(Bt) * A otteniamo:
(3): A= Inversa ( Sommatoria per t=0 -> N-1 di ( Bt * trasposta(Bt) ) ) *
Sommatoria per t=0 -> N-1 di (Bt * Xt)
Una volta calcolato A non ci accontentiamo. Vogliamo raffinare il modello
stazionario così ottenuto abbandonando la stazionarietà e abbracciando la
ricorsione.
Vogliamo cioè, sulla base dell'errore di stima ottenuto all'istante
corrente, modificare i coefficienti della funzione lineare di stima per
migliorare la stima successiva.
A questo scopo introduciamo Sn così definito: (4): S(n) = Sommatoria per
t=0 -> n-1 di (Bt * Trasposta(Bt) )
Dalla (4) otteniamo banalmente che (5): S(n+1) = S(n) + B(n) * Trasposta(
B(n) ) e sostituendola nella (3) otteniamo semplicemente che (6): An =
Inversa (Sn) * Sommatoria per t=0 -> N-1 di (Bt * Xt).
Definiamo (7): A(n) = Inversa ( Sommatoria per t=0 -> n-1 di ( Bt *
trasposta(Bt) ) ) * Sommatoria per t=0 -> n-1 di (Bt * Xt)
Combinando la (7) e la (4) otteniamo il secondo pezzo della nostra
ricorsione (8): A(n+1) = An + Inversa( S(n+1) ) * Bn * ( Xn - Trasposta(Bn)
* An )
Per calcolare un passo della ricorsione rimane il problema di invertire Sn
che tende a diventare enorme, questo significa grande dispendio di tempo.
Modifichiamo la stima ricorsiva in modo da calcolarci passo dopo passo
direttamente l'inversa di S, che chiamiamo V. A seguito di una dimostrazione
che non conosco e vorrei imparare otteniamo:
A(n+1) = An + V(n+1) * Bn * ( Xn - Trasposta(Bn) * An )
V(n+1) = Vn - (Vn * Bn * Trasposta(Bn) * Vn) / (1+ Trasposta(Bn) * Vn * Bn)
Notare, prima di fare altro, che (1+ Trasposta(Bn) * Vn * Bn) è un numero,
non una matrice. A me aveva tratto in inganno.
Il problema rimane dimostrare l'espressione di V(n+1) a partire delle
formule precedenti.
A prima impressione mi sembrava facile, dopo che mi sono perso per strada
tre volte ho chiesto qui.