3 votos

Pruebas de regresión para la autocorrelación en la presencia de heterocedasticidad

He construido un lineal de series de tiempo modelo de regresión y los estimados de los parámetros mediante la aplicación de MCO. Ahora quiero probar si la hipótesis para la correcta amplia muestra de inferencia (asintótica de Gauss Markov supuestos) se cumplen.

Ahora, no estoy seguro de cómo probar si los residuos son autocorrelated o no. Desde mi modelo contiene quedado variables dependientes no puedo usar el de Durbin-Watson prueba (ya que mis variables independientes no son estrictamente exógenas). Siguiente Wooldridge decidí aplicar el Breusch-Godfrey de la prueba. Pero los residuos son heteroscedastic, que he probado para que a través de la aplicación de la Bresuch-Pagano de la prueba.

Wooldridge dice que en el caso de heterocedasticidad, no se puede aplicar la costumbre Breusch-Godfrey de la prueba. Cómo puedo hacer la prueba de autocorrelación en la presencia de heterocedasticidad? ¿Hay algún método robusto? Si que es de todo interés - estoy usando R, por lo que sería útil si no sería una implementación del método (si es que la hay) en R.

EDIT: he encontrado una muy interesante ponencia que se propone un método de tratar con el tema: la modificación Breusch-Godfrey de la prueba. Enlace: http://www.naun.org/main/NAUN/mcs/17-542.pdf.

Sin embargo, no he podido encontrar ningún implementaciones prácticas de esta prueba. Como soy (sólo) un estudiante de pregrado, mis posibilidades en cuanto a la aplicación de tales métodos en mi propia son más bien limitados. Así que todavía estoy buscando un enfoque general/prueba o método. (Y supongo que no tiene que ser un método, porque el problema que estoy teniendo me parece un lugar común.) Gracias!

2voto

user10775 Puntos 121

Observaciones generales: El BG prueba en virtud de la homoskedasticity se puede hacer uso de la bgtest comando en la lmtest paquete de R. El $(n-p)R_{aux}^2$ versión menciona en el enlace solo funciona bajo homoskedasticity. En presencia de heterocedasticidad, Wooldridge (1991, JoE) da una discusión (como se señaló en el Wooldridge libro de texto que usted ha mencionado).

Lo que yo pienso: supongo que lo que Wooldridge hace es utilizar un heterocedasticidad-solidez de la varianza del estimador. Para ello, (i) obtener el OLS residuos, (ii) la regresión de e(t) e(t-1), ..., e(t-p) y X, y la prueba de la importancia de la articulación de e(t-1), ..., e(t-p) usando un heterocedasticidad-solidez de la estimación de la covarianza. Si desea utilizar R, haga lo siguiente para AR(2):

DF <- data.frame(y=rnorm(100), x1=rnorm(100), x2=rnorm(100))
ols <- lm(y~x1+x2, data=DF)
DF$e <- ols$resid
DF$e1 <- c(NA,DF$e[-100])    # are there better ways to lag a variable?
DF$e2 <- c(NA,DF$e1[-100])
aux <- lm(e~e1+e2+x1+x2, data=DF)
library(car)
lht(aux, c('e1','e2'), white.adjust='hc3')

Debates: Que, dijo, no es el generado regresor problema en la aux de regresión anterior, es decir, algunos de RHS variables (e1 y e2) se generan mediante la regresión por MCO de los resultados. Esto generalmente causa problemas. Sin embargo, algunas pruebas pueden realizarse incluso si los regresores son generados. Supongo que este es uno, pero no he revisado formalmente.

Más debates: El BG de la prueba es una PELÍCULA de prueba, mientras que lht hace un test Wald. La diferencia debe de ser menor de edad.

Los resultados de la simulación: hice simulaciones. El ordinario BG prueba parece fallar. El robustified versión parece de trabajo.

library(car)
iterate <- 1000
n <- 400

ans <- data.frame(ord=rep(NA,iterate), rob=rep(NA,iterate))
set.seed(1)
for (iter in seq_len(iterate)) {
  x1 <- rnorm(n+1)
  x2 <- rnorm(n+1)
  u0 <- rnorm(n+1)
  u0[1:floor(n/2)] <- 2*u0[1:floor(n/2)]
  u <- sqrt(1+abs(x1+x2))*u0

  ## y(t) = 1+x1(t)+x2(t)+0.5*y(t-1)+u(t)
  y <- filter(1+x1+x2+u, 0.5, method='recursive')

  y1 <- y[-(n+1)]      # y(1), ..., y(n)
  y <- y[-1]           # y(2), ..., y(n+1)
  x1 <- x1[-1]         # x1(2), ..., x1(n+1)
  x2 <- x2[-1]         # x2(2), ..., x2(n+1)

  ols <- lm(y~x1+x2+y1)

  e <- ols$resid
  e1 <- c(NA,e[-n])    # NA, e(1), ..., e(n-1)
  e2 <- c(NA,e1[-n])   # NA, NA, e(1), ..., e(n-2)
  aux <- lm(e~e1+e2+x1+x2+y1)
  tst0 <- lht(aux, c('e1','e2'), white.adjust=FALSE)
  ans$ord[iter] <- as.numeric(tst0$`Pr(>F)`[2] < 0.05)
  tst1 <- lht(aux, c('e1','e2'), white.adjust=TRUE)
  ans$rob[iter] <- as.numeric(tst1$`Pr(>F)`[2] < 0.05)
}

print(colMeans(ans))
##   ord   rob
## 0.090 0.046

Nota: he editado la simulación de un lote. Espero que este está bien.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X