R with GARarch包中的GARCH参数估计与预测

时间:2016-05-29 11:50:35

标签: r

我对GARCH模型的参数估计和预测存在问题。 我有一系列波动时间,从1996年开始到2009年结束。 我尝试使用ugarchspecugarchfit函数估算参数:

garch1.1 <- ugarchspec(variance.model=list(model="sGARCH", garchOrder=c(1,1)),mean.model=list(armaOrder=c(0,0)),distribution="std")
garch1.1fit <- ugarchfit(spec=garch1.1,data=RV)

结果似乎没问题,所以我继续进行预测。 我想使用ugarchforecastugarchroll函数。但是当我尝试这样做时,我意识到他们的工作日期不对。例如,如果我尝试进行简单的预测,例如

forecast <- ugarchforecast(garch1.1fit,n.ahead=2)

我得到以下结果:

0-roll forecast [T0=1979-04-05 01:00:00]:
    Series     Sigma
T+1  5.373e-05 3.733e-05
T+2  5.373e-05 3.762e-05

所以我的问题是:为什么R说T0 = 1979?这不能正确,因为我的数据始于1996年并于2009年结束。 当我查看garch1.1fit中的残差时,日期也是错误的。 这有什么问题?

2 个答案:

答案 0 :(得分:0)

我认为你没有为你的ugarch模型指定日期。请注意,R“Date”类以1970-01-01之日起的天数编码。

以下代码可能有助于理解这个概念:

as.Date("1970-01-01")
as.numeric(as.Date("1970-01-01"))

as.Date("1970-01-10")
as.numeric(as.Date("1970-01-10"))

由于没有为ugarch模型指定日期,您的数据似乎具有填充1970 - 1979年的观察数量(可能不包括周末),并且预测在此期间开始。

答案 1 :(得分:0)

我不确定您使用哪个对象Reset,但我认为它是一个数字向量。使用RV包支持的xts对象,包装地毯可以更好地工作。

以下代码应该完成这项工作:

xts

然后您的代码更改了对象require(xts) time <- #put here time vector from your data RV.xts <- na.omit(xts(x = RV, order.by = time)) ,用于新的RV

RV.xts

我提供的代码做了两件事:首先它使用garch1.1 <- ugarchspec(variance.model=list(model="sGARCH", garchOrder=c(1,1)), mean.model=list(armaOrder=c(0,0)), distribution="std") garch1.1fit <- ugarchfit(spec=garch1.1,data=RV.xts) forecast <- ugarchforecast(garch1.1fit,n.ahead=2) 创建一个xts对象。此对象将告诉您time函数此模型的时间。其次,它省略了可能的NA数据,函数ugarchfit()无法处理。

通过选中以下内容确保对象ugarchfit()正确连接日期:

xts