2016-05-29 2024 views
1

我对GARCH模型的参数估计和预测有问题。 我有一个时间序列波动的,从1996年开始,2009年结束 我试图与ugarchspecugarchfit功能来估计参数:R用rugarch包进行GARCH参数估计和预测

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的残差时,日期也是错误的。 这里有什么问题?

回答

0

我不确定你用什么对象作为RV,但我认为它是一个数字向量。使用xts软件包支持xts对象,包rug rug可以更好地工作。

下面的代码应该做的工作:

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的对象。这个对象会告诉你的ugarchfit()函数什么是这个模型的时间。其次,它省略了可能的NA数据,其功能ugarchfit()不处理。

确保如果对象xts连接正确日期的检查:

head(RV.xts) 
tail(RV.xts) 
+0

非常感谢你的帮助!我用as.POSIXct函数来表示“时间”,现在一切正常! – junoesque

+0

你能帮我解决另一个问题吗?它被称为“在R中具有滚动窗口的EWMA预测” – junoesque

0

我想你没有指定你的ugarch模型的日期。请注意,R“日期”类是从天数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年(可能是周末排除),并且预测在该时间段之后开始。

+0

谢谢您的回答!是的,我的数据中排除了周末。这是一个更大的问题吗?你能告诉我如何解决这个问题吗?因为我是R的初学者,所以我很难在这里完成所有这些工作。 – junoesque

+0

我觉得周末是最小的问题,如果你开始sime系列。我在其他职位提供了可能的解决方案 – cure