首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arfimaroll和外部回归分析

arfimaroll和外部回归分析
EN

Stack Overflow用户
提问于 2016-06-30 19:56:36
回答 1查看 348关注 0票数 0

我正在尝试用不同的模型(例如AR,HAR等)来预测一些股票的波动性。现在我已经到了不知道该怎么做的地步。我的问题如下。我试图用ARFIMA (2,d,0)模型和外部回归来预测波动率。我使用的是rugarch包和arfimaroll命令。以下是ARFIMA规范的代码。

代码语言:javascript
复制
specGT<- arfimaspec(mean.model = list(armaOrder = c(2, 0),arfima=T, external.regressors = TGT))

TGT是外部回归变量。它是一个1列1359行的矩阵(与我的数据集的行数相同)。这段代码可以工作(至少它没有给出任何错误)。现在我想用arfimaroll来预测波动率。以下是代码

代码语言:javascript
复制
forecastarfimaGT<-arfimaroll(specGT,lagRV_d,n.ahead=1,n.start=1014,refit.every=1,refit.window="recursive",solver="hybrid")

这也不会给出错误。但是,如果我将带有外部回归变量的模型的预测结果与没有外部回归变量的相同ARFIMA模型的预测结果进行比较,结果是相同的

代码语言:javascript
复制
forecastarfimaGT==forecastarfimarealized

在345个预测点中,每个点的输出都是真的。

关于预测的一些注释。递归“refit.window=”用于执行扩展窗口预测,其他参数应该无关紧要(如refit.every等)。

现在我的问题是我在这里做错了什么。有人能就我的错误给我一个提示吗?

问候

编辑:为了更清楚,这里是一个虚构的例子。首先,让我们用数据做一个时间序列

代码语言:javascript
复制
a<-abs(rnorm(600,0.1,0.1)

然后生成外部回归向量并将其转换为矩阵

代码语言:javascript
复制
b<-abs(rnorm(600,1,1))
b1<-as.matrix(b,nrow=600,ncol=1)

现在没有外部回归的arfima预测

代码语言:javascript
复制
spec<- arfimaspec(mean.model = list(armaOrder = c(2, 0),arfima=T))
forecastarfima<-arfimaroll(spec,a,n.ahead=1,n.start=500,refit.every=1,refit.window="recursive",solver="hybrid"
forecastarfimadf<-as.data.frame(forecastarfima)
forecastarfimarealized<-forecastarfimadf[,-c(1:5)]

用极大回归法预测

代码语言:javascript
复制
specGT<- arfimaspec(mean.model = list(armaOrder = c(2, 0),arfima=T, external.regressors = b1))
forecastarfimaGT<-arfimaroll(specGT,a,n.ahead=1,n.start=500,refit.every=1,refit.window="recursive",solver="hybrid"
forecastarfimaGTdf<-as.data.frame(forecastarfimaGT)
forecastarfimarealizedGT<-forecastarfimaGTdf[,-c(1:5)]

现在让我们比较一下这两个结果

代码语言:javascript
复制
forecastarfimarealized==forecastarfimarealizedGT
  [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[37] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[73] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

如你所见,booth向量是相同的。事情不应该是这样的。即使外部回归器没有影响,向量也不应该完全相同。我现在很困惑。我使用的方法是正确的吗?你能帮我解决我的问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-03 20:24:24

这是因为您正在查看原始系列:

代码语言:javascript
复制
cbind(forecastarfimarealized,forecastarfimarealizedGT,a[501:600])

相反,尝试:

代码语言:javascript
复制
cbind(forecastarfimadf[,c(6,1)],forecastarfimaGTdf[,1])
plot.ts(cbind(forecastarfimadf[,c(6,1)],forecastarfimaGTdf[,1]),plot.type="single",col=2:4,ylab="x")
legend("top",c("realized","forecast x","forecast x+GT"),lty=1,col=2:4,bty ="n")

你确定你是在模拟波动性吗?也许你必须看一下"Sigma“这个词。为什么不使用Garch和家庭呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38122410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档