Stima congiunta ARMA - GARCH con gretl

  • Ecco la 66° Edizione del settimanale "Le opportunità di Borsa" dedicato ai consulenti finanziari ed esperti di borsa.

    I principali indici azionari hanno vissuto una settimana turbolenta, caratterizzata dalla riunione della Fed, dai dati macro importanti e dagli utili societari di alcune big tech Usa. Mercoledì scorso la Fed ha confermato i tassi di interesse e ha sostanzialmente escluso un aumento. Tuttavia, Powell e colleghi potrebbero lasciare il costo del denaro su livelli restrittivi in mancanza di progressi sul fronte dei prezzi. Inoltre, i dati di oggi sul mercato del lavoro Usa hanno mostrato dei segnali di raffreddamento. Per continuare a leggere visita il link

masterblaster

Nuovo Utente
Registrato
8/2/08
Messaggi
15
Punti reazioni
0
Salve ragazzi, sto svolgendo l'esempio del testo Analysis of financial time series -Tsay.
(Non so se avete il testo e potete seguirmi per risolvere la mia perplessità)
A pag. 116 viene analizzato l'indice S&P500.
Dopo aver analizzato la serie storica l'autore calcola MEAN EQUATION per la media condizionta con un modello AR(3).
Dopodiché per catturare la volatilità condizionata l'autore prende in considerazione il modello GARCH (1,1) che viene calcolato attraverso una stima congiunta del modello AR(3)..
I valori del ultimo modello AR (3) sono leggermente diversi dal modello Mean Equation.
Non riesco a capire il motivo di una stima congiunta del modello ARMA - GARCH.

Inoltre mi potete spiegare come si può fare una stima congiunta nel programma gretl

Grazie in anticipo.
 
Fammi capire se ho capito: col GARCH-M esce una media non condizionata dei rendimenti; con un AR(3) e residui autocorrelati eteroschedastici modellati col GARCH(1,1) ti esce un'altra media non condizionata.

In particolare, nel secondo caso, in gretl hai stimato separatamente i coefficienti dell'AR(3) costante inclusa e solo dopo hai stimato un GARCH(1,1) per capire quale fosse la varianza di questi residui. Corretto?

Mi sembra che il GARCH-M in gretl non lo puoi mica fare. Però puoi fare il secondo caso che ho scritto, che a mio avviso è corretto.
 
Fammi capire se ho capito: col GARCH-M esce una media non condizionata dei rendimenti; con un AR(3) e residui autocorrelati eteroschedastici modellati col GARCH(1,1) ti esce un'altra media non condizionata.

In particolare, nel secondo caso, in gretl hai stimato separatamente i coefficienti dell'AR(3) costante inclusa e solo dopo hai stimato un GARCH(1,1) per capire quale fosse la varianza di questi residui. Corretto?

Mi sembra che il GARCH-M in gretl non lo puoi mica fare. Però puoi fare il secondo caso che ho scritto, che a mio avviso è corretto.

Grazie Cren per la risposta.L'esempio riguarda il GARCH semplice e non GARCH in the mean
Io ho seguito il secondo approccio che tu hai citato; cioè ho calcolato prima la media condizionata con un AR(3) + costante e dopo ho calcolato la varianza dei residui del AR(3) con un GARCH(1,1).
I valori che mi escono fuori sono tutti statisticamente significativi ma non coincidono con l'esempio del testo.
Generalizzando il caso non ho capito cosa si intende per il calcolo della stima congiunta di un modello ARMA con un modello GARCH.
 
Generalizzando il caso non ho capito cosa si intende per il calcolo della stima congiunta di un modello ARMA con un modello GARCH.
Se in gretl è possibile farlo in qualche modo, al momento non ne sono a conoscenza. Per quanto riguarda invece la componente teorica, che evidentemente giustifica la differenza di risultato tra una stima fatta in due momenti distinti ed una "congiunta", ritengo esista o un vincolo ulteriore da dare in pasto alla MLE fatta separatamente per i due casi o, più probabile, un algoritmo che affronti in contemporanea entrambe le MLE con già una condizione al contorno implicita nella funzione stimata.
 
la stima del processo della media e della varianza andrebbe sempre fatta congiuntamente e così in genere fanno i software. Non uso gretl ma sono certo che lo faccia anche lui. Se l'equazione della media dipende da un vettore theta di parametri e h_t è il solito garch(1,1) avremo che:

