r语言:时间序列ARMA基础学习

上传人:豆浆 文档编号:1424484 上传时间:2017-06-15 格式:DOCX 页数:29 大小:849.01KB
返回 下载 相关 举报
r语言:时间序列ARMA基础学习_第1页
第1页 / 共29页
r语言:时间序列ARMA基础学习_第2页
第2页 / 共29页
r语言:时间序列ARMA基础学习_第3页
第3页 / 共29页
r语言:时间序列ARMA基础学习_第4页
第4页 / 共29页
r语言:时间序列ARMA基础学习_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《r语言:时间序列ARMA基础学习》由会员分享,可在线阅读,更多相关《r语言:时间序列ARMA基础学习(29页珍藏版)》请在金锄头文库上搜索。

1、r 语言:时间序列 ARMA 基础学习26 二月, 2013, oldlee11, R 语言与数据挖掘, 时间序列分析,?010203040506070809101112131415161718192021# 术语 #白噪音:其均值=0,并且独立分布的(同时间无关)#稳定时间序列:任意 j-i时间段的序列:其均值相等#自相关系数 acf图:研究 yt同 yt-l序列之间的相关性# 在纯的 ma(q)序列下,acf 图形表现为 q+1以后的自相关系数约为 0(虚线内)#偏相关系数 pacf图:在 yt同 yt-l之间的序列固定的情况下,研究研究 yt同 yt-l序列之间的相关性# 在纯的 ar(

2、p)序列下,pacf 图形表现为 p+1以后的偏相关系数约为 0(虚线内)#扩展相关系数图 eacf:如果 yt不是纯的 ar或 ma,而是 arma(混合体),无法通过 acf确定 q,也不能通过 pacf确认 p,需要通过 eacf确认 p和 q# 模拟产生 ma ar arma 序列 # MA 时间序列的模拟试验:产生一个 ma时间序列y.ma=q+1的自相关系数全部约小于 0 | 逐步将接近 0# AR(p) 逐步将接近 0 | lag=p+1的自相关系数全部约小于 0 # ARMA(p,q) 逐步将接近 0 | 逐步将接近 0# step2 序列的类型确定后:求 p q# 如果是 M

3、A(q) 类型的,看 acf图,看前几个不为 0# 如果是 AR(p) 类型的,看 pacf图,看前几个不为 0# 如果是 ARMA(p,q) 类型的,看 eacf图,看 x三角形的顶端#代码:data 是向量数据library(TSA)plot.cfalpha)print(paste(success:服从正态分布,p.value=,sol$p.value,alpha)elseprint(paste(error:不服从正态分布,p.value=,sol$p.value,=,alpha) sol#残差分析#方案一(自己编写的,不一定好)# ariam.sol由 ariam()产生的模型aya.r

4、es-function(ariam.sol)#step1 :检验正太性,如果符合正太,表示均值相同:稳定的dev.new()norm.test(ariam.sol$residuals)#画出 QQ图,并给出检验正态分布的测试结果par(mfrow=c(3,1)#step2 :查看时序,如果有趋势变化,则 mean不为相同,即不是稳定的plot(ariam.sol$residuals,main=残差序列图,type=o)#画出时序图abline(h=0)#step3 :查看 acf图,如果全部在虚线内,则表示残差和时间无关系046047048049050051052053054055056057

5、058acf(ariam.sol$residuals, 30,main=残差的自相关图:如果所有 lag的系数均处于虚线内,则原始模型较好)#step4 :使用 Ljung来进行白噪声验证:表示均值全部为 0,即残差很小test.p-0for(i in 1:20)test.pi-Box.test(sol$residuals,i,fitdf=2,type=Ljung)$p.value#选取残差中 lag=1-i的自相关系数来建立Ljung量。print(test.p)plot(c(NA,NA,test.p-c(1:2),main=残差的 Ljung检验 p.value:如果 lag=3-以后的所

6、有点均大于 0.05,则是白噪声,ylim=c(0,1)abline(h=0.05,col=red) aya.res(sol)#方案二(好,书上的)#step1 :检验正太性,如果符合正太,表示均值相同:稳定的dev.new()norm.test(sol$residuals)#画出 QQ图,并给出检验正态分布的测试结果dev.new()#使用对 arima产生的模型,使用 tsdiag()函数,直接画出:残差的时序图,残差的 acf图,Ljung 产生的 p.value(和 0.05比较)tsdiag(sol,gof=15,omit.initial=F)# sol是由 ariam()产生的模型

7、# 使用 ariam模型进行预测 #059060061062063064065066067068069070071# arima.pred函数:# ariam.sol由 ariam()产生的模型# nahead预测的点数# alpha计算预测区间时的置信度:1-alpha# 输出的数据为数据框:$pred 是预测的估值# $max是预测的估值的最大值(1-alpha 置信度,双侧估计)# $min是预测的估值的最小值(1-alpha 置信度,双侧估计)arima.pred-function(ariam.sol,nahead=5,alpha=0.05)pred-predict(ariam.sol

8、,n.ahead=nahead)#产生 nahead个预测数据,包括预测的平均值$pred.和预测标准误$sek-qnorm(1-alpha/2),0,1)pred.data-data.frame(pred=pred$pred,max-pred$pred+k*pred$se,min-pred$pred-k*pred$se)#95%的 pred区间值(双侧估计)pred.datadata-y.arma(a1=0.92,a2=0.65,b1=0.92,b2=-0.65,num=100,pic=F)sol1-arima(data.ts,order=c(2,0,2)arma.pred-arima.pred(sol1,nahead=30)0720730740750760770780790800810820830840850860870880890900910920930940950960970980991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311 于是得出的 arma 模型预测 30 个点2 检验模型好坏(检验残差是否区域白痴噪声)2.1 自己编写函数2.2 使用系统函数(tsdiag)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号