Teste de autocorrelação: Ljung-Box versus Breusch-Godfrey


35

Estou acostumado a ver o teste de Ljung-Box usado com bastante frequência para testar a autocorrelação em dados brutos ou em resíduos de modelo. Eu tinha quase esquecido que existe outro teste para autocorrelação, a saber, o teste de Breusch-Godfrey.

Pergunta: quais são as principais diferenças e semelhanças dos testes de Ljung-Box e Breusch-Godfrey, e quando um deve ser preferido em relação ao outro?

(As referências são bem-vindas. De alguma forma, não consegui encontrar nenhuma comparação entre os dois testes, apesar de procurar em alguns livros didáticos e pesquisar material on-line. Consegui encontrar as descrições de cada teste separadamente , mas o que me interessa é a comparação dos dois.)

Respostas:


36

Existem algumas vozes fortes na comunidade Econometrics contra a validade da estatística Ljung-Box para testar autocorrelação com base nos resíduos de um modelo autoregressivo (isto é, com variáveis ​​dependentes defasadas na matriz regressora), ver particularmente Maddala (2001) "Introdução à Econometria (edição 3d), cap. 6.7 e 13. 5 p 528. Maddala literalmente lamenta o uso generalizado desse teste e, em vez disso, considera apropriado o teste" Langrange Multiplicador "de Breusch e Godfrey.Q

O argumento de Maddala contra o teste de Ljung-Box é o mesmo que o apresentado contra outro teste de autocorrelação onipresente, o de "Durbin-Watson": com variáveis ​​dependentes defasadas na matriz do regressor, o teste é enviesado a favor de manter a hipótese nula de "sem autocorrelação" (os resultados de Monte-Carlo obtidos na resposta @javlacalle aludem a esse fato). Maddala também menciona a baixa potência do teste, ver, por exemplo , Davies, N., & Newbold, P. (1979). Alguns estudos de potência de um teste portmanteau de especificação de modelo de série temporal. Biometrika, 66 (1), 153-155 .

Hayashi (2000) , cap. 2.10 "Teste para correlação serial" , apresenta uma análise teórica unificada e, acredito, esclarece o assunto. Hayashi começa do zero: para que aestatísticaLjung-Boxseja distribuída assintoticamente como um qui-quadrado, deve ser o caso do processo(qualquer que seja orepresenta), cujas autocorrelações de amostra são alimentadas na estatística é, sob a hipótese nula de não autocorrelação, uma seqüência de diferença de martingale, ou seja, que satisfaz{ z t } zQ{zt}z

E(ztzt1,zt2,...)=0

e também exibe homoskedasticity condicional "próprio"

E(zt2zt1,zt2,...)=σ2>0

Nessas condições, a estatística Ljung-Box (que é uma variante corrigida para amostras finitas da estatística original de Box-Pierce ), possui assintoticamente uma distribuição qui-quadrado e seu uso tem justificação assintótica. QQQ

Suponha agora que especificamos um modelo autoregressivo (que talvez inclua também regressores independentes além de variáveis ​​dependentes defasadas), digamos

yt=xtβ+ϕ(L)yt+ut

onde é um polinômio no operador lag, e queremos testar a correlação serial usando os resíduos da estimativa. Então aqui . z tu tϕ(L)ztu^t

Hayashi mostra que, para que a estatística Ljung-Box com base nas autocorrelações amostrais dos resíduos, tenha uma distribuição qui-quadrado assintótica sob a hipótese nula de ausência de autocorrelação, deve ser o caso de todos os regressores serem "estritamente exógenos" " ao termo do erro no seguinte sentido:Q

E(xtus)=0,E(ytus)=0t,s

O "para todos os " é o requisito crucial aqui, aquele que reflete estrita exogeneidade. E isso não se aplica quando existem variáveis ​​dependentes atrasadas na matriz regressora. Isso é facilmente visto: defina e depoiss = t - 1t,ss=t1

E[ytut1]=E[(xtβ+ϕ(L)yt+ut)ut1]=

E[xtβut1]+E[ϕ(L)ytut1]+E[utut1]0

mesmo que os sejam independentes do termo de erro e mesmo que o termo de erro não tenha autocorrelação : o termo não é zero. E [ φ ( L ) y tu t - 1 ]XE[ϕ(L)ytut1]

Mas isso prova que a estatística Ljung-Box não é válida em um modelo autoregressivo, porque não se pode dizer que tenha uma distribuição qui-quadrado assintótica sob o valor nulo.Q

Suponha agora que uma condição mais fraca do que estrita exogeneidade seja satisfeita, a saber:

E(utxt,xt1,...,ϕ(L)yt,ut1,ut2,...)=0

A força dessa condição está "entre" estrita exogeneidade e ortogonalidade. Sob o nulo de nenhuma autocorrelação do termo de erro, essa condição é "automaticamente" satisfeita por um modelo auto-regressivo, com relação às variáveis ​​dependentes defasadas (para os , é claro que deve ser assumido separadamente).X