y_t = mu_t(theta) + epsilon_t e y_t|I_{t-1}~N(mu_t,h_t).

La loglikelihood verrà massimizzata rispetto a Theta = (theta',alpha_0,alpha_1,alpha_2)' dove i tre alpha sono i parametri del garch.
 
Ultima modifica:
la stima del processo della media e della varianza andrebbe sempre fatta congiuntamente e così in genere fanno i software. Non uso gretl ma sono certo che lo faccia anche lui. Se l'equazione della media dipende da un vettore theta di parametri e h_t è il solito garch(1,1) avremo che:

y_t = mu_t(theta) + epsilon_t e y_t|I_{t-1}~N(mu_t,h_t).

La loglikelihood verrà massimizzata rispetto a Theta = (theta',alpha_0,alpha_1,alpha_2)' dove i tre alpha sono i parametri del garch.
.::michele::., credo che quello sia un discorso diverso: gretl consente di inserire la costante (media non condizionale) e quante esplicative si vuole (oltre al termine di shock del quadrato dei residui e alla relazione ricorsiva, intendo), quello che ci sarebbe da capire è se la MLE fatta in quel modo restituisce effettivamente l'AR(3) a residui GARCH che masterblaster vuole.

masterblaster, prova un po' a vedere che succede, mica che prendiamo quel furbone di R. Tsay :D Inserisci tra le esplicative una costante const e la serie stessa con un 2 ritardi, vediamo che accade.
 
Inoltre mi potete spiegare come si può fare una stima congiunta nel programma gretl

Grazie in anticipo.

ho appena fatto un tentativo or ora con gretl e una serie a caso di rendimenti azionari... modelli per serie storiche->garch, sopra definisci la variabile dipendente e cliccando in fondo a sx su ritardi puoi aggiungerci tutti i ritardi che vuoi (effettivamente non è molto intuitivo il menù)... lanci il tutto e ti ritorna equazione della media più parametri garch
 
Ultima modifica:
Grazie Cren, Grazie Michele..
ho analizzato la variance equation GARCH(1,1) calcolata sui residui di Mean equation AR(3).
Ljung Box statistics calcolata sui residui standardizzati al quadrato del GARCH (1,1) non presenta nessuna autocorrelazione....
inoltre il grafico dei rendimenti storici sovrapposto insieme al residuals e conditional std. dev. dimostra di catturare bene la dinamica.
quindi credo che ciò sia sufficiente per concludere che il modello cattura bene la dinamica della varianza, anche se i valori che ho trovati io sono leggermente diversi da quelli calcolati da Tsay. che ne pensate voi?
In gretl ho trovato add-in graphical user interface -GIG che permette di calcolare la stima congiunta di ARMA e GARCH anche se non ho capito la base teorica.

.::michele::., credo che quello sia un discorso diverso: gretl consente di inserire la costante (media non condizionale) e quante esplicative si vuole (oltre al termine di shock del quadrato dei residui e alla relazione ricorsiva, intendo), quello che ci sarebbe da capire è se la MLE fatta in quel modo restituisce effettivamente l'AR(3) a residui GARCH che masterblaster vuole.

masterblaster, prova un po' a vedere che succede, mica che prendiamo quel furbone di R. Tsay :D Inserisci tra le esplicative una costante const e la serie stessa con un 2 ritardi, vediamo che accade.
 
masterblaster quindi hai stimato AR(3) salvato i residui e poi ci hai stimato sopra un garch? se è così non è la cosa migliore

gretl ti consente di stimare tutto insieme... dei minimi scostamenti poi possono dipendere anche dall'algoritmo usato per massimizzare la ML

la base teorica è la stima di massima verosimiglianza classica. Metti che tu voglia stimarti i parametri di un AR(3) con ML ma anzichè avere sigma^2 hai h_t (che dipende da alpha0/alpha1/alpha2)...
 
masterblaster quindi hai stimato AR(3) salvato i residui e poi ci hai stimato sopra un garch? se è così non è la cosa migliore

gretl ti consente di stimare tutto insieme... dei minimi scostamenti poi possono dipendere anche dall'algoritmo usato per massimizzare la ML

la base teorica è la stima di massima verosimiglianza classica. Metti che tu voglia stimarti i parametri di un AR(3) con ML ma anzichè avere sigma^2 hai h_t (che dipende da alpha0/alpha1/alpha2)...
No, credo abbia fatto tutto assieme. A scanso di equivoci, l'immagine è eloquente :)

const dovrebbe dare la media non condizionata dei residui, mentre i ritardi della variabile dipendente danno un AR(3). Immagino fosse quello che intendevi anche tu, .::michele::..
 

Allegati

  • Immagine.gif
    Immagine.gif
    12,1 KB · Visite: 1.521
  • ImmagineG.GIF
    ImmagineG.GIF
    6,2 KB · Visite: 1.419
Chiedo un parere agli esperti..
corregetemi per favore..vi spiego la procedura che ho seguita
1) analisi serie storica dei rendimenti e autocorrelazioni
risultato:
la lag 1 3 7 presentano valori al di fuori delle bande
metodologia:
per essere certo del processo AR(3) con i lag sopra specificati ho diviso la serie storica dei rendimenti in due e entrambe le serie storiche presentano approsimativamente lo stesso andamento nel grafico delle autocorrelazioni qsto mi dà certezza che la media condizionata segue un processo AR(3). ho catturati il processo escludendo la costante in quanto statisticamente insignificativo.
ho salvato i residui.
ho fatto ARCH test sui residui al quadrato che conferma gli effetti ARCH
2)dal menù GARCH VARIANTS ho fatte varie prove giocando sui lag p q di GARCH(p, q) scegliendo come variabile dipendente i residui del AR(3) precedentemente salvati
solo GARCH(1,1) presenta valori significativi.
3)analizzo i residui standardizzati graficamente con una normale gaussiana
4) analizzo graficamente la serie storica dei residui sovrapposta al std. dev. stimato con il modello GARCH(1,1)
5) faccio la diagnosi del GARCH (1,1) sui residui al quadrato.
non ci sono autocorrelazioni. con questo concludo che il modello approssima bene la varianza condizionata.
Risultato finale:
1) ho la mean equation AR(3) stimata sui lag 1, 3 e 7.
2) la variance equation stimata con GARCH (1,1)

