我要预测以下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)几次吗?
答案 0 :(得分:0)
ARIMA使用递归预测,因此对于每个新步骤,它都使用历史记录(即火车组)+它为上一步生成的预测。
想法如下:使用历史数据构建模型,并使用该模型预测h = 1的值,然后将该预测反馈回模型以生成h = 2的预测,然后输入然后返回模型以生成h = 3,依此类推...直到获得所需的预测范围。