Como testar a autocorrelação dos resíduos?

23

Eu tenho uma matriz com duas colunas que têm muitos preços (750). Na imagem abaixo, plotei os resíduos da seguinte regressão linear:

lm(prices[,1] ~ prices[,2])

Olhando para a imagem, parece ser uma autocorrelação muito forte dos resíduos.

No entanto, como posso testar se a autocorrelação desses resíduos é forte? Que método devo usar?

Resíduos da regressão linear

Obrigado!

Dail
fonte
8
Você não precisa testar a autocorrelação. Está lá. A trama mostra isso. Você pode observar a função de autocorrelação desses resíduos (função acf()), mas isso simplesmente confirmará o que pode ser visto a olho nu: as correlações entre os resíduos atrasados ​​são muito altas.
28411 Wolfgang
@ Wolfgang, sim, correto, mas tenho que verificar programaticamente .. Vou dar uma olhada na função acf. Obrigado!
Dail
@ Wolfgang, estou vendo acf (), mas não vejo uma espécie de valor-p para entender se existe uma forte correlação ou não. Como interpretar seu resultado? Obrigado
Dail
Com H0: correlação (r) = 0, então r segue uma dist normal / t com média 0 e variância de sqrt (número de observações). Assim, você pode obter o intervalo de confiança de 95% usando +/-qt(0.75, numberofobs)/sqrt(numberofobs)
Jim
@ Jim A variação da correlação não é . O desvio padrão também não é . Mas tem um nele. n nnn
Glen_b -Reinstala Monica

Respostas:

17

Provavelmente existem muitas maneiras de fazer isso, mas a primeira que vem à mente é baseada em regressão linear. Você pode regredir os resíduos consecutivos um contra o outro e testar uma inclinação significativa. Se houver correlação automática, deve haver uma relação linear entre resíduos consecutivos. Para finalizar o código que você escreveu, você pode:

mod = lm(prices[,1] ~ prices[,2])
res = mod$res 
n = length(res) 
mod2 = lm(res[-n] ~ res[-1]) 
summary(mod2)

mod2 é uma regressão linear do tempo erro, ε t , contra o tempo t - 1 erro, ε t - 1 . se o coeficiente para res [-1] for significativo, você tem evidências de autocorrelação nos resíduos.tεtt-1εt-1

Nota: Isso implica implicitamente que os resíduos são autorregressivos no sentido de que apenas é importante na previsão de ε t . Na realidade, pode haver dependências de longo alcance. Nesse caso, este método que descrevi deve ser interpretado como a aproximação autor-regressiva de um intervalo à verdadeira estrutura de autocorrelação em ε .εt-1εtε

Macro
fonte
muito obrigado pelo exemplo. Apenas uma dúvida: como posso testar se res [-1] é significativo?
Dail
você a testaria da mesma maneira que faria com qualquer outro coeficiente de regressão - veja o valor de estatística e ptp
Macro
fazendo um teste rápido com: lm (rnorm (1000) ~ jitter (1: 1000)) Eu recebo: Erro padrão residual: 1.006 em 997 graus de liberdade Quadrado R múltiplo: 0.0003463, Quadrado R ajustado: -0.0006564 F-statistics : 0.3454 em 1 e 997 DF, valor-p: 0,5569 o valor-p não pode rejeitar a hipótese nula
Dail
Macro, testei os resíduos do gráfico que plotei acima e o resultado é: Erro padrão residual: 0,04514 em 747 graus de liberdade Quadrado R múltiplo: 0,9241, Quadrado R ajustado: 0,924 Estatística F: 9093 em 1 e 747 DF, valor de p: <2.2e-16, não parece muito bom, é muito estranho porque há uma forte autocorrelação, o que eu poderia fazer?
Dail
3
Isso é chamado de teste de Breusch-Godfrey para autocorrelação.
Charlie
16

Use o teste Durbin-Watson , implementado no pacote lmtest .

dwtest(prices[,1] ~ prices[,2])
Rob Hyndman
fonte
muito estranho fico: valor de p <2.2e-16, como é possível? os dados parecem muito correlacionados!
Dail
4
O valor de p é provavelmente o de obter tanta correlação quanto a observada se não houver correlação real. Portanto, se ep é muito pequeno, isso sugere que há muita correlação presente na amostra.
Rob Hyndman
Você quer dizer que um valor p como esse indique que os resíduos são muito autocorrelacionados?
Dail
hmm estranho, dê uma olhada em: imageshack.us/f/59/17671620.png como é possível que a imagem certa não seja correlacionada automaticamente?
Dail
: dail Parece que a imagem da esquerda apresenta uma mudança estrutural de variação (consulte o artigo de Ruey Tsay "Outliers, Mudanças de Nível e Mudanças de Variação em Séries Temporais", Journal of Forecasting, VOl 7, 1-20 (1988) para detalhes) que neste caso não "confunde" o DW, talvez devido ao fato de toda a distribuição ainda estar normal, enquanto a imagem certa possui algumas anomalias (Pulses) visualmente óbvias (e empiricamente identificáveis), criando uma não normal (leptokurtotic ver wikopedia: Uma distribuição com excesso de curtose positiva é chamado leptocúrtica) de distribuição que causa estragos com o DW
IrishStat
11

O teste DW ou o teste de regressão linear não são robustos para anomalias nos dados. Se você tiver Pulsos, Pulsos Sazonais, Mudanças de Nível ou Tendências da Hora Local, esses testes serão inúteis, pois esses componentes não tratados aumentam a variação dos erros, influenciando os testes, fazendo com que você (como você descobriu) aceite incorretamente a hipótese nula de não autocorrelação. Antes que esses dois testes ou qualquer outro teste paramétrico que eu saiba possa ser usado, é preciso "provar" que a média dos resíduos não é estatisticamente significativamente diferente de 0,0 EM TODA PARTE, caso contrário, as suposições subjacentes são inválidas. É sabido que uma das restrições do teste DW é a suposição de que os erros de regressão são normalmente distribuídos. Observe os meios normalmente distribuídos, entre outras coisas: Nenhuma anomalia (consultehttp://homepage.newschool.edu/~canjels/permdw12.pdf ). Além disso, o teste DW apenas testa a correlação automática do atraso 1. Seus dados podem ter um efeito semanal / sazonal e isso não é diagnosticado e, além disso, sem tratamento, influencia o teste DW para baixo.

IrishStat
fonte
quais são os testes para testar se os resíduos são significativamente diferentes de zero? Se a regressão inclui interceptação, a média residual é algebricamente zero, então estou curioso para saber como é possível contornar esse problema.
precisa saber é o seguinte
: mpkitas Como você disse, ao incluir uma constante, a média dos erros é garantida em 0,0, mas isso não garante que a média dos erros seja zero em todos os lugares. Por exemplo, se uma série tiver uma alteração na média, a média geral será uma constante, mas produzirá dois "grupos" de resíduos, cada um com uma média diferente. Você pode seguir o artigo de Ruey Tsay "Outliers, mudanças de nível e alterações de variação nas séries temporais", Journal of Forecasting, VOl 7, 1-20 (1988) para obter detalhes. OR faculty.chicagobooth.edu/ruey.tsay/teaching/uts/lec10-08.pdf OU Google "detecção automática de intervenção"
IrishStat 29/08/11
1
Essa é apenas a suposição padrão "sem variáveis ​​omitidas" implícita em todas as análises de regressão.
Charlie