ho sbagliato?
:wall:
No, credo abbia fatto tutto assieme. A scanso di equivoci, l'immagine è eloquente :)

const dovrebbe dare la media non condizionata dei residui, mentre i ritardi della variabile dipendente danno un AR(3). Immagino fosse quello che intendevi anche tu, .::michele::..
 
Chiedo un parere agli esperti..
corregetemi per favore..vi spiego la procedura che ho seguita
1) analisi serie storica dei rendimenti e autocorrelazioni
risultato:
la lag 1 3 7 presentano valori al di fuori delle bande
metodologia:
per essere certo del processo AR(3) con i lag sopra specificati ho diviso la serie storica dei rendimenti in due e entrambe le serie storiche presentano approsimativamente lo stesso andamento nel grafico delle autocorrelazioni qsto mi dà certezza che la media condizionata segue un processo AR(3). ho catturati il processo escludendo la costante in quanto statisticamente insignificativo.
ho salvato i residui.
ho fatto ARCH test sui residui al quadrato che conferma gli effetti ARCH
2)dal menù GARCH VARIANTS ho fatte varie prove giocando sui lag p q di GARCH(p, q) scegliendo come variabile dipendente i residui del AR(3) precedentemente salvati
solo GARCH(1,1) presenta valori significativi.
3)analizzo i residui standardizzati graficamente con una normale gaussiana
4) analizzo graficamente la serie storica dei residui sovrapposta al std. dev. stimato con il modello GARCH(1,1)
5) faccio la diagnosi del GARCH (1,1) sui residui al quadrato.
non ci sono autocorrelazioni. con questo concludo che il modello approssima bene la varianza condizionata.
Risultato finale:
1) ho la mean equation AR(3) stimata sui lag 1, 3 e 7.
2) la variance equation stimata con GARCH (1,1)

ho sbagliato?
:wall:
Se vuoi fare la stima separatamente, secondo me la metodologia è ok. Ma, una volta appurata la presenza di effetti ARCH del modello AR(3) a 1, 3 e 7 ritardi, se vuoi fare la stima congiunta prova a sbattere tutto dentro la schermata che ti ho allegato: selezioni i ritardi specifici e l'ordine del GARCH. A questo punto escludi la costante solo se risulta non significativa anche nel modello GARCH(1,1).
 
Cren ho provato a fare la stima come tu hai suggerito.
facendo una stima congiunta direttamete sui rendimenti i valori del GARCH(1,1) sono molto vicini al modello calcolato sui residui del AR(3).

