2017-06-18 26 views
0

我试图应用一个假抽样方法来预测使用auto.arima()的GDP增长数据。 我有一个.csv数据,从1996Q1到2016Q4,我想从2000Q1开始提前一年预测,这意味着我的第一个预测应该基于1996Q1-1999Q1,我的第二个预测应该基于1996Q2-1999Q2等等,我最近的预测(2016Q4)应该基于2011Q4-2015Q4。R一次预测多个ARIMA模型,用于伪抽样

我想通了,如何申请我的子集的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 

感谢您的帮助提前!

回答

0

我找到了一种方法,列出我所希望的一年,未来,预测直接使用一个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