我正在预测以下ARMA(1,0,1(模型:
nrow(Reg_data)
train<-Reg_data[0:(nrow(Reg_data)-7),c(4,5,9)]
test<-Reg_data[(nrow(Reg_data)-6):nrow(Reg_data),4]
View(train)
View(test)
#step 2 get forecast prediction and errors for auto.arima model
attach(train)
mod1<-arima(y,c(1,0,1), include.mean = TRUE)
mod1_results<-forecast(mod1,h=7)
ARMA_Forecasts<-t(t(mod1_results$mean))
这个代码似乎有效,但我似乎找不到(或无法理解(这个函数是否使用了历史集中以前的预测,即对于预测h=2,是否考虑了h=1的估计,或者如果我想要这样做,我是否需要写一个滚动窗口循环并预测一个集(h=1(几次?
ARIMA使用递归预测,因此对于每一个新步骤,它都使用历史(即训练集(+为上一步生成的预测。
其想法如下:使用历史数据建立一个模型,并使用该模型预测h=1的值,然后将该预测反馈到模型中以生成h=2的预测,然后将其反馈到模型以生成h=3,等等…直到实现所需的预测范围。