Però la mean equation non presenta valori accettabili con la stima congiunta soltanto il primo lag è significativo e dovrei scartarne altri due. Ricalcolando i valori, la mean equation si riduce a AR(1)+costante.

suggeriscimi Cren quale sarebbe la procedura più corretta e logica: quest'ultima oppure la metodologia che ho pubblicata poco fa..sono in confusione ora:confused:

Se vuoi fare la stima separatamente, secondo me la
metodologia è ok. Ma, una volta appurata la presenza di effetti ARCH del modello AR(3) a 1, 3 e 7 ritardi, se vuoi fare la stima congiunta prova a sbattere tutto dentro la schermata che ti ho allegato: selezioni i ritardi specifici e l'ordine del GARCH. A questo punto escludi la costante solo se risulta non significativa anche nel modello GARCH(1,1).
 
suggeriscimi Cren quale sarebbe la procedura più corretta e logica: quest'ultima oppure la metodologia che ho pubblicata poco fa..sono in confusione ora:confused:
Vorrei anche il parere di .::michele::., nel frattempo a mio avviso è corretta la stima congiunta perchè nell'altro caso prima trovi la massima verosimiglianza del modello autoregressivo e poi quella del GARCH, quindi nessuno ti assicura che stai ottenendo la massima verosimiglianza per un modello autoregressivo a residui GARCH [diciamo che ti fermi sull'ottimo dell'AR(3) e poi, fissato quello, ti muovi su un altro asse per l'ottimo del GARCH(1,1). Poichè la funzione di massima verosimiglianza, benchè addolcita col logaritmo naturale, è una brutta bestia, nessuno ti può assicurare che tu non sia su una soluzione sub-ottimale dei parametri se fai il primo caso].
 
gretl: (non lo uso praticamente mai ==> potrei sbagliarmi)

sì cren, io l'ho interpretato così. Praticamente in quella schermata giochi con la mean equation (const/non const, ritardi della dipendente, altre esogene a piacere) e del garch puoi scegliere l'ordine. Lanci il tutto et voilà ottieni mean equation + garch. (tra l'altro c'è pure una funzione comodissima che ti permette di avere già il codice tex delle due equazioni con std err)

procedimento di master:
è corretto seguire il tuo ordine logico... ma sei solo al primo step... nel senso che una volta che hai appurato la presenza di effetti garch ti ristimi tutto insieme e il perchè l'ha scritto cren qua sopra. (Io pensavo tu volessi solo replicare dei risultati e quindi che ci fosse un garch era appurato.)

Tra l'altro hai visto che puoi ridurre pure i lags dell'AR come è ragionevole e normale che sia.

Facci sapere se riesci a replicare e se vuoi pubblica la serie storica così possiamo lavorarci su (dacci anche i riferimenti di pagina di tsay dove sono riportati i risultati).
 
Ultima modifica:
Grazie Michele--Grazie Cren..Allego la serie storica..
e pubblico anche la procedura di stima congiunta di AR - GARCH che ho seguita con i relativi risultati..
ESTIMATION PARAMETERS
1) Analisi correlogramma dei rendimenti e rendimenti assoluti
la serie dei rendimenti dimostra dipendenza sui 3 lag
Stimo AR(3) sui lag 1, 3 e 7 (VARIABILE DIPENDENTE: RENDIMENTI)
risultato utilizzando Conditional MLE = r_t=-0.0744437 r_(t-1 )-0.0709423 r_(t-3)-0.0679044 r_(t-7)
tutti i valori sono significativi
salvo i residui per la verifica di ARCH test. analizzo correlogramma
l'analisi consente di rifiutare l'ipotesi nulla: NO ARCH EFFECT IS PRESENT

2) Stima congiunta di AR(1) - GARCH (1,1)
[VARIABILE DIPENDENTE: RENDIMENTI]

[scarto i due lag precedentemente calcolati in quanto insignificativi]

risultato utilizzando QMLE =
Mean equation: mu = 0.000550568 -0.0835520 r_(t-1)
Variance equation: v(t) = 2.77168e-06 + 0.106665 a_(t-1) + 0.880987 v_(t-1)

POST-ESTIMATION ANALYSIS
3) salvo i residui al quadrato e analizzo Ljung-Box statistics e correlogramma
non ci sono autocorrelazioni

graficamente i residui distribuiti come un White noise process

visualizzo graficamente fitted variance estimation...il processo è coerente con la dinamica dei rendimenti. mi riferisco al fenomeno di volatility clustering.

Concludo il modello è adatto

