ImportanteObjetivos de aprendizaje

Al finalizar este tema, el estudiante será capaz de:

  • Comprender qué es la autocorrelación y por qué supone una vulneración de los supuestos clásicos del modelo de regresión lineal.
  • Identificar las principales causas de autocorrelación en modelos con datos de series temporales.
  • Comprender las consecuencias de la autocorrelación sobre los estimadores MCO, sus varianzas y los contrastes de hipótesis.
  • Detectar indicios de autocorrelación mediante el análisis gráfico de los residuos.
  • Aplicar e interpretar los principales contrastes de autocorrelación, especialmente Durbin-Watson y Ljung-Box.
  • Comprender el supuesto de autocorrelación AR(1) y su relación con la matriz de varianzas y covarianzas de las perturbaciones.
  • Entender la lógica de las transformaciones utilizadas para obtener perturbaciones incorreladas.
  • Aplicar en R procedimientos para detectar y corregir la autocorrelación.
  • Comprender el funcionamiento básico de los procedimientos de Cochrane-Orcutt y Prais-Winsten.
  • Interpretar los resultados obtenidos en un contexto económico y financiero.

6.0.1 Concepto, causas y consecuencias de autocorrelación

En el modelo lineal general,

\[ \mathbf{y} = \mathbf{X}\boldsymbol{\beta}+\mathbf{u}, \]

uno de los supuestos clásicos establece que las perturbaciones aleatorias de distintas observaciones no están correlacionadas entre sí. En concreto, suponemos que \(Var(\mathbf{u})=\sigma^2\mathbf{I}\) que implica tres condiciones:

  1. Las perturbaciones tienen media cero: \(E(u_t)=0\)

  2. Las perturbaciones presentan una varianza constante \(Var(u_t)=\sigma^2\)

  3. Las perturbaciones correspondientes a diferentes observaciones están incorrelacionadas: \(Cov(u_t,u_s)=0\qquad t\neq s.\)

La tercera condición es especialmente importante cuando trabajamos con datos de series temporales, donde las observaciones están ordenadas cronológicamente.

Concepto de la autocorrelación

Existe autocorrelación cuando las perturbaciones correspondientes a distintos momentos del tiempo están correlacionadas: \(Cov(u_t,u_{t-k})\neq 0,\qquad k>0.\)

Por tanto, mientras que en la heteroscedasticidad estudiábamos una modificación de la varianza de las perturbaciones, en la autocorrelación estudiamos una modificación de las covarianzas entre perturbaciones de distintos períodos.

En presencia de autocorrelación podemos escribir:

\[ Var(\mathbf{u})=\sigma^2\mathbf{\Omega}, \]

donde \(\mathbf{\Omega}\) recoge la estructura de covarianzas entre las perturbaciones.

Por ejemplo:

\[ Var(\mathbf{u})= \begin{pmatrix} \sigma^2 & \sigma_{12} & \cdots & \sigma_{1n}\\ \sigma_{21} & \sigma^2 & \cdots & \sigma_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ \sigma_{n1} & \sigma_{n2} & \cdots & \sigma^2 \end{pmatrix}. \]

La diagonal principal recoge las varianzas de las perturbaciones, mientras que los elementos situados fuera de la diagonal representan sus covarianzas.

  • En ausencia de autocorrelación \(\sigma_{ts}=0\qquad t\neq s.\)

  • En presencia de autocorrelación, algunas de estas covarianzas serán diferentes de cero.

El problema es que una matriz completamente general requeriría estimar un número muy elevado de parámetros. Por ello, al igual que ocurre con la heteroscedasticidad, es necesario especificar una estructura concreta para las covarianzas. La estructura más sencilla que estudiaremos será la correspondiente a un proceso autorregresivo de primer orden, AR(1) que consiste en que las perturbaciones de un momento temporal dependen del momento temporal anterior.

Causas de la autocorrelación

