43 votos

Pruebas de autocorrelación: Ljung-Box frente a Breusch-Godfrey

Estoy acostumbrado a ver que la prueba de Ljung-Box se utiliza con bastante frecuencia para comprobar la autocorrelación en los datos brutos o en los residuos del modelo. Casi había olvidado que existe otra prueba de autocorrelación, a saber, la prueba de Breusch-Godfrey.

Pregunta: ¿Cuáles son las principales diferencias y similitudes de las pruebas de Ljung-Box y de Breusch-Godfrey, y cuándo debe preferirse una sobre la otra?

(Las referencias son bienvenidas. Por alguna razón no he podido encontrar ninguna comparaciones de las dos pruebas aunque miré en algunos libros de texto y busqué material en Internet. Pude encontrar las descripciones de cada prueba por separado pero lo que me interesa es el comparación de los dos).

1 votos

53voto

Jeff Bauer Puntos 236

Hay algunas voces fuertes en la comunidad de Econometría contra la validez del Ljung-Box $Q$ -para comprobar la existencia de autocorrelación a partir de los residuos de un modelo autorregresivo (es decir, con variables dependientes retardadas en la matriz del regresor), véase en particular Maddala (2001) "Introduction to Econometrics" (3ª edición), capítulos 6.7 y 13. 5 p 528 . Maddala lamenta literalmente el uso generalizado de esta prueba, y en su lugar considera adecuada la prueba del "multiplicador de Langrange" de Breusch y Godfrey.

El argumento de Maddala contra la prueba de Ljung-Box es el mismo que el planteado contra otra prueba de autocorrelación omnipresente, la de "Durbin-Watson": con variables dependientes rezagadas en la matriz de regresores, la prueba está sesgada a favor de mantener la hipótesis nula de "no autocorrelación" (los resultados de Monte-Carlo obtenidos en la respuesta de @javlacalle aluden a este hecho). Maddala también menciona la baja potencia de la prueba, véase por ejemplo Davies, N., y Newbold, P. (1979). Some power studies of a portmanteau test of time series model specification. Biometrika, 66(1), 153-155 .

Hayashi(2000) , ch. 2.10 "Pruebas de correlación serial" presenta un análisis teórico unificado, y creo que aclara la cuestión. Hayashi parte de cero: Para el Ljung-Box $Q$ -para que se distribuya asintóticamente como un chi-cuadrado, debe darse el caso de que el proceso $\{z_t\}$ (lo que sea $z$ representa), cuyas autocorrelaciones muestrales introducimos en el estadístico es, bajo la hipótesis nula de no autocorrelación, una secuencia de diferencia martingala, es decir, que satisface

$$E(z_t \mid z_{t-1}, z_{t-2},...) = 0$$

y también presenta una homoscedasticidad condicional "propia"

$$E(z^2_t \mid z_{t-1}, z_{t-2},...) = \sigma^2 >0$$

En estas condiciones, la Ljung-Box $Q$ -(que es una variante corregida para muestras finitas del original Box-Pierce $Q$ -), tiene asintóticamente una distribución chi-cuadrado, y su uso tiene justificación asintótica.

Supongamos ahora que hemos especificado un modelo autorregresivo (que quizás incluya también regresores independientes además de variables dependientes retardadas), digamos

$$y_t = \mathbf x_t'\beta + \phi(L)y_t + u_t$$

donde $\phi(L)$ es un polinomio en el operador de retardo, y queremos probar la correlación serial utilizando los residuos de la estimación. Así que aquí $z_t \equiv \hat u_t$ .

Hayashi muestra que para que la caja de Ljung $Q$ -estadística basada en las autocorrelaciones muestrales de los residuos, para tener una distribución asintótica chi-cuadrado bajo la hipótesis nula de no autocorrelación, debe ser el caso que todo los regresores son "estrictamente exógenos" al término de error en el siguiente sentido:

$$E(\mathbf x_t\cdot u_s) = 0 ,\;\; E(y_t\cdot u_s)=0 \;\;\forall t,s$$

El "para todo $t,s$ " es el requisito crucial aquí, el que refleja la exogeneidad estricta. Y no se mantiene cuando existen variables dependientes retardadas en la matriz de regresores. Esto es fácil de ver: fijar $s= t-1$ y luego

