Esercizio: i modelli (G)ARCH
Luigi Amedeo Bianchi
Carichiamo i pacchetti che ci occorrono library(fImport)
library(fGarch) library(tseries)
Per prima cosa simuliamo un ARCH e verifichiamo se lo riconosce n = 2000
coeff = c(0.8,0.5,0.4,0.1) coeff0 = coeff[1]
coeff = coeff[-1]
l = length(coeff) u = double(n)
u[1:l] = coeff0 * rnorm(l) for (i in (l+1):n) {
u[i] = sqrt( coeff0 + sum(coeff * u[(i-1):(i-l) ]^2 )) * rnorm(1) }
u = ts(u) ts.plot(u)
Proviamo a vedere se quanto abbiamo fatto è davvero un ARCH, secondo R:
fitarch1 = garch(u, order = c(0,1)) fitarch2 = garch(u, order = c(0,2)) fitarch3 = garch(u, order = c(0,3)) fitarch4 = garch(u, order = c(0,4))
Osserviamo le risposte di R, cosa ci suggeriscono?
plot(fitarch1) plot(fitarch2) plot(fitarch3) plot(fitarch4)
1
Cosa possiamo dedurre dai grafici?
Poi passiamo ad una modellizzazione GARCH di dati reali
Importiamo i dati direttamente da Yahoo! Finance Prendiamo i prezzi giornalieri di chiusura del NASDAQ 100 dal 1/1/99 a ieri e salviamo prezzi e returns
from = as.Date(’01/01/99’, format = ’%m/%d/%y’) to = as.Date(Sys.Date() - 1, format = ’%m/%d/%y’) NASDAQ = yahooSeries(’^NDX’, from = from, to = to) prices = rev(NASDAQ[,6])
i = 2:length(prices)
returns = log(prices[i] / prices[i-1])
Diamo una rappresentazione grafica di prezzi e returns par(mfrow = c(2,1))
ts.plot(prices) ts.plot(returns)
Adattiamo un modello GARCH(1,1) ai returns. Il comando summary ci dà moltissime informazioni...
fit = garchFit(data = returns) summary(fit)
plot(fit)
Simuliamo un modello GARCH(1,1) usando i parametri ottenuti nel fit:
fitcoef = fit@fit$par
model=list(mu=fitcoef[1],omega=fitcoef[2],alpha=fitcoef[3],beta=fitcoef[4]) spec = garchSpec(model)
sim = garchSim(spec, n = length(prices))
Rappresentiamo i valori del GARCH(1,1) simulato: ci soddisfa?
ts.plot(sim)
Provare a ripetere l’esercizio con un altro indice, ad esempio prendiamo i prezzi giornalieri di chiusura del titolo Apple (AAPL) dal 1/1/97 a ieri e salviamo prezzi e returns. Oppure Google (GOOG): attenzione però a scegliere una data di partenza per cui il titolo fosse quotato.
2