La autocorrelación aparece fundamentalmente en modelos estimados con datos de series temporales. Sin embargo, su origen puede encontrarse tanto en la propia naturaleza del fenómeno como en una especificación incorrecta del modelo.

  • Naturaleza de la variable: Cuando trabajamos con variables económicas y financieras observadas a lo largo del tiempo, es habitual que exista cierta persistencia. Por ejemplo, la rentabilidad del IBEX 35 de hoy puede estar relacionada con las condiciones existentes en el mercado durante los días anteriores. Del mismo modo, determinadas variables macroeconómicas o financieras presentan una evolución gradual y no cambian completamente de un período a otro. Esto puede provocar que los factores no incluidos explícitamente en el modelo también presenten persistencia temporal y, por tanto, que las perturbaciones estén correlacionadas.

Ejemplo: Supongamos que analizamos la evolución del IBEX 35 y omitimos factores como la incertidumbre internacional, la evolución de los tipos de interés o las expectativas de los inversores. Aunque estas variables no aparezcan explícitamente en el modelo, sus efectos pueden persistir durante varios días. En consecuencia, pueden generar un patrón temporal en los residuos.

  • Omisión de variables relevantes: Otra causa frecuente es la omisión de variables relevantes. Supongamos que el modelo correcto es:

\[ Y_t=\beta_1+\beta_2X_{2t}+\beta_3X_{3t}+u_t, \]

pero estimamos:

\[ Y_t=\alpha_1+\alpha_2X_{2t}+v_t. \]

La variable \(X_{3t}\) queda incorporada en la perturbación:

\[ v_t=\beta_3X_{3t}+u_t. \]

Si \(X_{3t}\) presenta dependencia temporal, la perturbación \(v_t\) también la presentará.

Por tanto, una variable relevante omitida puede generar autocorrelación incluso cuando la perturbación del modelo correctamente especificado sea incorrelacionada.

  • Especificación incorrecta de la forma funcional: También puede aparecer autocorrelación cuando la relación entre las variables no se especifica correctamente. Por ejemplo, si la relación verdadera entre una variable financiera y una variable explicativa presenta una tendencia no lineal y estimamos únicamente una relación lineal, parte de esa estructura quedará recogida en los residuos. Si además esa estructura presenta un patrón temporal, los residuos pueden mostrar autocorrelación.

  • Transformaciones y manipulación de los datos: La construcción de variables mediante medias, interpolaciones, agregaciones o determinadas técnicas de suavizado puede introducir relaciones artificiales entre observaciones consecutivas. Por ello, antes de interpretar una autocorrelación como un fenómeno económico, conviene comprobar también cómo se han construido y transformado los datos.

  • Variables dependientes retardadas: La inclusión de retardos de la variable dependiente es habitual en modelos económicos y financieros: \(Y_t=\alpha+\beta X_t+\gamma Y_{t-1}+u_t.\) Este tipo de modelos introduce explícitamente una relación temporal y requiere especial atención en los procedimientos de detección de autocorrelación.

Consecuencias de la autocorrelación

La autocorrelación, al igual que la heteroscedasticidad, no implica necesariamente que los estimadores MCO dejen de ser insesgados bajo los supuestos adecuados de exogeneidad. Sin embargo, dejan de ser eficientes dentro de la clase de estimadores lineales e insesgados.

Las principales consecuencias son:

  • Los estimadores MCO pueden seguir siendo lineales, insesgados y consistentes, pero dejan de ser eficientes.
  • La expresión habitual de la matriz de varianzas-covarianzas de los estimadores MCO deja de ser válida cuando ignora la autocorrelación.
  • Los errores estándar calculados convencionalmente pueden estar mal estimados.
  • Como consecuencia, los contrastes \(t\) y \(F\) pueden conducir a conclusiones incorrectas.
  • La significación estadística de las variables puede estar sobreestimada o subestimada.
  • Las predicciones y los intervalos de confianza pueden resultar poco fiables.

En consecuencia, la presencia de autocorrelación no debe interpretarse únicamente como un problema de los coeficientes estimados. El problema fundamental para la inferencia está en la estimación incorrecta de sus varianzas.

6.1 Detección de la autocorrelación

La detección de la autocorrelación puede abordarse mediante:

  1. métodos gráficos;
  2. contrastes estadísticos.