Per favore mi potete correggere nella procedura e se i risultati sono coerenti con i vostri calcoli.
Grazie ancora..:bow:

gretl: (non lo uso praticamente mai ==> potrei sbagliarmi)

sì cren, io l'ho interpretato così. Praticamente in quella schermata giochi con la mean equation (const/non const, ritardi della dipendente, altre esogene a piacere) e del garch puoi scegliere l'ordine. Lanci il tutto et voilà ottieni mean equation + garch. (tra l'altro c'è pure una funzione comodissima che ti permette di avere già il codice tex delle due equazioni con std err)

procedimento di master:
è corretto seguire il tuo ordine logico... ma sei solo al primo step... nel senso che una volta che hai appurato la presenza di effetti garch ti ristimi tutto insieme e il perchè l'ha scritto cren qua sopra. (Io pensavo tu volessi solo replicare dei risultati e quindi che ci fosse un garch era appurato.)

Tra l'altro hai visto che puoi ridurre pure i lags dell'AR come è ragionevole e normale che sia.

Facci sapere se riesci a replicare e se vuoi pubblica la serie storica così possiamo lavorarci su (dacci anche i riferimenti di pagina di tsay dove sono riportati i risultati).
 

Allegati

  • serie storica.xls
    95 KB · Visite: 140
Per favore mi potete correggere nella procedura e se i risultati sono coerenti con i vostri calcoli.
Scusami se non faccio i conti con la tua serie storica, ma userei gretl e rifarei esattamente tutti i tuoi passaggi. Quindi per me è perfetto OK!

Sentiamo cosa dice il tuo relatore.
 
Codice:
Valutazioni della funzione: 80
Valutazioni del gradiente: 22

Modello 2: GARCH, usando le osservazioni 2006/01/05-2011/09/23 (T = 1444)
Variabile dipendente: ld_Adj_Close
Errori standard basati sull'Hessiana

                 coefficiente  errore std.  rapporto t   p-value 
  ---------------------------------------------------------------
  const           0,000550568  0,000279386     1,971    0,0488    **
  ld_Adj_Clos_1  -0,0835520    0,0275073      -3,037    0,0024    ***

  alpha(0)        2,77168e-06  1,04974e-06     2,640    0,0083    ***
  alpha(1)        0,106665     0,0173304       6,155    7,52e-010 ***
  beta(1)         0,880987     0,0190790      46,18     0,0000    ***

Media var. dipendente -0,000069   SQM var. dipendente    0,014065
Log-verosimiglianza    4336,010   Criterio di Akaike    -8660,020
Criterio di Schwarz   -8628,369   Hannan-Quinn          -8648,206
Note: SQM = scarto quadratico medio; E.S. = errore standard

Varianza dell'errore non condizionale = 0,000224469
Test del rapporto di verosimiglianza per i termini (G)ARCH:
  Chi-quadro(2) = 446,3 [1,22221e-097]

mi sembra che ci siamo. Vai con dio
 
Grazie .::michele::. sei stato molto gentile..grazie mille :)
con i risultati ci siamo e credo che anche il resto della analisi che ho fatta è corretta..
grazie ancora

Codice:
Valutazioni della funzione: 80
Valutazioni del gradiente: 22

Modello 2: GARCH, usando le osservazioni 2006/01/05-2011/09/23 (T = 1444)
Variabile dipendente: ld_Adj_Close
Errori standard basati sull'Hessiana

                 coefficiente  errore std.  rapporto t   p-value 
  ---------------------------------------------------------------
  const           0,000550568  0,000279386     1,971    0,0488    **
  ld_Adj_Clos_1  -0,0835520    0,0275073      -3,037    0,0024    ***

  alpha(0)        2,77168e-06  1,04974e-06     2,640    0,0083    ***
  alpha(1)        0,106665     0,0173304       6,155    7,52e-010 ***
  beta(1)         0,880987     0,0190790      46,18     0,0000    ***

Media var. dipendente -0,000069   SQM var. dipendente    0,014065
Log-verosimiglianza    4336,010   Criterio di Akaike    -8660,020
Criterio di Schwarz   -8628,369   Hannan-Quinn          -8648,206
Note: SQM = scarto quadratico medio; E.S. = errore standard

Varianza dell'errore non condizionale = 0,000224469
Test del rapporto di verosimiglianza per i termini (G)ARCH:
  Chi-quadro(2) = 446,3 [1,22221e-097]

mi sembra che ci siamo. Vai con dio
 
Indietro