在R中提取反事实ARIMA预测的功能

时间:2014-08-06 18:14:41

标签: r forecasting

我已经构建了一个非零均值的ARIMA(9,0,2)模型。我想用这个模型来创建反事实预测。也就是说,条件是只有前九个观察点,我正在寻找一个R函数,它可以使用ARIMA(<,>第十一个等)进行预测。 0,2)我使用所有数据估算的模型。

据我所知,R函数forecastpredict没有完成反事实部分。函数forecast选择你的时间序列结束并使用拟合模型进行预测,但是我没有找到一种方法来欺骗它使用观察1-9来预测观察10以后,或使用观察2-10预测观察11向前。同样,predict会创建接下来的几个观察数据,从而获取数据停止的位置。我还没有找到这些功能的解决方法。

R函数fitted只为可用数据中的每个时间点创建一步预测,而不是长期预测

我已经粘贴了用于创建虚假时间序列数据的代码,Arima对象以及forecast如何为我的问题提供有用输出的演示。

setseed(2314)
fake.data   <- rnorm(10,sd=5)
for(i in 1:200){
    model.length    <- 9
    lower       <- length(fake.data)-9+1
    upper       <- length(fake.data)
    new.obs <- rnorm(1,mean=0,sd=0.25)+fake.data[lower:upper]%*%c(  -0.1, 0.1, -0.15,0.15,-0.2,0.2,-0.5,0.3,0.9)
    fake.data   <- c(fake.data, new.obs)
}
plot(fake.data)
fitted.arima    <- auto.arima(fake.data, ic="bic")
plot(forecast(fitted.arima))

显然forecast的输出不是在观察到的时间点的预测。

1 个答案:

答案 0 :(得分:2)

您可以使用fixed参数修复参数。下面是一个例子:

m<-arima(LakeHuron,order=c(9,0,2))
coe<-m$coef
mn<-arima(LakeHuron[1:9],order=c(9,0,2),fixed=coe)

sum(coe==mn$coef)
12 # all coefficients are equal

predict(mn,n.ahead =10)