包tseries中的garch函数,如何用这个函数的结果预测值?

时间:2014-06-11 17:03:30

标签: r statistics time-series

我有一系列股票日志退货,比如100个值。我想使用GARCH来预测101时的波动率。如果我使用tseries包中的garch函数,我会这样称呼它:

garch(myData, order=c(1, 1)) 

因此,考虑到p = q = 1.该函数返回一个包含100个拟合值(第一个为NA),系数(a0,a1和a2)和100个残差(第一个为NA)的对象。如何使用此信息预测101时的波动率?

我的第一个猜测是计算:

Vol_101 = a0  +  a1 * fitted.values[100] + a2 * residuals[100]

但从结果来看,我认为这绝对是不对的。我如何使用GARCH信息来预测不属于原始数据的时间段的波动率?

非常感谢,

Chicoscience

2 个答案:

答案 0 :(得分:1)

也许您可以使用fGarch包:

library(fGarch)
y1 <- myData # store your series of returns in y

# parameter estimates
g = garchFit(~garch(1,1), y1, cond.dist= "norm", include.mean=FALSE, trace=FALSE)  
omega = g@fit$matcoef[1,1]
alpha = g@fit$matcoef[2,1]
beta = g@fit$matcoef[3,1]

sigma2 = omega + alpha * y1[100]^2 + beta*g@h.t[100] # compute sigma2 for t+1

print(sigma2)

答案 1 :(得分:0)

在包fGarch中,有一个函数predict可以帮助您从样本中获得波动性。 作为研究员的例子:

library(fGarch)
da=read.table("m-intcsp7309.txt",header=T)
intc=log(da$intc+1)
length(intc)
#numbers of sample is 444 
m4=garchFit(~1+garch(1,1),data=intc,trace=F)
condPre <- predict(m4, n.ahead = 5)
condPre$standardDeviation

standardDeviation存储了样本的波动率(从445到449)

standardDeviation只是条件标准偏差!