时间序列的预测的基本套路

第一步:

获取到序列,切割序列。这里测试用途可以通过arima.sim来进行模拟,下面的就是模拟一个36个数据,模式为MA(1),系数为0.6的时间序列;然后将序列进行分割,前半部分是序列图,后半部分是待预测验证部分。

set.seed(13256)

serias = arima.sim(n=36, list(ma=-0.6)) + 100

acture=window(serias, start=33)

serias=window(serias, end=32)

第二步:

创建模型,指定数据的模型(这里采用的MA(1)),

model=arima(serias, order=c(0,0,1))

第三步:

比较。

1. 图比较:通过plot进行绘图,注意通过n.head来指定预测的周期数;另外要考到建模采用的serias,就是序列的前半部分;然后通过lines画出本来的图线,查看预测和真实的差距。

2. 数据比较:通过cbind进行纯数据比较。

result=plot(model, n.ahead = 4, type="o", pch=19)

lines(acture, col="red")

abline(h=coef(model)[names(coef(model)=="intercept")])

 

forecast=result$pred

cbind(acture, forecast)

 

posted on 2019-01-13 21:10  下士闻道  阅读(685)  评论(0编辑  收藏  举报

导航