Los métodos gráficos permiten obtener una primera impresión sobre el comportamiento temporal de los residuos, mientras que los contrastes permiten formalizar estadísticamente la existencia de autocorrelación.

6.1.1 Métodos gráficos

  • Gráfico temporal de los residuos: Una primera aproximación consiste en representar los residuos frente al tiempo. Si los residuos están incorrelacionados, esperamos encontrar una sucesión aproximadamente aleatoria de valores alrededor de cero.

Por el contrario, pueden aparecer:

  • Rachas de residuos del mismo signo, compatibles con autocorrelación positiva.
  • Alternancia sistemática de signos, compatible con autocorrelación negativa.
TipBase de datos 2: El IBEX35

Una vez estimado el modelo correspondiente, podemos representar sus residuos mediante:

Código
plot(
  residuos,
  type = "l",
  main = "Residuos del modelo del IBEX 35",
  xlab = "Tiempo",
  ylab = "Residuo"
)

abline(h = 0, lty = 2)

La interpretación debe hacerse con cautela. El gráfico permite detectar patrones, pero no constituye por sí mismo una prueba estadística de autocorrelación.

  • Gráfico de residuos frente a su primer retardo: Otra posibilidad consiste en representar \(e_t\) frente a \(e_{t-1}\).

    • Una nube de puntos sin estructura clara es compatible con la ausencia de autocorrelación.

    • Una tendencia creciente sería indicativa de autocorrelación positiva, mientras que una tendencia decreciente sería compatible con autocorrelación negativa.

TipBase de datos 2: El IBEX35

Una vez estimado el modelo correspondiente, podemos representar sus residuos mediante:

Código
plot(
  residuos[-1],
  residuos[-length(residuos)],
  xlab = expression(e[t-1]),
  ylab = expression(e[t]),
  main = "Residuos frente a su primer retardo"
)

abline(h = 0, v = 0, lty = 2)

La interpretación debe hacerse con cautela. El gráfico permite detectar patrones, pero no constituye por sí mismo una prueba estadística de autocorrelación.

6.1.2 Contrastes estadísticos

Contraste de Durbin-Watson

El contraste de Durbin-Watson es uno de los procedimientos clásicos para detectar autocorrelación de primer orden. Se parte del modelo \(u_t=\rho u_{t-1}+v_t\) donde \(v_t\) es una perturbación incorrelacionada. El contraste plantea:

\[ H_0:\rho=0 \]

frente a las alternativas:

\[ H_1:\rho>0 \]

para autocorrelación positiva, o

\[ H_1:\rho<0 \]

para autocorrelación negativa.

El estadístico de Durbin-Watson es:

\[ d= \frac{\sum_{t=2}^{n}(e_t-e_{t-1})^2} {\sum_{t=1}^{n}e_t^2}. \]

De forma aproximada:

\[ d\approx2(1-\hat{\rho}). \]

Por tanto:

  • \(d\approx 2\): ausencia de autocorrelación.
  • \(d<2\): autocorrelación positiva.
  • \(d>2\): autocorrelación negativa.
  • \(d\approx 0\): autocorrelación positiva muy elevada.
  • \(d\approx 4\): autocorrelación negativa muy elevada.

El paquete lmtest proporciona la función dwtest().

TipBase de datos 2: El IBEX35

Una vez estimado el modelo correspondiente, podemos realizar el contraste de Durbin-Watson con la función dwtest. En este caso, el p valor es mayor que 0.1, por lo que no se puede rechazar la hipótesis nula de ausencia de autocorrelación.

Código
library(lmtest)

dwtest(modeloIBEX)

    Durbin-Watson test

data:  modeloIBEX
DW = 1.9445, p-value = 0.4106
alternative hypothesis: true autocorrelation is greater than 0

Contraste h de Durbin

El contraste de Durbin-Watson es válido cuando la autocorrelación de los errores es autorregresiva de orden 1 y cuando la regresión no incluye entre las variables explicativas algún retardo de la variable dependiente.

En este segundo caso, se recurre al contraste \(h\) de Durbin Durbin (1970). Esto es, en modelos del tipo:

