15.3 Autoregresiones
Los modelos autorregresivos se utilizan mucho en la previsión económica. Un modelo autorregresivo relaciona una variable de serie temporal con sus valores pasados. En esta sección se analizan las ideas básicas de los modelos de autorregresiones, se muestra cómo se estiman y se analiza una aplicación para pronosticar el crecimiento del PIB utilizando R.
El modelo autorregresivo de primer orden
Es intuitivo que el pasado inmediato de una variable debería tener el poder de predecir su futuro cercano. El modelo autorregresivo más simple utiliza solo el resultado más reciente de la serie temporal observada para predecir valores futuros. Para una serie de tiempo \(Y_t\), dicho modelo se denomina modelo autorregresivo de primer orden, a menudo abreviado AR(1), donde el 1 indica que el orden de autorregresión es uno:
\[\begin{align*} Y_t = \beta_0 + \beta_1 Y_{t-1} + u_t \end{align*}\]
es el modelo de población AR(1) de una serie de tiempo \(Y_t\).
Para la serie de crecimiento del PIB, un modelo autorregresivo de primer orden utiliza solo la información sobre el crecimiento del PIB observado en el último trimestre para predecir una tasa de crecimiento futura. El modelo de autorregresión de primer orden del crecimiento del PIB se puede estimar calculando estimaciones de MCO en la regresión de \(GDPGR_t\) sobre \(GDPGR_{t-1}\),
\[\begin{align} \widehat{GDPGR}_t = \hat\beta_0 + \hat\beta_1 GDPGR_{t-1}. \tag{15.1} \end{align}\]
Se usan datos de 1962 a 2012 para estimar (15.1). Esto se hace fácilmente con la función ar.ols() del paquete stats.
# datos de subconjunto
<- GDPGrowth["1962::2012"]
GDPGRSub
# estimar el modelo
ar.ols(GDPGRSub,
order.max = 1,
demean = F,
intercept = T)
#>
#> Call:
#> ar.ols(x = GDPGRSub, order.max = 1, demean = F, intercept = T)
#>
#> Coefficients:
#> 1
#> 0.3384
#>
#> Intercept: 1.995 (0.2993)
#>
#> Order selected 1 sigma^2 estimated as 9.886
Se puede comprobar que los cálculos realizados por ar.ols() son los mismos que los realizados por lm().
# longitud del conjunto de datos
<-length(GDPGRSub)
N
<- as.numeric(GDPGRSub[-1])
GDPGR_level <- as.numeric(GDPGRSub[-N])
GDPGR_lags
# estimar el modelo
<- lm(GDPGR_level ~ GDPGR_lags)
armod
armod#>
#> Call:
#> lm(formula = GDPGR_level ~ GDPGR_lags)
#>
#> Coefficients:
#> (Intercept) GDPGR_lags
#> 1.9950 0.3384
Como de costumbre, se puede usar coeftest() para obtener un resumen robusto de los coeficientes de regresión estimados.
# resumen robusto
coeftest(armod, vcov. = vcovHC, type = "HC1")
#>
#> t test of coefficients:
#>
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 1.994986 0.351274 5.6793 4.691e-08 ***
#> GDPGR_lags 0.338436 0.076188 4.4421 1.470e-05 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Por tanto, el modelo estimado es
\[\begin{align} \widehat{GDPGR}_t = \underset{(0.351)}{1.995} + \underset{(0.076)}{0.338} GDPGR_{t-1} \tag{15.2}. \end{align}\]
Se ha omitido la primera observación para \(GDPGR_{1962 \ Q1}\) del vector de la variable dependiente, ya que \(GDPGR_{1962 \ Q1 - 1} = GDPGR_{1961 \ Q4}\), no está incluido en la muestra. De manera similar, la última observación, \(GDPGR_{2012 \ Q4}\), se excluye del vector predictor ya que los datos no incluyen \(GDPGR_{2012 \ Q4 + 1} = GDPGR_{2013 \ Q1}\). Dicho de otra manera, al estimar el modelo, se pierde una observación debido a la estructura de series de tiempo de los datos.
Pronósticos y errores de pronóstico
Suponga que \(Y_t\) sigue un modelo AR(1) con una intersección y que tiene una estimación de MCO del modelo sobre la base de observaciones para períodos de \(T\). Luego puede usar el modelo AR(1) para obtener \(\widehat{Y}_{T+1\vert T}\), un pronóstico para \(Y_{T+1}\) usando datos hasta el período \(T\) donde
\[\begin{align*} \widehat{Y}_{T+1\vert T} = \hat{\beta}_0 + \hat{\beta}_1 Y_T. \end{align*}\]
El error de previsión es
\[\begin{align*} \text{Error de previsión} = Y_{T+1} - \widehat{Y}_{T+1\vert T}. \end{align*}\]
Pronósticos y valores previstos
Los valores pronosticados de \(Y_t\) no son lo que se llama valores predichos de MCO de \(Y_t\). Además, el error de pronóstico no es un residuo de MCO. Los pronósticos y los errores de pronóstico se obtienen utilizando valores fuera de la muestra, mientras que los valores predichos y los residuos se calculan para los valores dentro de la muestra que se observaron y utilizaron realmente para estimar el modelo.
El error de pronóstico de la raíz cuadrada media (EPRCM) mide el tamaño típico del error de pronóstico y se define como
\[\begin{align*} EPRCM = \sqrt{E\left[\left(Y_{T+1} - \widehat{Y}_{T+1\vert T}\right)^2\right]}. \end{align*}\]
El \(EPRCM\) está compuesto por los errores futuros \(u_t\) y el error cometido al estimar los coeficientes. Cuando el tamaño de la muestra es grande, el primero puede ser mucho mayor que el segundo, de modo que \(EPRCM \approx \sqrt{Var()u_t}\) que puede estimarse mediante el error estándar de la regresión.
Aplicación al crecimiento del PIB
Utilizando (15.2), el modelo estimado AR(1) de crecimiento del PIB, se realiza el pronóstico de crecimiento del PIB para 2013:Q1 (recuerde que el modelo se estimó utilizando datos para los períodos 1962:Q1 - 2012:Q4, por lo que 2013, el primer trimestre, es un período fuera de la muestra). Conectando \(GDPGR_{2012:Q4} \approx 0.15\) en (15.2),
\[\begin{align*} \widehat{GDPGR}_{2013:Q1} = 1.995 + 0.348 \cdot 0.15 = 2.047. \end{align*}\]
La función forecast() del paquete forecast tiene algunas características útiles para pronosticar datos de series de tiempo.
library(forecast)
# asignar tasa de crecimiento del PIB en 2012:Q4
<- data.frame("GDPGR_lags" = GDPGR_level[N-1])
new
# pronosticar la tasa de crecimiento del PIB para 2013:Q1
forecast(armod, newdata = new)
#> Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
#> 1 2.044155 -2.036225 6.124534 -4.213414 8.301723
El uso de forecast() produce el mismo pronóstico puntual de aproximadamente 2.0, junto con intervalos de pronóstico de \(80\%\) y \(95\%\), consulte la sección 15.5. Se concluye con que el modelo AR(1) prevé un crecimiento del PIB de \(2\%\) en 2013:Q1.
¿Qué tan preciso es este pronóstico? El error de pronóstico es bastante grande: \(GDPGR_{2013:Q1} \approx 1.1\%\) mientras que el pronóstico es \(2\%\).
En segundo lugar, al llamar summary(armod)
se muestra que el modelo explica solo una pequeña parte de la variación en la tasa de crecimiento del PIB y el \(SER\) es de aproximadamente \(3.16\). Dejando de lado la incertidumbre del pronóstico debido a la estimación de los coeficientes del modelo \(\beta_0\) y \(\beta_1\), el \(EPRCM\) debe ser al menos \(3.16\%\), la estimación de la desviación estándar de los errores. Se concluye que este pronóstico es bastante inexacto.
# calcular el error de pronóstico
forecast(armod, newdata = new)$mean - GDPGrowth["2013"][1]
#> x
#> 2013 Q1 0.9049532
# R^2
summary(armod)$r.squared
#> [1] 0.1149576
# SER
summary(armod)$sigma
#> [1] 3.15979
Modelos autorregresivos de orden \(p\)
Para pronosticar el crecimiento del PIB, el modelo AR(\(1\)) (15.2) descarta cualquier información del pasado de la serie que esté más distante que un período. Un modelo AR(\(p\)) incorpora la información de \(p\) rezagos de la serie. La idea se explica en el Concepto clave 14.3.
Concepto clave 14.3
Autorregresiones
Un modelo AR(\(p\)) supone que una serie de tiempo \(Y_t\) puede modelarse mediante una función lineal de los primeros \(p\) de sus valores rezagados.
\[\begin{align*} Y_t = \beta_0 + \beta_1 Y_{t-1} + \beta_2 Y_{t-2} + \dots + \beta_p Y_{t-p} + u_t \end{align*}\]
es un modelo autorregresivo de orden \(p\) donde \(E(u_t\vert Y_{t-1}, Y_{t-2}, \dots,Y_{t-p})=0\).
Se estima un modelo AR(\(2\)) de la serie de crecimiento del PIB desde 1962:Q1 hasta 2012:Q4.
# estimar el modelo AR(2)
<- dynlm(ts(GDPGR_level) ~ L(ts(GDPGR_level)) + L(ts(GDPGR_level), 2))
GDPGR_AR2
coeftest(GDPGR_AR2, vcov. = sandwich)
#>
#> t test of coefficients:
#>
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 1.631747 0.402023 4.0588 7.096e-05 ***
#> L(ts(GDPGR_level)) 0.277787 0.079250 3.5052 0.0005643 ***
#> L(ts(GDPGR_level), 2) 0.179269 0.079951 2.2422 0.0260560 *
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
La estimación rinde
\[\begin{align} \widehat{GDPGR}_t = \underset{(0.40)}{1.63} + \underset{(0.08)}{0.28} GDPGR_{t-1} + \underset{(0.08)}{0.18} GDPGR_{t-1}. \tag{15.3} \end{align}\]
Se puede ver que el coeficiente en el segundo rezago es significativamente diferente de cero. El ajuste mejora ligeramente: \(\bar{R}^2\) crece de \(0.11\) para el modelo AR(\(1\)) a, aproximadamente, \(0.14\) y el \(SER\) se reduce a \(3.13\).
# R^2
summary(GDPGR_AR2)$r.squared
#> [1] 0.1425484
# SER
summary(GDPGR_AR2)$sigma
#> [1] 3.132122
Se puede utilizar el modelo AR(\(2\)) para obtener un pronóstico del crecimiento del PIB en 2013:Q1 de la misma manera que para el modelo AR(1).
# pronóstico AR(2) de crecimiento del PIB en 2013:Q1
<- c("2013:Q1" = coef(GDPGR_AR2) %*% c(1, GDPGR_level[N-1], GDPGR_level[N-2])) forecast
Esto conduce a un error de pronóstico de aproximadamente \(-1\%\).
# calcular el error de pronóstico AR(2)
"2013"][1] - forecast
GDPGrowth[#> x
#> 2013 Q1 -1.025358