V priklade su 3 na sebe nezavisle veci 1. GARCH z casoveho radu r.cref - ten je v ramci jedneho z packagov. 2. demonstracia, ako mozno GARCH nasimulovat. 3. odhad GARCH v ramci dow-jones indexu. # kniznica library("TSA") library("tseries") library("moments") library("forecast") win.graph(width=4.875,height=2.5,pointsize=8) data(CREF) # nadcitanie udajov o cenach fondu CREF plot(CREF) # logaritmicke vynosnosti r.cref=diff(log(CREF))*100 plot(r.cref) abline(h=0) # autokorelacna funkcia a funkcia parcialnej autokorelacie (je potrebne ARIMA?) acf(r.cref) pacf(r.cref) # ACF a PACF z umocnenych vynosnosti (je potrebne ARIMA?) acf(r.cref^2) pacf(r.cref^2) # McLeod a Li (1983) test na pritomnost ARCH efektu win.graph(width=4.875,height=2.5,pointsize=8) McLeod.Li.test(y=r.cref) # test normality vynosnosti win.graph(width=4.875,height=2.5,pointsize=8) qqnorm(r.cref) qqline(r.cref) # test na normalitu , tiez na spicatost - pri pritomnosti garch su vynosnosti spicate jarque.bera.test(r.cref) kurtosis(r.cref) hist(r.cref) # eacf eacf(r.cref) # odhad model.11=garch(r.cref,order=c(1,1)) summary(model.11) # diagnostika rezidui plot(residuals(model.11),type="h",ylab="Standardizovane rezidua") win.graph(width=4.875,height=2.5,pointsize=8) qqnorm(residuals(model.11)) qqline(residuals(model.11)) acf(residuals(model.11)^2,na.action=na.omit) McLeod.Li.test(y=model.11$residuals) ############### # generovanie garch casovych radov ############### set.seed(1234567) garch01.sim=garch.sim(alpha=c(0.9,0),beta=.1,n=500) plot(garch01.sim,type='l', main='',ylab=expression(r[t]),xlab='t') plot(garch11.sim) acf(garch01.sim^2) ############### # komplexny pripad ############### udaje=read.csv2("DowJones.csv") DJ=ts(udaje) plot(DJ) dj=diff(log(DJ)) plot(dj) win.graph(width=4.875,height=2.5,pointsize=8) qqnorm(dj) qqline(dj) kurtosis(dj) acf(dj) pacf(dj) ############### # package forecast # prikaz auro.arima auto.arima(dj) ar.22=arima(dj,c(2,0,2)) # analyza rezidui # Box.test(x, lag = 1, type = c("Box-Pierce", "Ljung-Box"), fitdf = 0) plot(ar.22$residuals) acf(ar.22$residuals) pacf(ar.22$residuals) win.graph(width=4.875,height=2.5,pointsize=8) qqnorm(ar.22$residuals) qqline(ar.22$residuals) kurtosis(ar.22$residuals) jarque.bera.test(ar.22$residuals) Box.test(ar.22$residuals, lag = 20) # analyza stvorcov rezidui acf(ar.22$residuals^2,na.action=na.omit) pacf(ar.22$residuals^2,na.action=na.omit) Box.test(ar.22$residuals^2, lag = 20) McLeod.Li.test(y=ar.22$residuals) gmodel.21=garch(ar.22$residuals,order=c(2,1)) summary(gmodel.21)