Então, existe outra estatística baseada nas autocorrelações residuais da amostra ( não a Ljung-Box), que possui uma distribuição qui-quadrado assintótica sob o valor nulo. Essa outra estatística pode ser calculada, como uma conveniência, usando a rota "regressão auxiliar": regride os resíduos na matriz regressiva completa e nos resíduos passados ​​(até o atraso que usamos na especificação ), obter o uncentered a partir desta regressão auxiliar e multiplicá-la pelo tamanho da amostra.R 2{u^t} R2

Essa estatística é usada no que chamamos de "teste de Breusch-Godfrey para correlação serial" .

Parece então que, quando os regressores incluem variáveis ​​dependentes defasadas (e também em todos os casos de modelos auto-regressivos), o teste de Ljung-Box deve ser abandonado em favor do teste de Breusch-Godfrey LM. , não porque "ele apresenta desempenho pior", mas porque não possui justificativa assintótica. Um resultado bastante impressionante, especialmente a julgar pela presença onipresente e aplicação do primeiro.

ATUALIZAÇÃO: Respondendo às dúvidas levantadas nos comentários sobre se todas as alternativas acima se aplicam também a modelos de séries temporais "puras" ou não (ou seja, sem registradores " "), publiquei um exame detalhado do modelo AR (1), em https://stats.stackexchange.com/a/205262/28746 .x


Muito impressionante, Alecos! Ótima explicação! Muito obrigado! (Espero que muitas mais pessoas vão ler a sua resposta e, eventualmente, irá beneficiar com ela em seu trabalho ou estudos.)
Richard Hardy

+1 muito interessante. Meu palpite inicial era que, em um modelo de RA, a distribuição do teste BG poderia ficar distorcida, mas, como você explicou e o exercício de simulação sugerido, é o teste LB que fica mais seriamente afetado.
Javlacalle

O problema com sua resposta é que ele se baseia no pressuposto de que estamos lidando com o modelo ARMAX, ou seja, com os regressores . séries temporais não puras, como AR. xt
Aksakal

11
@ Akksakal, também parte do problema pode ser que o foco está saltando um pouco aqui e ali. Devemos separar as questões de (1) qual dos testes é melhor de (2) qual teste funciona sob quais suposições e, o mais importante, (3) qual teste funciona para qual modelo (devido a diferentes suposições). Esta última é talvez a pergunta mais útil para os praticantes. Por exemplo, eu não usaria LB para resíduos de um modelo ARMA por causa do que Alecos mostrou. Você argumenta que o LB ainda pode ser usado para resíduos de modelos ARMA (que agora também é a questão central no outro segmento)?
Richard Hardy

11
@ Alexis E esse é um comentário quase lisonjeiro demais para ser verdade. Obrigado.
Alecos Papadopoulos

12

Conjetura

Não conheço nenhum estudo comparando esses testes. Suspeitei que o teste de Ljung-Box seja mais apropriado no contexto de modelos de séries temporais como os modelos ARIMA, em que as variáveis ​​explicativas são defasagens das variáveis ​​dependentes. O teste de Breusch-Godfrey poderia ser mais apropriado para um modelo de regressão geral em que as suposições clássicas são atendidas (em particular, regressores exógenos).

Minha suposição é que a distribuição do teste de Breusch-Godfrey (que se baseia nos resíduos de uma regressão ajustada pelos mínimos quadrados ordinários) pode ser afetada pelo fato de que as variáveis ​​explicativas não são exógenas.

Fiz um pequeno exercício de simulação para verificar isso e os resultados sugerem o oposto: o teste de Breusch-Godfrey tem um desempenho melhor que o teste de Ljung-Box ao testar a autocorrelação nos resíduos de um modelo autoregressivo. Detalhes e código R para reproduzir ou modificar o exercício são fornecidos abaixo.


Exercício de simulação pequeno

Uma aplicação típica do teste de Ljung-Box é testar a correlação serial nos resíduos de um modelo ARIMA instalado. Aqui, eu gero dados de um modelo AR (3) e ajusto um modelo AR (3).

Os resíduos satisfazem a hipótese nula de não autocorrelação; portanto, esperamos valores de p uniformemente distribuídos. A hipótese nula deve ser rejeitada em uma porcentagem de casos próximos ao nível de significância escolhido, por exemplo, 5%.

Teste 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])

Valores p de teste de Ljung-Box

Os resultados mostram que a hipótese nula é rejeitada em casos muito raros. Para um nível de 5%, a taxa de rejeições é muito inferior a 5%. A distribuição dos valores p mostra um viés em direção à não rejeição do nulo.

Editar Em princípio, fitdf=3deve ser definido em todos os casos. Isso explicará os graus de liberdade que são perdidos após o ajuste do modelo AR (3) para obter os resíduos. No entanto, para defasagens de ordem inferiores a 4, isso levará a graus negativos ou nulos de liberdade, tornando o teste inaplicável. De acordo com a documentação ?stats::Box.test: Às vezes, esses testes são aplicados aos resíduos de um ajuste ARMA (p, q) . fitdf = p+qNesse caso, as referências sugerem uma melhor aproximação à distribuição de hipóteses nulas é obtida por ajuste , desde que seja claro lag > fitdf.

