我有一系列的股票对数回报,比如说,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信息来预测不是原始数据一部分的时间段的波动性?
非常感谢,
芝加哥科学
发布于 2014-07-01 00:03:40
也许您可以使用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)
发布于 2017-02-06 02:24:59
在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
只是有条件的标准差!
https://stackoverflow.com/questions/24168576
复制相似问题