全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
11957 5
2017-03-28
想问一下,我用R拟合出GARCH(1,1)模型,再用rugarch包来做预测,但是出来的时间序列预测值还是全为0,方差的预测倒是正常的,不知道是什么原因?我的老师回答是股票日收益率的预测全是0是正确的,因为我的条件均值就是0。但是我是想做能预测日收益率波动趋势的那种预测呀!那该怎么做呢?老师说要建立个均值方程,我不太明白,应该在哪里加呢?拟合模型GARCH(1,1)之前还是之后呀?该怎么建立?向大家请教,谢谢了!

之前的代码如下:
> library(rugarch)
> model<-ugarchspec(variance.model = list(model="sGARCH",garchOrder=c(1,1)),
                                 mean.model = list(armaOrder=c(0,0),include.mean=FALSE),
                                 distribution.model = "norm")  #拟合GARCH(1,1)模型
> modelfit<-ugarchfit(spec=model,data=r.stock)   #r.stock是股票日收益率数据
> plot(modelfit)
> ugarchforecast(modelfit,n.ahead=26,data=r.stock)

得到结果为:
> ugarchforecast(modelfit,n.ahead=26,data=r.stock)
*------------------------------------*
*       GARCH Model Forecast         *
*------------------------------------*
Model: sGARCH
Horizon: 26
Roll Steps: 0
Out of Sample: 0
0-roll forecast [T0=1206-01-01]:
     Series Sigma
T+1       0 2.616
T+2       0 2.598
T+3       0 2.582
T+4       0 2.567
T+5       0 2.552


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-3-28 23:06:58
mean.model = list(armaOrder=c(0,0),include.mean=FALSE)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-3-29 12:34:56
nuomin 发表于 2017-3-28 23:06
mean.model = list(armaOrder=c(0,0),include.mean=FALSE)
谢谢!我已经用eacf识别出拟合的模型为GARCH (1,1),ARMA(0,0),所以均值方程就是ARMA(0,0),在rugarch包中用ugarchforecast做预测时,预测的均值全为0,方差在一定范围内波动,这个预测只能体现一个预测范围,那要怎么做出具体的有趋势的预测图呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-3-29 13:16:01
梦灵儿ml 发表于 2017-3-29 12:34
谢谢!我已经用eacf识别出拟合的模型为GARCH (1,1),ARMA(0,0),所以均值方程就是ARMA(0,0),在rugarch包 ...
没有AR项没法做预测
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-3-31 15:52:11
nuomin 发表于 2017-3-29 13:16
没有AR项没法做预测
谢谢你!所以是我的这组数据本身就不适合做预测估计吗?只能根据方差的拟合度来判断模型好坏是吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-31 14:29:18
你这个sgarch是怎么选择的呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群