Teste 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])

Valores de p de Breusch-Godfrey

Os resultados do teste Breusch-Godfrey parecem mais sensatos. Os valores de p são distribuídos uniformemente e as taxas de rejeição estão mais próximas do nível de significância (conforme esperado na hipótese nula).


11
Bom trabalho (como sempre)! E quanto LB.pvals[i,j]para : não Ljung-Box testando faz sentido para dado que um modelo AR (3) com 3 coeficientes estava apto ( )? Caso contrário, os resultados ruins do teste Ljung-Box para não são surpreendentes. j 3 j { 1 , 2 , 3 }j{1,2,3}j3fitdf=3j{1,2,3}
Richard Hardy

Além disso, com relação ao que você diz no primeiro parágrafo: você poderia expandir um pouco isso? Eu percebo as declarações lá como muito importantes, mas os detalhes estão faltando. Eu posso estar pedindo muito - para "digerir" as coisas para mim - mas se não for muito difícil para você, eu agradeceria.
Richard Hardy

11
Meu pressentimento é que esse problema tem a ver com o seguinte: uma soma de variáveis ​​aleatórias linearmente independentes é distribuída como . Uma soma de variáveis ​​aleatórias linearmente dependentes com restrições lineares é distribuída como . Quando isso está mal definido. Eu suspeito que algo assim acontece quando o teste de Ljung-Box é usado em resíduos de modelo de um modelo AR ( ). χ 2 ( 1 ) χ 2 ( n ) n χ 2 ( 1 ) k χ 2 ( n - k ) k n knχ2(1)χ2(n)nχ2(1)kχ2(nk)knk
Richard Hardy

11
Os resíduos não são independentes, mas linearmente restritos; primeiro, somam zero; segundo, suas autocorrelações são zero para os primeiros lags. O que acabei de escrever pode não ser exatamente verdade, mas a ideia está aí. Além disso, eu sabia que o teste Ljung-Box não deveria ser aplicado , simplesmente não me lembro da fonte. Talvez eu tenha ouvido isso em uma palestra do prof. Ruey S. Tsay, ou leia isso em suas anotações de aula. Mas eu realmente não me lembro ...klag<fitdf
Richard Hardy

11
Em suma, quando você diz para atrasos de ordem inferiores a 4, isso leva a graus de liberdade negativos ou nulos, tornando o teste inaplicável , acho que você deve fazer uma conclusão diferente: não use o teste para esses atrasos. Se você continuar se colocando fitdf=0no lugar de fitdf=3você, pode estar se enganando.
Richard Hardy

2

Greene (Econometric Analysis, 7ª edição, p. 963, seção 20.7.2):

"A diferença essencial entre os testes de Godfrey-Breusch [GB] e Box-Pierce [BP] é o uso de correlações parciais (controlando e as demais variáveis) nas primeiras e simples correlações na segunda. Sob a hipótese nula , não há autocorrelação em e nenhuma correlação entre e em qualquer caso, portanto, os dois testes são assintoticamente equivalentes.Por outro lado, como não condiciona em , o teste [BP] é menos poderoso que o [GB] teste quando a hipótese nula é falsa, como a intuição pode sugerir. "Xetxtesxt

(Eu sei que a pergunta é sobre a Ljung-Box e a descrição acima se refere à Box-Pierce, mas a primeira é um refinamento simples da última e, portanto, qualquer comparação entre GB e BP também se aplicaria a uma comparação entre GB e LB.)

Como outras respostas já explicaram de maneira mais rigorosa, Greene também sugere que não há nada a ganhar (exceto alguma eficiência computacional) ao usar Ljung-Box versus Godfrey-Breusch, mas potencialmente muito a perder (a validade do teste).


0

Parece que os testes Box-Pierce e Ljung-Box são principalmente testes univariados, mas existem algumas suposições por trás do teste de Breusch-Godfrey ao testar se a estrutura linear é deixada para trás em resíduos de regressão de séries temporais (processo MA ou AR).

Aqui está o link para a discussão:

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


Não entendo bem o significado da frase por causa da gramática, acho. Você poderia reformular isso?
Richard Hardy

0

A principal diferença entre os testes é a seguinte:

  • O teste Breusch-Godfrey é o teste multiplicador de Lagrange derivado da função de probabilidade (corretamente especificada) (e, portanto, dos primeiros princípios).

  • O teste de Ljung-Box é baseado em segundos momentos dos resíduos de um processo estacionário (e, portanto, de natureza comparativamente mais ad-hoc).

O teste de Breusch-Godfrey é o teste multiplicador de Lagrange assintoticamente equivalente ao teste uniformemente mais poderoso. Seja como for, é apenas assintoticamente mais poderosa a hipótese alternativa dos regressores omitidos (independentemente de serem variáveis ​​atrasadas ou não). O ponto forte do teste de Ljung-Box pode ser seu poder contra uma ampla gama de hipóteses alternativas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.