\[ Y_t = \alpha Y_{t-1} + \beta_1 + \beta_2 X_{2t} + \cdots + \beta_k X_{kt} + u_t, \]

donde los errores siguen un proceso autorregresivo de primer orden:

\[ u_t = \rho u_{t-1} + v_t, \]

se plantean las siguientes hipótesis:

\[ \begin{aligned} H_0 &: \rho = 0 \quad \text{(incorrelación)},\\ H_1 &: \rho \neq 0 \quad \text{(correlación)}. \end{aligned} \]

Para contrastar estas hipótesis, utilizaremos el estadístico \(h\) de Durbin, definido como:

\[ h = \widehat{\rho} \sqrt{ \frac{n} {1-n\widehat{\operatorname{Var}}(\widehat{\alpha})} } \sim N(0,1). \]

Por tanto, se rechazará la hipótesis nula \(H_0\) al nivel de significación \(\alpha\) si:

\[ |h| > Z_{1-\frac{\alpha}{2}}, \]

donde \(Z_{1-\frac{\alpha}{2}}\) representa el cuantil de la distribución normal estándar correspondiente.

TipBase de datos 2: El IBEX35

En este caso, incluimos como variable explicativa el primer retardo de la variable dependiente, y volvemos a estimar el modelo. Obtenemos el valor del estadístico experimental a partir del siguiente código y concluimos que no se puede rechazar la hipótesis nula de ausencia de autocorrelación:

Código
datos$Rend_IBEX_lag1 <- dplyr::lag(datos$Rend_IBEX, 1)

# Estimar el modelo incluyendo el primer retardo
modeloIBEX_dinamico <- lm(
  Rend_IBEX ~ Rend_IBEX_lag1 + Rend_SP500 + Rend_EUROSTOXX50,
  data = datos
)
alpha_hat <- coef(modeloIBEX_dinamico)["Rend_IBEX_lag1"]
var_alpha_hat <- vcov(modeloIBEX_dinamico)[
  "Rend_IBEX_lag1",
  "Rend_IBEX_lag1"
]

n <- nrow(modeloIBEX_dinamico$model)

DW=as.numeric(dwtest(modeloIBEX_dinamico)[1])

rho_hat <- 1 - DW / 2

h <- rho_hat * sqrt(
  n / (1 - n * var_alpha_hat)
)

# Decisión al 5%
z_critico <- qnorm(0.975)

if (abs(h) > z_critico) {
  cat("Se rechaza H0: existe autocorrelación\n")
} else {
  cat("No se rechaza H0: no existe evidencia de autocorrelación\n")
}
No se rechaza H0: no existe evidencia de autocorrelación

Contraste de Ljung-Box

Si los residuos son independientes, sus primeras \(m\) autocorrelaciones son cero, para cualquier valor de \(m\). En esta idea se basa el test de , que contrasta la hipótesis nula de que las primeras \(m\) autocorrelaciones, \(\rho_1, \rho_2, \dots, \rho_m\), son cero. Esto es:

\[ \begin{aligned} H_0 &: \rho_1 = \rho_2 = \dots = \rho_m = 0, \\ H_1 &: \exists\, i \in \{1,2,\dots,m\} \text{ tal que } \rho_i \neq 0. \end{aligned} \]

Se rechaza la hipótesis nula de incorrelación si:

\[ Q_{LB} = n(n+2) \sum_{s=1}^{m} \frac{r(s)^2}{n-s} > \chi^2_{m}(1-\alpha), \]

donde

\[ r(s) = \frac{ \displaystyle\sum_{t=s+1}^{n} e_t e_{t-s} }{ \displaystyle\sum_{t=1}^{n} e_t^2 }, \]

es el coeficiente de autocorrelación muestral de orden \(s\). Si las observaciones son independientes (incorrelación), los coeficientes \(r(s)\) serán próximos a cero, por lo que no se rechazaría la hipótesis nula. Por otro lado, el valor de \(m\) puede fijarse arbitrariamente, aunque no debe ser demasiado grande.

TipBase de datos 2: El IBEX35

