时间序列的预测的基本套路
第一步:
获取到序列,切割序列。这里测试用途可以通过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)