$$E[y_t u_{t-1}] = E[(\mathbf x_t'\beta + \phi(L)y_t + u_t)u_{t-1}] =$$

$$ E[\mathbf x_t'\beta \cdot u_{t-1}]+ E[\phi(L)y_t \cdot u_{t-1}]+E[u_t \cdot u_{t-1}] \neq 0 $$

incluso si el $X$ son independientes del término de error, y incluso si el término de error no tiene autocorrelación El término $E[\phi(L)y_t \cdot u_{t-1}]$ no es cero.

Pero este prueba que el Ljung-Box $Q$ no es válido en un modelo autorregresivo, porque no se puede decir que tenga una distribución asintótica chi-cuadrado bajo la nula.

Supongamos ahora que se cumple una condición más débil que la exogeneidad estricta, a saber, que

$$E(u_t \mid \mathbf x_t, \mathbf x_{t-1},...,\phi(L)y_t, u_{t-1}, u_{t-2},...) = 0$$

La fuerza de esta condición está "entre" la exogeneidad estricta y la ortogonalidad. Bajo el nulo de no autocorrelación del término de error, esta condición es se satisface "automáticamente" con un modelo autorregresivo, con respecto a las variables dependientes rezagadas (para el $X$ debe ser asumido por separado, por supuesto).

Entonces, existe otro estadística basada en las autocorrelaciones residuales de la muestra, ( no la de Ljung-Box), que sí tiene una distribución asintótica chi-cuadrado bajo la nula. Este otro estadístico puede calcularse, por conveniencia, utilizando la vía de la "regresión auxiliar": hacer una regresión de los residuos $\{\hat u_t\}$ sobre la matriz completa del regresor y sobre los residuos pasados (hasta el retardo que hemos utilizado en la especificación), obtener el no centrado $R^2$ de esta regresión auxiliar y multiplicarla por el tamaño de la muestra.

Este estadístico se utiliza en lo que llamamos la "prueba de Breusch-Godfrey para la correlación serial" .

Parece entonces que, cuando los regresores incluyen variables dependientes retardadas (y así también en todos los casos de modelos autorregresivos), la prueba de Ljung-Box debe ser abandonado a favor de la prueba LM de Breusch-Godfrey. no porque "funcione peor", sino porque no tiene justificación asintótica. Un resultado bastante impresionante, sobre todo a juzgar por la omnipresencia y aplicación del primero.

ACTUALIZACIÓN: En respuesta a las dudas planteadas en los comentarios sobre si todo lo anterior se aplica también a los modelos de series temporales "puros" o no (es decir, sin " $x$ "-regressors"), he publicado un examen detallado para el modelo AR(1), en https://stats.stackexchange.com/a/205262/28746 .

0 votos

¡Muy impresionante, Alecos! ¡Gran explicación! ¡Muchas gracias! (Espero que muchas más personas lean tu respuesta eventualmente y se beneficien de ella en su trabajo o estudios).

0 votos

+1 Muy interesante. Mi conjetura inicial era que en un modelo AR la distribución de la prueba BG podría distorsionarse, pero como explicaste y el ejercicio de simulación sugirió, es la prueba LB la que se ve más seriamente afectada.

0 votos

El problema de tu respuesta es que se basa en la suposición de que se trata de un modelo tipo ARMAX, es decir, con regresores $x_t$ . no series temporales puras como AR.

17voto

einverne Puntos 126

Conjetura

No conozco ningún estudio que compare estas pruebas. Tenía la sospecha de que la prueba de Ljung-Box es más apropiada en el contexto de modelos de series temporales como los modelos ARIMA, en los que las variables explicativas son rezagos de las variables dependientes. La prueba de Breusch-Godfrey podría ser más apropiada para un modelo de regresión general en el que se cumplen los supuestos clásicos (en particular, los regresores exógenos).

Mi conjetura es que la distribución de la prueba Breusch-Godfrey (que se basa en los residuos de una regresión ajustada por mínimos cuadrados ordinarios), puede verse afectada por el hecho de que las variables explicativas no son exógenas.

Hice un pequeño ejercicio de simulación para comprobarlo y los resultados sugieren lo contrario: el test de Breusch-Godfrey funciona mejor que el test de Ljung-Box cuando se comprueba la autocorrelación en los residuos de un modelo autorregresivo. A continuación se ofrecen los detalles y el código R para reproducir o modificar el ejercicio.


Pequeño ejercicio de simulación

Una aplicación típica de la prueba de Ljung-Box consiste en comprobar la existencia de correlación serial en los residuos de un modelo ARIMA ajustado. En este caso, genero datos de un modelo AR(3) y ajusto un modelo AR(3).

Los residuos satisfacen la hipótesis nula de ausencia de autocorrelación, por lo que cabría esperar valores p uniformemente distribuidos. La hipótesis nula debería rechazarse en un porcentaje de casos cercano a un nivel de significación elegido, por ejemplo, el 5%.

Prueba de Ljung-Box:

## Ljung-Box test
n <- 200 # number of observations
niter <- 5000 # number of iterations
LB.pvals <- matrix(nrow=niter, ncol=4)
set.seed(123)
for (i in seq_len(niter))
{
  # Generate data from an AR(3) model and store the residuals
  x <- arima.sim(n, model=list(ar=c(0.6, -0.5, 0.4)))
  resid <- residuals(arima(x, order=c(3,0,0)))
  # Store p-value of the Ljung-Box for different lag orders
  LB.pvals[i,1] <- Box.test(resid, lag=1, type="Ljung-Box")$p.value
  LB.pvals[i,2] <- Box.test(resid, lag=2, type="Ljung-Box")$p.value
  LB.pvals[i,3] <- Box.test(resid, lag=3, type="Ljung-Box")$p.value
  LB.pvals[i,4] <- Box.test(resid, lag=4, type="Ljung-Box", fitdf=3)$p.value
}
sum(LB.pvals[,1] < 0.05)/niter
# [1] 0
sum(LB.pvals[,2] < 0.05)/niter
# [1] 0
sum(LB.pvals[,3] < 0.05)/niter
# [1] 0
sum(LB.pvals[,4] < 0.05)/niter
# [1] 0.0644
par(mfrow=c(2,2))
hist(LB.pvals[,1]); hist(LB.pvals[,2]); hist(LB.pvals[,3]); hist(LB.pvals[,4])

Ljung-Box test p-values

Los resultados muestran que la hipótesis nula se rechaza en muy pocos casos. Para un nivel del 5%, el índice de rechazos es muy inferior al 5%. La distribución de los valores p muestra un sesgo hacia el no rechazo de la nula.

Editar En principio fitdf=3 debe fijarse en todos los casos. De este modo, se tendrán en cuenta los grados de libertad que se pierden tras ajustar el modelo AR(3) para obtener los residuos. Sin embargo, para los rezagos de orden inferior a 4, esto conducirá a grados de libertad negativos o nulos, haciendo que la prueba no sea aplicable. Según la documentación ?stats::Box.test : Estas pruebas se aplican a veces a los residuos de un ajuste ARMA(p, q), en cuyo caso las referencias sugieren que se obtiene una mejor aproximación a la distribución de hipótesis nula estableciendo fitdf = p+q Siempre y cuando, por supuesto, se trate de lag > fitdf .

Prueba de Breusch-Godfrey:

## Breusch-Godfrey test
require("lmtest")
n <- 200 # number of observations
niter <- 5000 # number of iterations
BG.pvals <- matrix(nrow=niter, ncol=4)
set.seed(123)
for (i in seq_len(niter))
{
  # Generate data from an AR(3) model and store the residuals
  x <- arima.sim(n, model=list(ar=c(0.6, -0.5, 0.4)))
  # create explanatory variables, lags of the dependent variable
  Mlags <- cbind(
    filter(x, c(0,1), method= "conv", sides=1),
    filter(x, c(0,0,1), method= "conv", sides=1),
    filter(x, c(0,0,0,1), method= "conv", sides=1))
  colnames(Mlags) <- paste("lag", seq_len(ncol(Mlags)))
  # store p-value of the Breusch-Godfrey test
  BG.pvals[i,1] <- bgtest(x ~ 1+Mlags, order=1, type="F", fill=NA)$p.value
  BG.pvals[i,2] <- bgtest(x ~ 1+Mlags, order=2, type="F", fill=NA)$p.value
  BG.pvals[i,3] <- bgtest(x ~ 1+Mlags, order=3, type="F", fill=NA)$p.value
  BG.pvals[i,4] <- bgtest(x ~ 1+Mlags, order=4, type="F", fill=NA)$p.value
}
sum(BG.pvals[,1] < 0.05)/niter
# [1] 0.0476
sum(BG.pvals[,2] < 0.05)/niter
# [1] 0.0438
sum(BG.pvals[,3] < 0.05)/niter
# [1] 0.047
sum(BG.pvals[,4] < 0.05)/niter
# [1] 0.0468
par(mfrow=c(2,2))
hist(BG.pvals[,1]); hist(BG.pvals[,2]); hist(BG.pvals[,3]); hist(BG.pvals[,4])

Breusch-Godfrey test p-values

Los resultados de la prueba de Breusch-Godfrey parecen más sensatos. Los valores p se distribuyen uniformemente y los índices de rechazo se acercan más al nivel de significación (como se espera bajo la hipótesis nula).

1 votos

¡Gran trabajo (como siempre)! ¿Qué hay de LB.pvals[i,j] para $j \in \{1,2,3\}$ La prueba de Ljung-Box tiene sentido para $j \leqslant 3$ dado que se ajustó un modelo AR(3) con 3 coeficientes ( fitdf=3 )? Si no es así, los malos resultados de la prueba de Ljung-Box para $j \in \{1,2,3\}$ no son sorprendentes.

0 votos

Además, con respecto a lo que dice en el primer párrafo: ¿podría ampliarlo un poco? Percibo las afirmaciones allí como bastante importantes, pero faltan los detalles. Puede que le pida demasiado, que "digiera" las cosas por mí, pero si no le resulta demasiado difícil, se lo agradecería.

0 votos

@RichardHardy He editado la respuesta con algunos comentarios sobre fitdf .

4voto

Candamir Puntos 135

Greene (Econometric Analysis, 7ª edición, p. 963, sección 20.7.2):

"La diferencia esencial entre las pruebas Godfrey-Breusch [GB] y Box-Pierce [BP] es el uso de correlaciones parciales (controlando por $X$ y las demás variables) en la primera y las correlaciones simples en el segundo. Bajo la hipótesis nula, no hay autocorrelación en $e_t$ y no hay correlación entre $x_t$ y $e_s$ en cualquier caso, por lo que las dos pruebas son asintóticamente equivalentes. Por otro lado, porque no condiciona a $x_t$ la prueba [BP] es menos potente que la prueba [GB] cuando la hipótesis nula es falsa, como la intuición podría sugerir".

(Sé que la pregunta se refiere a Ljung-Box y lo anterior se refiere a Box-Pierce, pero el primero es un simple refinamiento del segundo y, por lo tanto, cualquier comparación entre GB y BP también se aplicaría a una comparación entre GB y LB).

Como ya han explicado otras respuestas de forma más rigurosa, Greene también sugiere que no hay nada que ganar (aparte de cierta eficiencia computacional, quizás) al utilizar Ljung-Box frente a Godfrey-Breusch, pero potencialmente mucho que perder (la validez de la prueba).

2voto

QuantumJazz Puntos 31

Más información en Hayashi (2000), pp. 146-147:

..cuando los regresores no son estrictamente exógenos necesitamos modificar la estadística Q para restablecer su distribución asintótica

Básicamente sólo tenemos que suponer que los errores no dependen de los regresores rezagados y que son condicionalmente homoscedásticos.

Modificando el código de @javlacalle por (1) incluir fitdf=3 y (2) añadiendo algunos rezagos más, como parece razonable en la práctica, se obtiene lo siguiente

Prueba de Ljung-Box:

## Ljung-Box test
n <- 200 # number of observations
niter <- 5000 # number of iterations
LB.pvals <- matrix(nrow=niter, ncol=4)
set.seed(123)
for (i in seq_len(niter))
{
  # Generate data from an AR(3) model and store the residuals
  x <- arima.sim(n, model=list(ar=c(0.6, -0.5, 0.4)))
  resid <- residuals(arima(x, order=c(3,0,0)))
  # Store p-value of the Ljung-Box for different lag orders
  LB.pvals[i,1] <- Box.test(resid, lag=10, fitdf=3, type="Ljung-Box")$p.value
  LB.pvals[i,2] <- Box.test(resid, lag=11, fitdf=3, type="Ljung-Box")$p.value
  LB.pvals[i,3] <- Box.test(resid, lag=12, fitdf=3, type="Ljung-Box")$p.value
  LB.pvals[i,4] <- Box.test(resid, lag=13, fitdf=3, type="Ljung-Box")$p.value
}
sum(LB.pvals[,1] < 0.05)/niter
# [1] 0
sum(LB.pvals[,2] < 0.05)/niter
# [1] 0
sum(LB.pvals[,3] < 0.05)/niter
# [1] 0
sum(LB.pvals[,4] < 0.05)/niter
# [1] 0.0644
par(mfrow=c(2,2))
hist(LB.pvals[,1]); hist(LB.pvals[,2]); hist(LB.pvals[,3]); hist(LB.pvals[,4])

enter image description here

A mí me parece idéntica a la simulación de la prueba Breusch-Godfrey. En ese caso, y teniendo en cuenta la prueba de Hayashi más adelante en el libro, parece que la prueba de Ljung-Box es válida en presencia de variables dependientes retardadas después de todo. ¿Estoy haciendo algo mal?

0voto

Jack Puntos 18

Parece que las pruebas de Box-Pierce y Ljung-Box son principalmente pruebas univariantes, pero hay algunos supuestos detrás de la prueba de Breusch-Godfrey cuando se comprueba si queda una estructura lineal en los residuos de la regresión de series temporales (proceso MA o AR).

Aquí está el enlace a la discusión:

http://www.stata.com/meeting/new-orleans13/abstracts/materials/nola13-baum.pdf

1 votos

No entiendo bien el sentido de la frase por la gramática, creo. ¿Podría reformularla?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X