En R podemos utilizar la función Box.test seleccionando type="Ljung-Box". En este caso, realizamos el contraste sobre el modelo original (sin incluir la variable dependiente retardada como variable explicativa) y seleccionando 12 retardos (lag=12), lo que permite analizar la posible existencia de autocorrelación de los residuos hasta un horizonte de un año. Dado que las observaciones tienen una frecuencia mensual, el retardo 12 resulta especialmente relevante, ya que permite detectar posibles patrones de autocorrelación asociados al mismo mes del año anterior.

Código
Box.test(
  residuos,
  lag = 12,
  type = "Ljung-Box"
)

    Box-Ljung test

data:  residuos
X-squared = 6.9329, df = 12, p-value = 0.862

El parámetro lag = 12 indica que se están considerando conjuntamente los doce primeros retardos. La elección de lag debe responder a la frecuencia de los datos y al objetivo del análisis, por lo que no debe entenderse como un valor universal. Como el p valor es mayor que 0.1, no se puede rechazar la hipótesis nula de ausencia de autocorrelación.

6.2 Estimación de modelos con autocorrelación

Para modelizar la autocorrelación utilizaremos como referencia un proceso autorregresivo de primer orden:

\[ u_t=\rho u_{t-1}+v_t, \]

donde:

\[ E(v_t)=0, \qquad Var(v_t)=\sigma^2, \]

y las perturbaciones \(v_t\) están incorrelacionadas.

El parámetro \(\rho\) mide la intensidad de la dependencia entre perturbaciones consecutivas.

Si \(|\rho|<1\), se obtiene:

\[ Cov(u_t,u_{t-k})=\rho^k\sigma^2. \]

Por tanto, las correlaciones entre perturbaciones separadas por varios períodos disminuyen con la distancia temporal:

\[ \rho,\quad \rho^2,\quad \rho^3,\quad \ldots \]

La matriz de correlaciones correspondiente es:

\[ \mathbf{\Omega}= \begin{pmatrix} 1 & \rho & \rho^2 & \cdots & \rho^{n-1}\\ \rho & 1 & \rho & \cdots & \rho^{n-2}\\ \rho^2 & \rho & 1 & \cdots & \rho^{n-3}\\ \vdots & \vdots & \vdots & \ddots & \vdots\\ \rho^{n-1} & \rho^{n-2} & \rho^{n-3} & \cdots & 1 \end{pmatrix}. \]

Esta parametrización simplifica considerablemente el problema, ya que en lugar de tener que estimar todas las covarianzas de la matriz, únicamente necesitamos estimar \(\rho\) y \(\sigma^2\), además de los parámetros del modelo.

Una vez identificada la estructura de autocorrelación, podemos transformar el modelo para obtener perturbaciones incorrelacionadas. Partimos de:

\[ Y_t= \beta_1+\beta_2X_{2t}+\cdots+\beta_kX_{kt}+u_t \]

y suponemos \(u_t=\rho u_{t-1}+v_t\). Multiplicando el modelo retardado por \(\rho\) y restándolo del modelo original obtenemos:

\[ Y_t-\rho Y_{t-1}=\beta_1(1-\rho)+\beta_2(X_{2t}-\rho X_{2,t-1})+\cdots+\beta_k(X_{kt}-\rho X_{k,t-1}) +v_t. \]

Como: \(u_t-\rho u_{t-1}=v_t,\) las perturbaciones del modelo transformado son incorrelacionadas.

Para \(t>1\):

\(Y_t^*=Y_t-\rho Y_{t-1},\)

\(X_{jt}^*=X_{jt}-\rho X_{j,t-1}.\)

El término independiente también debe transformarse: \(1^*=1-\rho.\)

Este último punto es importante: no se debe mantener el término independiente sin transformar cuando se aplica esta transformación al modelo.

Cochrane-Orcutt

