Прогнозирование с AR (1) и псевдо-вне выборки с использованием R - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь сделать псевдо-внеплановое прогнозирование, используя 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) и цикл?

Спасибо за любую помощь заранее!

...