R一次预测多个ARIMA模型以进行伪抽样

R Forecast multiple ARIMA models at once for pseudo out-of-sampling

我正在尝试使用 auto.arima() 将伪样本外方法应用于预测 GDP 增长数据。 我有一个包含 1996Q1 到 2016Q4 数据的 .csv,我想生成从 2000Q1 开始的提前一年预测,这意味着我的第一个预测应该基于 1996Q1-1999Q1,我的第二个预测应该基于 1996Q2-1999Q2 等而我最后的预测(2016Q4)应该是基于2011Q4-2015Q4。

我想出了如何为我的子集应用 ARIMA 模型并存储提前一年的预测:

data = read.csv2(choose.files()) #loading file
data$Euroraum <- ts(data$Euroraum, start=c(1996, 1), end=c(2016, 4), frequency=4) #make it a time series
GDP_1999Q1 <- window(data$Euroraum, start=c(1996, 1), end=c(1999, 1)) #generate first subset for producing first forecast
fit_GDP2000Q1 = auto.arima(GDP_1999Q1, ic=c("aic")) 
Forecast_GDP2000Q1 = forecast(fit_GDP2000Q1,h=4)

但显然我想将其自动化并将我的所有预测存储为另一个时间序列。 很抱歉,如果这有一个明显的解决方案或已经在其他地方解释过,我会尽力 google 一个合适的解决方案。

我的 .csv 看起来像这样:

GEOTIME Euroraum
1996Q1  1,1
1996Q2  1,4
1996Q3  2,1
1996Q4  1,7
1997Q1  1
1997Q2  3,1
1997Q3  2,6
1997Q4  3,5
1998Q1  4,2
1998Q2  2,4
1998Q3  2,8
1998Q4  2,1
1999Q1  2,2
1999Q2  2,6
1999Q3  2,9
1999Q4  4,1
2000Q1  4,9
2000Q2  4,3
2000Q3  3,4
2000Q4  2,7
2001Q1  3
2001Q2  2,3
2001Q3  1,8
2001Q4  1,4
2002Q1  0,1
2002Q2  1,1
2002Q3  1,5
2002Q4  0,9
2003Q1  0,9
2003Q2  0
2003Q3  0,4
2003Q4  1,1
2004Q1  2,2
2004Q2  2,7
2004Q3  2,2
2004Q4  2
2005Q1  0,9
2005Q2  2
2005Q3  1,8
2005Q4  1,7
2006Q1  3,6
2006Q2  2,6
2006Q3  3
2006Q4  3,5
2007Q1  3,4
2007Q2  3,1
2007Q3  3
2007Q4  2,3
2008Q1  1,7
2008Q2  1,6
2008Q3  0,6
2008Q4  -2,1
2009Q1  -5,5
2009Q2  -5,9
2009Q3  -4,3
2009Q4  -2
2010Q1  1,2
2010Q2  2,5
2010Q3  2,4
2010Q4  2,3
2011Q1  2,9
2011Q2  1,8
2011Q3  1,4
2011Q4  0
2012Q1  -0,2
2012Q2  -1,2
2012Q3  -1,2
2012Q4  -1,1
2013Q1  -1,8
2013Q2  -0,3
2013Q3  0,4
2013Q4  0,6
2014Q1  1,4
2014Q2  0,9
2014Q3  1,1
2014Q4  1,3
2015Q1  1,9
2015Q2  2,1
2015Q3  2
2015Q4  2,3
2016Q1  1,7
2016Q2  2,2
2016Q3  1,7
2016Q4  1,4

提前感谢您的帮助!

我找到了一种使用 for 循环直接列出我想要的提前一年预测的方法:

forecasts = numeric(length = 68)

for (i in 1:68) {
    forecasts[i]<-forecast(auto.arima(ts(data$Euroraum[i:(12+i)], frequency = 4)), h=4)$mean[4]
  }
forecasts