15.6 Selección de la longitud de retraso utilizando criterios de información

La selección de las longitudes de los rezagos en los modelos AR y ADL a veces puede estar guiada por la teoría económica. Sin embargo, existen métodos estadísticos que son útiles para determinar cuántos rezagos deben incluirse como regresores. En general, demasiados rezagos inflan los errores estándar de las estimaciones de coeficientes y, por lo tanto, implican un aumento en el error de pronóstico, mientras que omitir los rezagos que deberían incluirse en el modelo pueden dar lugar a un sesgo de estimación.

El orden de un modelo AR se puede determinar mediante dos enfoques:

  1. El enfoque de la prueba F

    Estimar un modelo AR(\(p\)) y pruebar la significancia del rezago o los rezagos más grandes. Si la prueba es rechazada, elimine el o los respectivos rezagos del modelo. Este enfoque tiene la tendencia a producir modelos donde el orden es demasiado grande: En una prueba de significancia siempre se enfrenta al riesgo de rechazar una verdadera hipótesis nula.

  2. Basándose en un criterio de información

    Para evitar el problema de producir modelos demasiado grandes, se puede elegir el orden de retraso que minimiza uno de los siguientes dos criterios de información:

    • El criterio de información de Bayes (CIB):

      \[CIB(p) = \log\left(\frac{SSR(p)}{T}\right) + (p + 1) \frac{\log(T)}{T}\]

    • El criterio de información de Akaike (CIA):

      \[CIA(p) = \log\left(\frac{SSR(p)}{T}\right) + (p + 1) \frac{2}{T}\]

    Ambos criterios son estimadores de la longitud de rezago óptimo \(p\). El orden de rezago \(\widehat{p}\) que minimiza el criterio respectivo se llama estimación CIB o estimación CIA del orden de modelo óptimo. La idea básica de ambos criterios es que el \(SSR\) disminuye a medida que se agregan retrasos adicionales al modelo, de modo que el primer término disminuye mientras que el segundo aumenta a medida que crece el orden de retraso. Se puede demostrar que el \(CIB\) es un estimador consistente del verdadero orden de retraso, mientras que el \(CIA\) no lo es, lo que se debe a los diferentes factores en el segundo sumando. Sin embargo, ambos estimadores se utilizan en la práctica donde el \(CIA\) a veces se usa como una alternativa cuando el \(CIB\) produce un modelo con “muy pocos” rezagos.

La función dynlm() no calcula criterios de información por defecto. Por lo tanto, se escribe una función corta que informa el \(CIB\) (junto con el orden de retraso elegido \(p\) y la \(R^2\)) para objetos de clase dynlm.

# calcular BIC (Bayesian information criterion) para objetos de modelo AR de clase 'dynlm'
BIC <- function(model) {
  
  ssr <- sum(model$residuals^2)
  t <- length(model$residuals)
  npar <- length(model$coef)
  
  return(
    round(c("p" = npar - 1,
          "BIC" = log(ssr/t) + npar * log(t)/t,
          "R2" = summary(model)$r.squared), 4)
  )
}

Se calcula el \(CIB\) para los modelos AR (\(p\)) de crecimiento del PIB con orden \(p=1,\dots,6\). El resultado final se puede reproducir fácilmente usando sapply() y la función BIC() definida anteriormente.

# aplicar el BIC() a un modelo de crecimiento del PIB de un solo intercepto
BIC(dynlm(ts(GDPGR_level) ~ 1))
#>      p    BIC     R2 
#> 0.0000 2.4394 0.0000

# bucle BIC sobre modelos de diferentes órdenes
order <- 1:6

BICs <- sapply(order, function(x) 
        "AR" = BIC(dynlm(ts(GDPGR_level) ~ L(ts(GDPGR_level), 1:x))))

BICs
#>       [,1]   [,2]   [,3]   [,4]   [,5]   [,6]
#> p   1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
#> BIC 2.3486 2.3475 2.3774 2.4034 2.4188 2.4429
#> R2  0.1143 0.1425 0.1434 0.1478 0.1604 0.1591

Se debe tomar en cuenta que aumentar el orden de retraso aumenta \(R^2\) porque el \(SSR\) disminuye a medida que se agregan retrasos adicionales al modelo, pero de acuerdo con el \(CIB\), se debería conformar con el modelo AR(\(2\)) en lugar del modelo AR(\(6\)). Ayuda a decidir si la disminución en \(SSR\) es suficiente para justificar la adición de un regresor adicional.

Si se tuvieran que comparar un conjunto más grande de modelos, una forma conveniente de seleccionar el modelo con el \(CIB\) más bajo es usar la función which.min().

# seleccione el modelo AR con el BIC más pequeño
BICs[, which.min(BICs[2, ])]
#>      p    BIC     R2 
#> 2.0000 2.3475 0.1425

El \(CIB\) también se puede usar para seleccionar longitudes de retardo en modelos de regresión de series de tiempo con múltiples predictores. En un modelo con coeficientes de \(K\), incluida la intersección, se tiene:

\[\begin{align*} CIB(K) = \log\left(\frac{SSR(K)}{T}\right) + K \frac{\log(T)}{T}. \end{align*}\]

Se debe tener en cuenta que elegir el modelo óptimo de acuerdo con el \(CIB\) puede ser computacionalmente exigente porque puede haber muchas combinaciones diferentes de longitudes de retardo cuando existen múltiples predictores.

Para dar un ejemplo, se estima el modelos ADL(\(p\), \(q\)) de crecimiento del PIB donde, como se indicó anteriormente, la variable adicional es el diferencial de plazo entre bonos a corto y largo plazo. Se impone la restricción de que \(p=q_1=\dots=q_k\) de modo que solo se deben estimar \(p_{max}\) modelos (\(p=1,\dots,p_{max}\)). En el siguiente ejemplo, se elige \(p_{max} = 12\).

# bucle 'BIC()' sobre múltiples modelos ADL 
order <- 1:12

BICs <- sapply(order, function(x) 
         BIC(dynlm(GDPGrowth_ts ~ L(GDPGrowth_ts, 1:x) + L(TSpread_ts, 1:x), 
                   start = c(1962, 1), end = c(2012, 4))))

BICs
#>       [,1]   [,2]   [,3]   [,4]    [,5]    [,6]    [,7]    [,8]    [,9]   [,10]
#> p   2.0000 4.0000 6.0000 8.0000 10.0000 12.0000 14.0000 16.0000 18.0000 20.0000
#> BIC 2.3411 2.3408 2.3813 2.4181  2.4568  2.5048  2.5539  2.6029  2.6182  2.6646
#> R2  0.1417 0.1855 0.1950 0.2072  0.2178  0.2211  0.2234  0.2253  0.2581  0.2678
#>       [,11]   [,12]
#> p   22.0000 24.0000
#> BIC  2.7205  2.7664
#> R2   0.2702  0.2803

De la definición de BIC(), para los modelos ADL con \(p = q\) se deduce que p informa el número de coeficientes estimados excluyendo la intersección. Por lo tanto, el orden de retraso se obtiene dividiendo p entre 2.

# seleccionar el modelo ADL con el BIC más pequeño
BICs[, which.min(BICs[2, ])]
#>      p    BIC     R2 
#> 4.0000 2.3408 0.1855

El \(CIB\) está a favor del modelo ADL(\(2\), \(2\)) (15.5) que se ha estimado antes.