Considere el caso en el que el supuesto (S4) no se cumple, pero el supuesto (S3) (y los otros supuestos restantes (S1), (S2), (S5) y (S6)) siguen siendo válidos. Entonces podemos escribir el siguiente modelo como:
\[ \mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon}, \quad \mathbb{E} \left( \boldsymbol{\varepsilon} | \mathbf{X}\right) = \boldsymbol{0},\quad \mathbb{V}{\rm ar}\left( \boldsymbol{\varepsilon} | \mathbf{X} \right) = \mathbb{E} \left( \boldsymbol{\varepsilon} \boldsymbol{\varepsilon}^\top \right)= \mathbf{\Sigma} \neq \sigma_\epsilon^2 \mathbf{I} \]
El caso en el que la matriz de varianza-covarianza del error no sea diagonal, sino con elementos diagonales iguales, expresados como:
\[ \mathbf{\Sigma} = \begin{bmatrix} \sigma^2 & \sigma_{1,2} & \sigma_{1,3} & ... & \sigma_{1,N}\\ \sigma_{2,1} & \sigma^2 & \sigma_{2,3} & ... & \sigma_{2,N}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \sigma_{N,1} & \sigma_{N,2} & \sigma_{N3,} & ... & \sigma^2 \end{bmatrix}, \quad \sigma_{i,j} = \sigma_{j,i} = \mathbb{C}{\rm ov}(\epsilon_i, \epsilon_j) \neq 0, \quad i,j = 1,...,N \]
se conoce como autocorrelación (o correlación en serie).
Autocorrelación significa la correlación de los valores de una misma variable ordenados en el tiempo (con datos de series temporales) o en el espacio (con datos espaciales). En el contexto de la regresión, decimos que hay autocorrelación en los términos de error cuando:
\[Cov(\varepsilon_{t}, \varepsilon_{t+s}) = E(\varepsilon_{t}, \varepsilon_{t-s}) \neq 0\]
Significa afirmar que los valores pasados, presentes o futuros de los errores están correlacionados. Perciba que las notaciones \(t-s\) y \(t+s\) son equivalentes en el conceptos de covarianza. Sin embargo en el análisis de regresión es más adecuado hablar de la correlación de los errores presentes con sus valores pasados.
El tipo mas común de autocorrelación es aquella dada por un proceso autoregresivo de primer orden, AR(1):
\[\varepsilon_{t} = \rho\varepsilon_{t-1} + u_{t}\] \(\rho\) es el coeficiente de autocorrelación de los errores \((-1<\rho<1)\) y \(u_{t}\) son errores IID.
Cabe destacar que la autocorrelación suele estar presente en los datos de series de tiempo. Para datos transversales, los errores pueden estar correlacionados en términos de distancia social o geográfica. Por ejemplo, la distancia entre ciudades, pueblos, barrios, etc.
Inercia: las series temporales económicas suelen presentar ciclos, es decir, períodos de crecimiento o decaimiento. Cuando este comportamiento se refleja en los factores no observados (\(\varepsilon_{t}\)), es común que los cambios en la tendencia ocurrieron lentamente. \[Y_{t} = \beta_{0} + \beta_{1}X_{t} + \varepsilon_{t} {\; \rightarrow\;} \varepsilon_{t} = \rho\varepsilon_{t-1} + u_{t}\]
Fallas de especificación: la autocorrelación puede deberse a la ausencia de un regresor importante o transformación de las variables existentes. Los errores expresan así un patrón sistemático debido a la ausencia de dicha información.
\[Y_{t} = \beta_{0} + \beta_{1}X_{t} + \varepsilon_{t} {\; \rightarrow\;} Y_{t} = \beta_{0} + \beta_{1}X_{t} + \beta_{2}X^{2}_{t} + \varepsilon_{t}\]
\[\begin{eqnarray*} Y_{t} = \beta_{0} + \beta_{1}X_{t} + \varepsilon_{t} {\; \rightarrow\;} Y_{t} = \beta_{0} + \beta_{1}X_{t} + \beta_{2}X_{t-1} + \varepsilon_{t}\\ o Y_{t} = \beta_{0} + \delta X_{t} + \beta_{2}X_{t-1} + \varepsilon_{t} \end{eqnarray*}\]
Al igual que antes con la heterocedasticidad:
Asumamos que \(\mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon}\) es el verdadero modelo.
Realice un análisis visual
Cree un modelo para los residuales de MCO. Por ejemplo, la regresión auxiliar residual en la prueba de Breusch-Godfrey incluye las variables explicativas del modelo original, así como los residuos de cierto orden:
\[ \widehat{\epsilon}_i = \alpha_0 + \alpha_1 X_{1, i} + ... + \alpha_k X_{k,i} + \rho_1 \widehat{\epsilon}_{i - 1} + \rho_2 \widehat{\epsilon}_{i - 2} + ... + \rho_p \widehat{\epsilon}_{i - p} + u_t \]
Si no rechazamos la hipótesis nula, podemos utilizar los estimadores de MCO habituales.
Si rechazamos la hipótesis nula, podemos proceder de dos maneras:
Simularemos el siguiente modelo:
\[ \begin{cases} Y_{i} &= \beta_0 + \beta_1 X_{1,i} + \beta_2 X_{2,i} + \epsilon_i \\ \epsilon_i &= \rho \epsilon_{i-1} + u_i,\ |\rho| < 1,\ u_i \sim \mathcal{N}(0, \sigma^2),\quad \epsilon_0 = 0 \end{cases} \]
set.seed(123)
N <- 200
beta_vec <- c(10, 5, -3)
rho <- 0.8
x1 <- seq(from = 0, to = 5, length.out = N)
x2 <- sample(seq(from = 3, to = 17, length.out = 80), size = N, replace = TRUE)
# residuos autocorrelacionados:
ee <- rnorm(mean = 0, sd = 3, n = N)
for(i in 2:N){
ee[i] <- rho * ee[i-1] + ee[i]
}
x_mat <- cbind(1, x1, x2)
y <- x_mat %*% beta_vec + ee
data_mat <- data.frame(y, x1, x2)Podemos examinar la presencia de autocorrelación a partir de los gráficos de residuos, así como realizar una serie de pruebas formales. Comenzaremos estimando nuestro modelo a través de MCO, como lo haríamos habitualmente.
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.61601 0.97983 10.83457 0
## x1 4.89018 0.20457 23.90497 0
## x2 -2.93686 0.07545 -38.92241 0
Comenzamos calculando los residuos del modelo de MCO:
\[ \widehat{\boldsymbol{\varepsilon}} = \mathbf{Y} - \mathbf{X} \widehat{\boldsymbol{\beta}}_{\rm MCO} \]
Usaremos estos residuales como estimaciones para el término de error verdadero (no observado) \(\boldsymbol{\varepsilon}\) y examinaremos sus autocorrelaciones. Tenga en cuenta que a partir de la estructura del MCO es cierto que \(\mathbb{E} \left( \widehat{\boldsymbol{\varepsilon}} | \mathbf{X}\right) = \boldsymbol{0}\).
Entonces, suponga que queremos calcular la correlación muestral entre \(\widehat{\epsilon}_i\) y \(\widehat{\epsilon}_{i - k}\). Para calcular la autocorrelación de orden \(k\) tenemos:
\[ \widehat{\rho}(k) = \widehat{\mathbb{C}{\rm orr}}(\widehat{\epsilon}_i, \widehat{\epsilon}_{i-k}) = \dfrac{\widehat{\mathbb{C}{\rm ov}}(\widehat{\epsilon}_i, \widehat{\epsilon}_{i-k})}{\sqrt{\widehat{\mathbb{V}{\rm ar}}(\widehat{\epsilon}_i)}\sqrt{\widehat{\mathbb{V}{\rm ar}}(\widehat{\epsilon}_{i-k})}} = \dfrac{\sum_{i = k + 1}^N \widehat{\epsilon}_i \widehat{\epsilon}_{i-k}}{\sum_{i = 1}^N \widehat{\epsilon}_i^2} \]
Además, suponga que estamos interesados en probar si la autocorrelación de orden k \(\rho(k)\) es significativamente diferente de cero:
\[ \begin{aligned} H_0: \rho(k) = 0\\ H_1: \rho(k) \neq 0 \end{aligned} \]
Bajo la hipótesis nula, es cierto que \(\widehat{\rho}(k) \stackrel{a}{\sim} \mathcal{N}(0, 1/N)\), donde \(\stackrel{a}{\sim}\) indica distribución asintótica: la distribución cuando el tamaño de la muestra \(N \rightarrow \infty\).
En este caso, significa que para muestras grandes la distribución es aproximadamente normal. En consecuencia, una estadística adecuada se puede construir como:
\[ Z = \dfrac{\widehat{\rho}(k) - 0}{\sqrt{1/N}} = \widehat{\rho}(k) \cdot \sqrt{N} \stackrel{a}{\sim} \mathcal{N}(0, 1) \]
Entonces, con un nivel de signficancia de \(5\%\), el valor crítico es \(Z_c \approx 1.96\). En este caso, se rechazaría la hipótesis nula cuando:
\[ \widehat{\rho}(k) \cdot \sqrt{N} \geq 1.96, \text{ o } \widehat{\rho}(k) \cdot \sqrt{N} \leq - 1.96 \]
o alternativamente, si queremos tener la notación similar a “\(\text{estimación} \pm \text{valor crítico} \cdot \text{se}(\text{estimación})\)”, lo podemos escribir como: \[ \widehat{\rho}(k) \pm 1.96 / \sqrt{N} \]
## [1] 1.959964
y podemos graficarlos:
Podemos ver en los gráficos que hay algunas autocorrelaciones de la muestra \(\widehat{\rho}(k)\), que son significativamente diferentes de cero (es decir, sus valores están por encima de la línea horizontal azul)
Al igual que con la mayoría de las herramientas de diagnóstico visual, es posible que no siempre sea una respuesta clara solo a partir de los gráficos. Por tanto, podemos aplicar una serie de pruebas estadísticas diferentes para comprobar si existen correlaciones muestrales estadísticamente significativas.
La prueba DW se utiliza para probar la hipótesis de que los residuales están autocorrelacionados de orden 1, es decir, que en el siguiente modelo:
\[ \epsilon_i = \rho \epsilon_{i-1} + v_i \]
la hipótesis que se está probando es:
\[ \begin{cases} H_0: \rho = 0\qquad \text{(no hay autocorrelación)}\\ H_1: \rho \neq 0\qquad \text{(autocorrelación de orden 1)} \end{cases} \]
Como no observamos los verdaderos términos del error, usamos los residuales de MCO, osea \(\widehat{\epsilon}_i\) y calculamos la estadística de Durbin-Watson como:
\[ DW = \dfrac{\sum_{i = 2}^N (\widehat{\epsilon}_i - \widehat{\epsilon}_{i-1})^2}{\sum_{i = 1}^N \widehat{\epsilon}_i^2} \]
Como regla rápida, si el estadístico DW está cerca de \(2\), entonces rechazamos la hipótesis nula de que no hay autocorrelación.
Si asumimos que \(\sum_{i = 2}^N \widehat{\epsilon}_i^2 \approx \sum_{i = 2}^N \widehat{\epsilon}_{i-1}^2\), entonces podemos reescribir la estadística DW como:
\[ DW = \dfrac{\sum_{i = 2}^N \widehat{\epsilon}_i^2 - 2 \sum_{i = 2}^N \widehat{\epsilon}_i\widehat{\epsilon}_{i-1} + \sum_{i = 2}^N \widehat{\epsilon}_{i-1}^2}{\sum_{i = 1}^N \widehat{\epsilon}_i^2} \approx \dfrac{2\left[ \sum_{i = 2}^N \widehat{\epsilon}_i^2 - \sum_{i = 2}^N \widehat{\epsilon}_i\widehat{\epsilon}_{i-1} \right]}{\sum_{i = 1}^N \widehat{\epsilon}_i^2} = 2 \left[ 1 - \widehat{\rho}(1)\right] = \begin{cases} 4,\ \text{ if } \widehat{\rho}(1) = -1\\ 2,\ \text{ if } \widehat{\rho}(1) = 0\\ 0,\ \text{ if } \widehat{\rho}(1) = 1 \end{cases} \]
lo que ayuda a comprender por qué esperamos que el estadístico DW esté cerca de \(2\) bajo la hipótesis nula.
##
## Durbin-Watson test
##
## data: mdl_1
## DW = 0.56637, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is not 0
porque \(p-valor < 0.05\), rechazamosla hipótesis nula a una nivel de significancia de \(5\%\) y concluimos que los residuos están autocorrelacionados en orden 1.
Como no observamos los verdaderos términos del error, usamos los residuales de MCO, osea \(\widehat{\epsilon}_i\) y calculamos la estadística de Durbin-Watson como:
\[ DW = \dfrac{\sum_{i = 2}^N (\widehat{\epsilon}_i - \widehat{\epsilon}_{i-1})^2}{\sum_{i = 1}^N \widehat{\epsilon}_i^2} \]
Como regla rápida, si el estadístico DW está cerca de \(2\), entonces rechazamos la hipótesis nula de que no hay autocorrelación.
La prueba Q de Ljung-Box (alguna veces llamada de Prueba de Portmanteau) es usada para probar si las observaciones en el tiempo son aleatorias e independiente. En particular, para un \(k\) dado, se prueba lo siguiente:
\[ \begin{align*} H_{0}& :\text{ las autocorrelaciones hasta el retraso $k$ son todas 0}\\ H_{A}& :\text{ las autocorrelaciones de $k$ o más retrasos difieren de 0} \end{align*} \]
La estadística de prueba es calculada como:
\[Q_{k} = n(n+2)\sum^{k}_{j=1}\frac{\widehat{\rho}^{2}_{j}}{n-j}\]
Que es aproximadamente distribuida como una \(\chi^{2}_{k}\).
##
## Box-Ljung test
##
## data: residuals(mdl_1)
## X-squared = 101.11, df = 1, p-value < 2.2e-16
porque \(p-valor < 0.05\), rechazamosla hipótesis nula a una nivel de significancia de \(5\%\) y concluimos que los residuos están autocorrelacionados en orden 1.
La prueba de BG puede aplicarse al modelo, con una variable de respuesta con un lag (retardo) en el lado derecho, por ejemplo: \(Y_i = \beta_0 + \beta_1 X_{1,i} + ... + \beta_k X_{k,i} + \beta_{k+1} Y_{i - 1} + \epsilon_i\).
En general, estimamos los parámetros del modelo a través de MCO y calculamos los residuos: \[ \widehat{\boldsymbol{\varepsilon}} = \mathbf{Y} - \mathbf{X} \widehat{\boldsymbol{\beta}} \] donde \(\mathbf{X}\) que contiene \(X_{1,i},...,X_{k,i}, Y_{i - 1}\) para \(i = 1,...,N\).
Entonces, estimamos una regresión auxiliar en \(\widehat{\boldsymbol{\varepsilon}}\) como: \[ \widehat{\epsilon}_i = \alpha_0 + \alpha_1 X_{1,i} + ... + \alpha_k X_{k,i} + \rho_i \widehat{\epsilon}_{i-1} + ... + \rho_p \widehat{\epsilon}_{i-p} + u_i \] (Nota: si incluimos \(Y_{i - 1}\) en la regresión inicial, entonces necesitamos incluirlos también en la regresión auxiliar).
Queremos probar la hipótesis nula de que los coeficientes residuales rezagados son insignificantes:
\[ \begin{cases} H_0: \rho_1 = ... = \rho_p = 0\\ H_1: \rho_j \neq 0, \text{ para algún } j \end{cases} \]
Podemos realizar la prueba-\(F\), o la prueba-Chi-cuadrado: \[ LM = (N-p)R_{\widehat{\epsilon}}^2 \sim \chi^2_p \] donde \(R_{\widehat{\epsilon}}^2\) es el \(R\)-cuadrado de la regresión auxiliar en \(\widehat{\boldsymbol{\varepsilon}}\).
La prueba BG es una prueba más general en comparación con DW.
Observando las gráficas del correlograma. Probemos la hipótesis nula de que al menos uno de los primeros tres rezagos de los residuos no es cero, es decir \(p = 3\):
##
## Breusch-Godfrey test for serial correlation of order up to 3
##
## data: mdl_1
## LM test = 100.72, df = 3, p-value < 2.2e-16
| Característica | Durbin-Watson | Ljung-Box | Breusch-Godfrey |
|---|---|---|---|
| Propósito | Autocorrelación de primer orden | Autocorrelación en varios rezagos | Autocorrelación de orden superior |
| Orden de Autocorrelación | Primer orden | Múltiples (conjunto) | Superior (específico) |
| Variables Rezagadas | No | Sí | Sí |
| Distribución | Normal | \(\chi^2\) con \(k\) g.l. | \(\chi^2\) con \(p\) g.l. |
| Ventajas | Simple, directa | Múltiples rezagos | Orden superior, modelos con rezagados |
| Desventajas | Solo primer orden, no rezagados | No específica, menos intuitiva | Regresión adicional, más compleja |
Hasta ahora, hemos asumido que los elementos diagonales de \(\mathbf{\Sigma}\) son constantes, es decir, que los residuos son autocorrelacionados pero homocedásticos. Podemos generalizar aún más esto para el caso de errores estándar heterocedásticos y autocorrelacionados:
\[ \mathbf{\Sigma} = \begin{bmatrix} \sigma_1^2 & \sigma_{1,2} & \sigma_{1,3} & ... & \sigma_{1,N}\\ \sigma_{2,1} & \sigma_2^2 & \sigma_{2,3} & ... & \sigma_{2,N}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \sigma_{N,1} & \sigma_{N,2} & \sigma_{N3,} & ... & \sigma_N^2 \end{bmatrix}, \quad \sigma_{i,j} = \sigma_{j,i} = \mathbb{C}{\rm ov}(\epsilon_i, \epsilon_j) \neq 0, \quad i,j = 1,...,N \]
podemos usar el estimador MCO y corregir los errores estándar. En este caso, los errores estándar corregidos se conocen como errores estándar HAC (heterocedasticidad y autocorrelación consistente) o errores estándar de Newey-West.
La matriz de covarianza de White asume residuos no autocorrelacionados. Por otro lado, Newey-West propuso un estimador de covarianza más general, que es robusto tanto a la heterocedasticidad como a la autocorrelación, de los residuos con covarianza desconocida. El estimador de covarianza del coeficiente HAC maneja la autocorrelación con rezagos de hasta orden \(p\); se supone que los rezagos mayores que \(p\) son no significativos y, por lo tanto, pueden ignorarse. Se define como:
\[ HAC_{\widehat{\boldsymbol{\beta}}_{MCO}} = \left( \mathbf{X}^\top \mathbf{X}\right)^{-1} N \widehat{\mathbf{\Sigma}} \left( \mathbf{X}^\top \mathbf{X}\right)^{-1} \]
donde:
\[ \widehat{\mathbf{\Sigma}} = \widehat{\boldsymbol{\Gamma}}(0) + \sum_{j = 1}^p \left[ 1 - \dfrac{j}{p + 1}\right] \left[ \widehat{\boldsymbol{\Gamma}}(j) + \widehat{\boldsymbol{\Gamma}}(-j)\right] \] \[ \widehat{\boldsymbol{\Gamma}}(j) = \dfrac{1}{N} \left( \sum_{i = 1}^N\widehat{\epsilon}_{i}\widehat{\epsilon}_{i-j} \mathbf{X}_i\mathbf{X}_{i-j}^\top\right),\quad \mathbf{X}_i = \left[1,\ X_{1,i},\ X_{2,i},\ ...,\ X_{k,i} \right]^\top \]
En ausencia de correlación serial tendríamos que: \[ \widehat{\mathbf{\Sigma}} = \widehat{\boldsymbol{\Gamma}}(0) \] que es equivalente a los estimadores de White (HCE).
Nota: HAC no solo corrige la autocorrelación, sino también la heterocedasticidad.
No se alarme si ve errores estándar de HAC ligeramente diferentes en diferentes programas estadísticos; hay una serie de variaciones diferentes de \(\widehat{\mathbf{\Sigma}}\).
Usando las funciones del R tenemos que:
## (Intercept) x1 x2
## (Intercept) 1.43560709 -0.303808295 -0.043572462
## x1 -0.30380830 0.183608167 -0.002018108
## x2 -0.04357246 -0.002018108 0.004421496
entonces los coeficientes, sus errores estándar y \(p\)-valores se pueden resumir como:
# print(lmtest::coeftest(mdl_1, sandwich::vcovHAC(mdl_1)))
print(lmtest::coeftest(mdl_1, sandwich::NeweyWest(mdl_1, lag = 1))[, ])## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.616005 1.19816822 8.860196 4.719858e-16
## x1 4.890185 0.42849524 11.412460 1.741811e-23
## x2 -2.936860 0.06649433 -44.167068 3.799730e-104
Comparamos los residuales sesgados en la salida de MCO:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.616005 0.97982714 10.83457 9.311699e-22
## x1 4.890185 0.20456771 23.90497 3.887306e-60
## x2 -2.936860 0.07545421 -38.92241 1.933624e-94
vemos que los errores estándar de HAC son algo mayores, en comparación con los que obtenemos con MCO.
Alternativamente al HAC, podemos hacer algunas suposiciones sobre la naturaleza de la autocorrelación y emplear un estimador GLS más eficiente.
Para el caso, cuando los residuos están autocorrelacionados en el lap 1, pero no heteroscedásticos:
\[ \epsilon_i = \rho \epsilon_{i-1} + u_i,\ |\rho| < 1,\ u_i \sim \mathcal{N}(0, \sigma^2), \quad i \in \{0, \pm 1, \pm 2,... \} \]
notamos que:
\[ \begin{aligned} \mathbb{V}{\rm ar}(\epsilon_i) &= \mathbb{V}{\rm ar}(\rho\epsilon_{i-1} + u_i)\\ &= \mathbb{V}{\rm ar}(\rho(\rho\epsilon_{i-2} + u_{i-1}) + u_i) \\ &= \mathbb{V}{\rm ar}(\rho^2(\rho\epsilon_{i-3} + u_{i-2}) + u_i + \rho u_{i-1})\\ &= ... \\ &= \mathbb{V}{\rm ar} \left(\sum_{j = 0}^\infty \rho^j u_{i-j}\right)\\ &=\sum_{j = 0}^\infty \rho^{2j} \cdot \mathbb{V}{\rm ar} \left(u_{i-j}\right)\\ &= \dfrac{\sigma^2}{1 - \rho^2} \end{aligned} \]
y
\[ \begin{aligned} \mathbb{C}{\rm ov}(\epsilon_i,\ \epsilon_{i - k}) &= \mathbb{C}{\rm ov}(\rho(\rho\epsilon_{i-2} + u_{i-1}) + u_i,\ \epsilon_{i - k}) \\ &=\mathbb{C}{\rm ov}(\rho^2(\rho\epsilon_{i-3} + u_{i-2}) + \rho u_{i-1},\ \epsilon_{i - k}) \\ &= ... \\ &=\mathbb{C}{\rm ov}(\rho^k\epsilon_{i-k},\ \epsilon_{i - k}) \\ &= \rho^k \mathbb{C}{\rm ov}(\epsilon_{i-k},\ \epsilon_{i - k}) \\ &= \rho^k \sigma^2, \quad \text{ dado que } \mathbb{C}{\rm ov}(u_i, \epsilon_j ) = 0, i \neq j \end{aligned} \]
\[ \mathbf{\Sigma} = \dfrac{\sigma^2}{1 - \rho^2} \begin{bmatrix} 1 & \rho & \rho^2 & ... & \rho^{N-1}\\ \rho & 1 & \rho & ... & \rho^{N-2}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \rho^{N-1} & \rho^{N-2} & \rho^{N-3} & ... & 1 \end{bmatrix} \]
\[ \mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]
y calculamos los residuos \(\widehat{\boldsymbol{\varepsilon}}^{(1)} = \mathbf{Y} - \mathbf{X} \widehat{\boldsymbol{\beta}}\), donde \({(1)}\) denota la primera iteración.
Estime la siguiente regresión residual a través de MCO: \[ \widehat{\epsilon}^{(1)}_i = \rho \widehat{\epsilon}^{(1)}_{i-1} + \widehat{u}_i \] y obtenemos \(\widehat{\rho}^{(1)}\).
Calcule las siguientes variables transformadas:
\[ Y_i^* = Y_i - \widehat{\rho}^{(1)} Y_{i-1}, \qquad \boldsymbol{X}_i^* = \boldsymbol{X}_i - \widehat{\rho}^{(1)} \boldsymbol{X}_{i-1},\text{ donde }\mathbf{X}_i = \left[1,\ X_{1,i},\ X_{2,i},\ ...,\ X_{k,i} \right]^\top \]
\[ (Y_i - \widehat{\rho}^{(1)} Y_{i-1}) = \beta_0 (1 - \widehat{\rho}^{(1)}) + \beta_1 (X_{1,i} - \widehat{\rho}^{(1)}{X}_{i-1}) + ... + \beta_k (X_{k,i} - \widehat{\rho}^{(1)}{X}_{k-1}) + u_i \]
o, en forma más compacta: \[ \mathbf{Y}^* = \mathbf{X}^* \boldsymbol{\beta} + \boldsymbol{u} \] para obtener las estimaciones de MCO de \(\widetilde{\boldsymbol\beta}\).
Nota: si decidimos usar una columna de unos para la constante \(\beta_0\), entonces realmente habremos estimado \(\widetilde{\beta}_0^* = \widetilde{\beta}_0 (1 - \widehat{\rho}^{(1)})\) y necesitará transformar el término de intersección como \(\widetilde{\beta}_0 = \widehat{\beta}_0^* / (1 - \widehat{\rho}^{(1)})\). Por otro lado, si transformamos la columna de intersección para tener \(1 - \widehat{\rho}^{(1)}\) en cambio, en la matriz de diseño, entonces no necesitaremos transformar el coeficiente de intersección.
El valor final \(\widehat{\rho}^{(K)}\) luego se utiliza para obtener las estimaciones de FGLS (CORC) de \(\widehat{\boldsymbol\beta}\). Nuevamente, dependiendo de su especificación, es posible que deba transformar el coeficiente de intersección:\(\widehat{\beta}_0 = \widehat{\beta}_0^* / (1 - \widehat{\rho}^{(K)})\).
Estos estimadores de FGLS no son insesgados pero son consistentes y asintóticamente eficientes.
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.402800 1.50824063 6.897 7.124332e-11
## x1 5.082365 0.48877934 10.398 1.899433e-20
## x2 -2.978490 0.04202203 -70.879 1.185668e-141
la estimación de \(\rho\) es:
## [1] 0.7088817
que está cerca del valor real de \(\rho\) usado en la generación de datos.
Se ha vuelto más popular estimar modelos por MCO y corregir los errores estándar para formas bastante arbitrarias de autocorrelación y heterocedasticidad.
Con respecto a HAC:
Respecto a FGLS:
\[ \begin{cases} Y_{i}^{(m)} &= \beta_0 + \beta_1 X_{1,i}^{(m)} + \beta_2 X_{2,i}^{(m)} + \epsilon_i^{(m)} \\ \epsilon_i^{(m)} &= \rho \epsilon_{i-1}^{(m)} + u_i^{(m)} ,\ |\rho| < 1,\ u_i^{(m)} \sim \mathcal{N}(0, \sigma^2),\quad \epsilon_0^{(m)} = 0,\quad i = 1,...,N,\quad m = 1,..., MC \end{cases} \]
set.seed(123)
# Número de simulaciones:
MC <- 1000
# Fijamos los parámetros
N <- 100
beta_vec <- c(1, 0.2, -0.3)
rho <- 0.8
# matriz de parámetros para cada muestra:
beta_est_ols <- NULL
beta_pval_ols <- NULL
beta_pval_hac <- NULL
#
beta_est_fgls <- NULL
beta_pval_fgls <- NULL
#
beta_est_gls <- NULL
beta_pval_gls <- NULL
#
for(i in 1:MC){
# simulamos los datos
x1 <- seq(from = 0, to = 5, length.out = N)
x2 <- sample(seq(from = 3, to = 17, length.out = 80), size = N, replace = TRUE)
ee <- rnorm(mean = 0, sd = 3, n = N)
for(i in 2:N){
ee[i] <- rho * ee[i-1] + ee[i]
}
y <- cbind(1, x1, x2) %*% beta_vec + ee
data_mat <- data.frame(y, x1, x2)
# estimamos via MCO
mdl_0 <- lm(y ~ x1 + x2, data = data_mat)
# corregimos el error estándar de MCO:
# mdl_hac <- lmtest::coeftest(mdl_0, vcov. = sandwich::vcovHAC(mdl_0))
mdl_hac <- lmtest::coeftest(mdl_0, vcov. = sandwich::NeweyWest(mdl_1, lag = 1))
# estimamos via CORC:
suppressWarnings({
mdl_fgls <- orcutt::cochrane.orcutt(mdl_0)
})
# Guarde las estimaciones de cada muestra:
beta_est_ols <- rbind(beta_est_ols, coef(summary(mdl_0))[, 1])
beta_est_fgls <- rbind(beta_est_fgls, coef(summary(mdl_fgls))[, 1])
# Guarde los p-valores de cada muestra:
beta_pval_ols <- rbind(beta_pval_ols, coef(summary(mdl_0))[, 4])
beta_pval_hac <- rbind(beta_pval_hac, mdl_hac[, 4])
beta_pval_fgls <- rbind(beta_pval_fgls, coef(summary(mdl_fgls))[, 4])
}alpha = 0.05
a1 <- colSums(beta_pval_ols < alpha) / MC
a2 <- colSums(beta_pval_hac < alpha) / MC
a3 <- colSums(beta_pval_fgls < alpha) / MC
#
a <- t(data.frame(a1, a2, a3))
colnames(a) <- names(a1)
rownames(a) <- c("OLS: H0 rejection rate", "HAC: H0 rejection rate", "FGLS: H0 rejection rate")
print(a)## (Intercept) x1 x2
## OLS: H0 rejection rate 0.373 0.505 0.757
## HAC: H0 rejection rate 0.457 0.365 0.919
## FGLS: H0 rejection rate 0.135 0.122 0.999
Entonces, el FGLS parece ser mejor en algunos casos de parámetros, mientras que HAC puede ser similar al MCO. Con todo, si solo tenemos una autocorrelación del problema de orden 1, es posible que las correcciones no tengan un gran impacto en nuestras conclusiones en algunos casos.
Podemos mirar los histogramas de estimación de coeficientes:
# histogramas de las estimaciones:
layout(matrix(c(1, 2, 3, 3), nrow = 2, byrow = TRUE))
for(j in ncol(beta_est_ols):1){
p1 <- hist(beta_est_ols[, j], plot = FALSE, breaks = 25)
p2 <- hist(beta_est_fgls[, j], plot = FALSE, breaks = 25)
#
plot(p1, col = rgb(0,0,1,1/4), main = colnames(beta_est_ols)[j], ylim = c(0, max(p1$counts, p2$counts)))
plot(p2, col = rgb(1,0,0,1/4), add = T)
abline(v = beta_vec[j], lwd = 3, lty = 2, col = "red")
#
legend("topleft", legend = c("True Value", "OLS", "FGLS"),
lty = c(3, NA, NA), lwd = c(3, 0, 0), pch = c(NA, 22, 22),
col = c("red", "black", "black"), pt.cex = 2,
pt.bg = c(NA, rgb(0,0,1,1/4), rgb(1,0,0,1/4))
)
}Robert Grant - Data Visualization - Charts, Maps, and Interactive Graphics (2018)
https://cran.r-project.org/web/packages/naniar/vignettes/naniar-visualisation.html