基于garch模型的预测--R程序.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实用文档

基于garch模型的预测--R程序

时间序列作业

一.数据介绍

本次数据与第一次作业数据相同,所以时间序列的水平信息的提取在本次作业中不再进行分析,而是提取arima模型拟合后的残差,对其建立garch模型,对这部分进行分析。

二.代码及备注

setwd(E:/Rstuff)#设置工作目录#

library(zoo)#加载zoo包#

library(forecast)#加载forecast包#

library(tseries)#加载tseries包#

library(mclust)#加载mclust包#

library(lmtest)#加载lmtest包#

library(FinTS)#加载FinTS包#

work=read.table(file=work.txt,header=T,sep=)#读入数据#

work=ts(work,frequency=12,start=c(1985,1))#将读入数据生成为时间序列#plot(work)#绘制时间序列图#

acf(work)#绘制时间序列自相关图#

pacf(work)#绘制时间序列偏自相关图#

work1=diff(work,lag=12)#对原始序列进行12步差分#

plot(work1)#绘制差分后序列的时序图#

Box.test(work1)#检验差分后的时间序列是否为平稳序列#

acf(work1,36)#绘制差分后的时间序列自相关图#

pacf(work1,36)#绘制差分后的时间序列偏自相关图#

fit=arima(work,order=c(1,1,1),seasonal=list(order=c(0,1,1),period=12),

include.mean=T,method=CSS,transform.pars=T)#建立模型#

for(iin1:6){

print(Box.test(fit$residual,type=Ljung-Box,lag=i))

}#对残差序列进行延迟1-6阶白噪声检验#

RE=fit$residuals#提取残差#

plot(RE)#绘残差图#

for(iin1:6)print(ArchTest(RE,lag=i))#检验是否存在异方差#

dwtest(RE~1)#检验是否存在短期自相关#

P=NULL#定义空变量用于存储p值#

Q=NULL#定义空变量用于存储q值#

AIC=NULL#定义空变量用于存储aic值#

for(pin0:2){

for(qin1:2){

fit=garch(RE,order=c(p,q));

aic=AIC(fit);

P=c(P,p);

Q=c(Q,q);

AIC=c(AIC,aic);

}

}

for(pin1:2){

fit=garch(RE,order=c(p,0));

aic=AIC(fit);

P=c(P,p);

Q=c(Q,0);

AIC=c(AIC,aic);

}

L=cbind(P,Q,AIC)

ORDER=order(AIC)

k=ORDER[1]

L[k,]#显示aic最小的行#

L#显示全部p,q,aic#

p=L[k,1]#将最小aic的p值提取#

q=L[k,2]#将最小aic的q值提取#

fit.garch=garch(RE,order=c(p,q))#建立aic最小模型#

fit.pred-predict(fit.garch)#对拟合期进行预测#

plot(fit.pred)#绘制残差拟合期预测图#

plot(RE)#绘制原始序列残差图#

lines(fit.pred[,1],col=2)#绘制残差预测值各点的置信区间上限#lines(fit.pred[,2],col=2)#绘制残差预测值各点的置信区间下限#abline(h=1.96*sd(RE),col=4)#绘制RE序列均值95%置信区间上限#abline(h=-1.96*sd(RE),col=4)#绘制RE序列均值95%置信区间下限#

三.分析过程

本次数据与第一次作业数据相同,所以时间序列的水平信息在本次作业中不再进行分析,而是提取其残差,对其建立garch模型。

for(iin1:6){

print(Box.test(fit$residual,type=Ljung-Box,lag=i))

}

对残差序列进行延迟1-6阶白噪声检验

分析:p值均很大,拒绝原假设,即认为残差序列为白噪声序列。

RE=fit$residuals提取残差

plot(RE)绘残差图

分析:残差图显示为平稳序列,但波动很大,此序列可能有异方差。

Time

RE

198619881990

199219941996

-100

102

for(iin1:6)print(ArchTest

文档评论(0)

151****1054 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档