En la práctica, \(\rho\) es desconocido y debe estimarse. El procedimiento iterativo de Cochrane-Orcutt sigue, de forma simplificada, los siguientes pasos:

  1. Estimar el modelo original mediante MCO.
  2. Obtener los residuos.
  3. Estimar \(\rho\) a partir de los residuos.
  4. Transformar las variables utilizando \(\hat{\rho}\).
  5. Estimar nuevamente el modelo transformado.
  6. Repetir el procedimiento hasta que las estimaciones sucesivas de \(\rho\) sean suficientemente próximas.

Una estimación inicial habitual de \(\rho\) es:

\[ \hat{\rho}=\frac{\sum_{t=2}^{n}e_te_{t-1}}{\sum_{t=1}^{n}e_t^2}. \] Se puede implementar a partir de la libreria orcutt con la función cochrane.orcutt. Aunque el modelo con los datos del IBEX35 no parece tener autocorrelación, lo usamos de manera ilustrativa:

Código
#install.packages("https://cran.r-project.org/src/contrib/Archive/orcutt/orcutt_2.3.tar.gz",repos = NULL,type = "source")
library(orcutt)
modelo_ibex_orcutt <- cochrane.orcutt(modeloIBEX)
summary(modelo_ibex_orcutt)
Call:
lm(formula = Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50, data = datos)

                 Estimate Std. Error t value  Pr(>|t|)    
(Intercept)       0.69712    0.32443   2.149   0.03527 *  
Rend_SP500       -0.22241    0.11287  -1.970   0.05293 .  
Rend_EUROSTOXX50  1.06918    0.11017   9.705 2.124e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.5434 on 67 degrees of freedom
Multiple R-squared:  0.7321 ,  Adjusted R-squared:  0.7241
F-statistic: 91.5 on 2 and 67 DF,  p-value: < 6.902e-20

Durbin-Watson statistic 
(original):    1.94449 , p-value: 4.106e-01
(transformed): 1.99148 , p-value: 4.826e-01

Prais-Winsten

Una limitación del procedimiento de Cochrane-Orcutt es que pierde la primera observación. El procedimiento de Prais-Winsten modifica la transformación de la primera observación para conservarla.

Para \(t>1\) se mantiene:

\(Y_t^*=Y_t-\rho Y_{t-1},\)

mientras que la primera observación recibe una transformación específica.

Este procedimiento resulta especialmente útil cuando la muestra no es muy grande y la pérdida de una observación puede ser relevante.

TipBase de datos 2: El IBEX35
Código
library(prais)
Loading required package: pcse

Attaching package: 'pcse'
The following object is masked from 'package:sandwich':

    vcovPC
Código
datos$t <- seq_len(nrow(datos))
modelo_pw <- prais_winsten(
  Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50,
  index = "t",
  data = datos
)
Iteration 0: rho = 0
Iteration 1: rho = 0.0198
Iteration 2: rho = 0.0208
Iteration 3: rho = 0.0209
Iteration 4: rho = 0.0209
Iteration 5: rho = 0.0209
Código
summary(modelo_pw)

Call:
prais_winsten(formula = Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50, 
    data = datos, index = "t")

Residuals of the transformed model:
    Min      1Q  Median      3Q     Max 
-5.5574 -1.5925  0.3121  1.5261  6.4920 

AR(1) coefficient rho after 5 iterations: 0.02087

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)        0.7502     0.3187   2.354   0.0215 *  
Rend_SP500        -0.2074     0.1121  -1.849   0.0688 .  
Rend_EUROSTOXX50   1.0407     0.1073   9.698 1.88e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.546 on 68 degrees of freedom
Multiple R-squared:  0.7316,    Adjusted R-squared:  0.7237 
F-statistic: 92.69 on 2 and 68 DF,  p-value: < 2.2e-16

Durbin-Watson statistic (original): 1.944 
Durbin-Watson statistic (transformed): 1.983

6.3 Prácticas resueltas

