【问题标题】:R Forecast multiple ARIMA models at once for pseudo out-of-samplingR一次预测多个ARIMA模型以进行伪采样
【发布时间】:2017-11-20 23:25:49
【问题描述】:

我正在尝试使用 auto.arima() 应用伪样本外方法来预测 GDP 增长数据。 我有一个 .csv,其中包含 1996Q1 到 2016Q4 的数据,我想从 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)

但显然我想自动执行此操作并将我的所有预测存储为另一个时间序列。 如果这有一个明显的解决方案或者已经在其他地方解释过,我很抱歉,我会尽力在谷歌上搜索一个合适的解决方案。

我的 .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

提前感谢您的帮助!

【问题讨论】:

    标签: r statistics time-series forecasting


    【解决方案1】:

    我找到了一种方法,可以直接使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2019-05-06
      相关资源
      最近更新 更多