Я пытаюсь сделать псевдо-внеплановое прогнозирование, используя R. И у меня также есть следующие исходные данные (ВВП):
Time gdp
2004Q1 1.0
2004Q2 1.0
2004Q3 0.9
2004Q4 1.9
2005Q1 0.2
2005Q2 -0.2
2005Q3 0.9
2005Q4 0.4
2006Q1 2.3
2006Q2 0.5
2006Q3 0.8
2006Q4 1.0
2007Q1 1.8
2007Q2 1.6
2007Q3 0.7
2007Q4 1.8
2008Q1 -0.4
2008Q2 -0.7
2008Q3 0.0
2008Q4 -1.8
2009Q1 -6.8
2009Q2 -0.5
2009Q3 0.8
2009Q4 -0.2
2010Q1 0.4
2010Q2 2.8
2010Q3 -0.4
2010Q4 2.1
2011Q1 0.5
2011Q2 -0.3
2011Q3 0.3
2011Q4 0.1
2012Q1 0.0
2012Q2 -1.6
2012Q3 -0.3
2012Q4 -0.6
2013Q1 -0.1
2013Q2 0.4
2013Q3 0.3
2013Q4 -0.4
2014Q1 -0.7
2014Q2 0.0
2014Q3 0.3
2014Q4 0.0
2015Q1 -0.6
2015Q2 1.2
2015Q3 0.0
2015Q4 0.6
2016Q1 1.2
2016Q2 0.3
2016Q3 1.1
2016Q4 0.4
2017Q1 1.0
2017Q2 0.5
2017Q3 0.4
2017Q4 0.6
2018Q1 0.9
2018Q2 0.4
2018Q3 0.3
2018Q4 0.8
Я уже выяснил, как написать код дляпростая модель AR (1), т.е. GDP_t = beta_0 + beta_1 * GDP_ {t-1}.Кроме того, в будущем я планирую расширить эту модель AR (1) некоторыми дополнительными факторами, поэтому я использовал функцию lm ().
#data manipulation
gdpgrowth <- gdp[,2]
gdpgrowth_level <- as.numeric(gdpgrowth[-1])
gdpgrowth_lags <- as.numeric(gdpgrowth[-N])
#AR(1) model
armod <- lm(gdpgrowth_level ~ gdpgrowth_lags)
armod
Тем не менее, псевдо-вне выборки (для цикла)оказался довольно обременительным.Я пытаюсь использовать 20% моей выборки ВВП в качестве учебной выборки.Другими словами, он имеет 60 строк (60 * 0,2) = 12 строк.Таким образом, 48 строк вне выборки.Поэтому мой исходный код для цикла псевдо-вне выборки следующий:
#Pseudo out-of-sample
forecasts = list(length = 48)
for (i in 1:48) {
forecasts[i]<-lm(gdpgrowth_level[i:(12+i)] ~ gdpgrowth_lags[i:(12+i)])
}
forecasts
Однако прогнозы, похоже, не верны при сравнении их с фактическими данными ВВП.Правильно ли указаны модель AR (1) и цикл?
Спасибо за любую помощь заранее!