3 votos

Previsiones con AR(1) y pseudofuera de muestra utilizando R

Estoy intentando hacer una previsión pseudo fuera de muestra usando R. Y, también tengo los siguientes datos iniciales (pib)

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

Ya he averiguado cómo escribir código para un modelo AR(1) simple, es decir, PIB_t= beta_0+beta_1*PIB_{t-1}. Además, en el futuro estoy planeando ampliar este modelo AR(1) con algunos factores adicionales por lo que he utilizado la función 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

Sin embargo, Pseudo fuera de la muestra (bucle for) ha demostrado ser bastante pesado. Intento utilizar el 20% de mi muestra de PIB como muestra de entrenamiento. En otras palabras, tiene 60 filas (60*0,2)=12 filas. Por lo tanto, 48 filas están fuera de la muestra. Por lo tanto, mi código inicial para el bucle Pseudo fuera de muestra es el siguiente:

#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

Sin embargo, las previsiones no parecen correctas cuando se comparan con los datos reales del PIB. ¿Están correctamente especificados el modelo AR(1) y el bucle?

Gracias de antemano por cualquier ayuda.

0voto

Owen Fraser-Green Puntos 642

Cuando se tienen 12 valores reales y un modelo y coeficiente AR(1), la predicción para el 13º período es sencilla. A partir del mismo origen (el duodécimo período), la predicción para el decimocuarto período supone que el valor del decimotercer período es la predicción de un período más allá. Este proceso de bootstrapping continúa hasta el 60º período.

Obsérvese que NUNCA se utiliza el dato real de ningún periodo posterior a 12, por lo que el flujo de previsiones es invariable.

Compárelo con la estimación del coeficiente ar(1) basada en 60 valores. En este caso, las predicciones de un periodo (valores ajustados) se basan en el valor real del periodo anterior y, por lo tanto, ofrecen predicciones más razonables desde el punto de vista visual.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X