Parametri modello AR-GARCH
Ciao a tutti,
devo scrivere un programma in Matlab per un'applicazione di ingegneria. Essenzialmente ho un segnale audio e devo calcolarne la varianza condizionata tramite modello GARCH(1,1) molto più comunemente usato in economia.
Dunque io ho una sequenza
$y[n]$
so che la varianza è:
$var[n]=omega+alpha_1*u[n-1]+beta_1*var[n-1]$
Il mio problema è che non so come calcolare $omega$, $alpha_1$, $beta_1$
Inoltre ho provato ad usare la funzione garchfit di matlab
[Coeff,Errors,LLF,Innovations,sigmaCond,Summary] = garchfit(y);
ma non sono sicuro che sigmaCond sia il vettore che mi interessa
devo scrivere un programma in Matlab per un'applicazione di ingegneria. Essenzialmente ho un segnale audio e devo calcolarne la varianza condizionata tramite modello GARCH(1,1) molto più comunemente usato in economia.
Dunque io ho una sequenza
$y[n]$
so che la varianza è:
$var[n]=omega+alpha_1*u[n-1]+beta_1*var[n-1]$
Il mio problema è che non so come calcolare $omega$, $alpha_1$, $beta_1$
Inoltre ho provato ad usare la funzione garchfit di matlab
[Coeff,Errors,LLF,Innovations,sigmaCond,Summary] = garchfit(y);
ma non sono sicuro che sigmaCond sia il vettore che mi interessa
Risposte
E' come dici: in "sigmaCond" hai la serie storica della varianza condizionata e i parametri del modello sono in "coeff".
Sarebbe più istruttivo stimarlo manualmente però: trovi i parametri massimizzando la verosimiglianza e poi sostituisci e ti crei la serie della varianza condizonata.
Sarebbe più istruttivo stimarlo manualmente però: trovi i parametri massimizzando la verosimiglianza e poi sostituisci e ti crei la serie della varianza condizonata.
grazie mille per la risposta mi hai dato qualche indizio che mi è tornato molto utile 
Effettivamente vorrei farlo manualmente, perché non ho a disposizione l'intero segnale sin dall'inizio, bensì "mi arriva" a finestre di K campioni e su quella finestra devo calcolare la varianza. Capirai che farlo con matlab mi diventa molto lento
Sull'articolo che sto seguendo però non viene usata la funzione di verosimiglianza ma l'algoritmo RML (Recursive ML) che stima i parametri. Ed è qui il punto, che non ho ben capito come implementarlo

Effettivamente vorrei farlo manualmente, perché non ho a disposizione l'intero segnale sin dall'inizio, bensì "mi arriva" a finestre di K campioni e su quella finestra devo calcolare la varianza. Capirai che farlo con matlab mi diventa molto lento
Sull'articolo che sto seguendo però non viene usata la funzione di verosimiglianza ma l'algoritmo RML (Recursive ML) che stima i parametri. Ed è qui il punto, che non ho ben capito come implementarlo
Non sono sicuro di aver capito benissimo ma se vuoi avere diversi garch (leggi diversi $\omega$, $\alpha_1$,$\beta_1$) per ogni finestra io stimerei un garch su ogni intervallo di dati. Ciclo for e poi puoi usare garchfit o implementare tu la ML. Che articolo stai guardando?
ciao continuo a ringraziarti, perché vedo che te ne intendi e l'argomento non è molto conosciuto per cui non so a chi rivolgermi
Questo è l'articolo:
http://webee.technion.ac.il/Sites/Peopl ... ay2011.pdf
Ecco questo è il problema su cui sto lavorando per cercare di capire se devo usare un solo garch (stimando i parametri nella prima finestra e usarli per il resto del segnale) o uno per ogni finestra (e in questo caso se devo inizializzare i parametri a zero o con i valori trovati nella finestra precedente).
Questo è l'articolo:
http://webee.technion.ac.il/Sites/Peopl ... ay2011.pdf
Ecco questo è il problema su cui sto lavorando per cercare di capire se devo usare un solo garch (stimando i parametri nella prima finestra e usarli per il resto del segnale) o uno per ogni finestra (e in questo caso se devo inizializzare i parametri a zero o con i valori trovati nella finestra precedente).
Ho dato una lettura veloce all'articolo. Non avevo mai visto questo RML. Comunque da quello che ho capito in generale ti puoi fittare un garch unico su tutta la finestra usando l'RML (che è solo un'alternativa) ma volendo l'algoritmo RML si presta anche a stimare parametri time-varying (una sorta di kalman filter credo ma prendila con le pinze questa affermazione).
Leggi l'articolo dopo l'equazione (22) a p.4.
Leggi l'articolo dopo l'equazione (22) a p.4.
esattamente infatti per ora stavo provando un altro algoritmo in sostituzione dell'RML