Función de producción. Diagóstico de autocorrelación.

  1. A partir de la base de datos de William H (2003) denominada `BD_FUNCIONPRODUCCION’ vamos a realizar una práctica para el diagóstico de la autocorrelación. En primer lugar, se estima el modelo:
Código
library(readxl)
library(lmtest)
datos= read_excel('data/BD_FUNCIONPRODUCCION.xlsx')
modelo1=lm(q~k+A, data=datos)
summary(modelo1)

Call:
lm(formula = q ~ k + A, data = datos)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0198686 -0.0031439 -0.0000566  0.0026473  0.0249985 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.295445   0.011138  -26.53   <2e-16 ***
k            0.095625   0.003986   23.99   <2e-16 ***
A            0.717229   0.004914  145.95   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.008112 on 38 degrees of freedom
Multiple R-squared:  0.9985,    Adjusted R-squared:  0.9984 
F-statistic: 1.23e+04 on 2 and 38 DF,  p-value: < 2.2e-16

Al representar los residuos frente al tiempo, se podría intuir una alternancia de rachas positivas y negativas, pero no es conluyente:

Código
residuos <- residuals(modelo1)
plot(
  residuos,
  type = "l",
  main = "Residuos",
  xlab = "Tiempo",
  ylab = "Residuo"
)

abline(h = 0, lty = 2)

Al representar los residuos frente a los residuos del modelo anterior se observa una tendencia positiva, lo que implicaría autocorrelación positiva:

Código
residuos <- residuals(modelo1)

plot(
  residuos[-1],
  residuos[-length(residuos)],
  xlab = expression(e[t-1]),
  ylab = expression(e[t]),
  main = "Residuos frente a su primer retardo"
)

abline(h = 0, v = 0, lty = 2)

Para apoyar las conclusiones obtenidas de la representación gráfica de los residuos, se ha realizado el contraste de Durbin-Watson obteniendo un p valor con un valor cercano a cero, por lo que se rechaza la hipótesis nula de ausencia de autocorrelación.

Código
dwtest(modelo1)

    Durbin-Watson test

data:  modelo1
DW = 1.0229, p-value = 9.406e-05
alternative hypothesis: true autocorrelation is greater than 0

Una vez detectada la autocorrelación, se estima mediante el procedimiento de Cochrane-Orcutt. Se observa que la salida de R, ofrece el valor del estadístico experimental de Durbin-Watson del modelo original y del modelo transformado, concluyéndose que en el modelo transformado no se puede rechazar la hipótesis nula de ausencia de autocorrelación.

Código
#install.packages("https://cran.r-project.org/src/contrib/Archive/orcutt/orcutt_2.3.tar.gz",repos = NULL,type = "source")
library(orcutt)
modelo1_co <- cochrane.orcutt(modelo1)
summary(modelo1_co)
Call:
lm(formula = q ~ k + A, data = datos)

              Estimate Std. Error t value  Pr(>|t|)    
(Intercept) -0.3117977  0.0215284 -14.483 < 2.2e-16 ***
k            0.1012131  0.0071145  14.226 < 2.2e-16 ***
A            0.7184504  0.0086256  83.293 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.0072 on 37 degrees of freedom
Multiple R-squared:  0.995 ,  Adjusted R-squared:  0.9948
F-statistic: 3697.9 on 2 and 37 DF,  p-value: < 2.486e-43

Durbin-Watson statistic 
(original):    1.02289 , p-value: 9.406e-05
(transformed): 1.99982 , p-value: 3.786e-01

6.4 Prácticas propuestas

  1. Crear el código en R para reproducir el procedimiento de Cochrane–Orcutt y comprobar que sale el mismo resultado.

  2. InmoGranada S.A. quiere analizar la evolución del precio de la vivienda en Granada a lo largo del tiempo. Para ello construye una base de datos del precio medio de la vivienda en euros/m\(^2\) para los ultimos 120 meses en función de la población (número de habitantes) y de la renta media (euros/mes), obteniendo el siguiente modelo estimado:

\[\hat{precio}=-1104.14+3.159log(renta)+88.57log(poblacion); dw=0.58763\]

  1. Contraste la posible existencia de autocorrelación en el modelo.

  2. Suponiendo que el modelo anterior tiene autocorrelación, realice y explique cómo transformaría la primera y segunda observación de los datos originales para obtener estimadores eficientes, sabiendo que los datos originales son los siguientes:

Observación Renta Población Precio
1 1.389 230.000 1.500
2 1.427 229.956 1.655