Come testare l'autocorrelazione dei residui?


23

Ho una matrice con due colonne che hanno molti prezzi (750). Nell'immagine qui sotto ho tracciato i residui della seguente regressione lineare:

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

Guardando l'immagine, sembra essere una forte autocorrelazione dei residui.

Tuttavia, come posso verificare se l'autocorrelazione di tali residui è forte? Quale metodo dovrei usare?

Residui della regressione lineare

Grazie!


8
Non è necessario testare l'autocorrelazione. È qui. La trama lo dimostra. Si potrebbe osservare la funzione di autocorrelazione di questi residui (funzione acf()), ma ciò confermerà semplicemente ciò che può essere visto a occhio nudo: le correlazioni tra i residui ritardati sono molto alte.
Wolfgang,

@ Wolfgang, sì, esatto, ma devo verificarlo a livello di codice .. Daremo un'occhiata alla funzione acf. Grazie!
Dail

@ Wolfgang, sto vedendo acf () ma non vedo una sorta di p-value per capire se esiste una forte correlazione o meno. Come interpretare il suo risultato? Grazie
Dail

Con H0: correlazione (r) = 0, quindi r segue una distanza normale / t con media 0 e varianza di sqrt (numero di osservazioni). Quindi potresti ottenere l'intervallo di confidenza al 95% usando +/-qt(0.75, numberofobs)/sqrt(numberofobs)
Jim

nnn

Risposte:


17

Probabilmente ci sono molti modi per farlo, ma il primo che viene in mente si basa sulla regressione lineare. Puoi regredire i residui consecutivi uno contro l'altro e testare una pendenza significativa. Se c'è auto-correlazione, allora dovrebbe esserci una relazione lineare tra residui consecutivi. Per finire il codice che hai scritto, puoi fare:

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

tεtt1εt1

εt1εtε


grazie mille per l'esempio. Solo un dubbio, come posso verificare se res [-1] è significativo?
Dail

tp

facendo un test veloce con: lm (rnorm (1000) ~ jitter (1: 1000)) Ottengo: errore standard residuo: 1.006 su 997 gradi di libertà Quadrato R multiplo: 0.0003463, Quadrato R rettificato: -0.0006564 Statistica F : 0,3454 su 1 e 997 DF, valore p: 0,5569 il valore p non può rifiutare l'ipotesi nulla
Dail

Macro, ho testato i residui del grafico che ho tracciato sopra e il risultato è: Errore standard residuo: 0,04514 su 747 gradi di libertà Quadrato R multiplo: 0,9241, Quadrato R rettificato: 0,924 Statistica F: 9093 su 1 e 747 DF, valore p: <2.2e-16, non sembra molto buono, è molto strano perché c'è una forte autocorrelazione, cosa posso fare?
Dail

3
Questo si chiama test di Breusch-Godfrey per l'autocorrelazione.
Charlie,

16

Utilizzare il test Durbin-Watson , implementato nel pacchetto lmtest .

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

molto strano ottengo: valore p <2.2e-16, come è possibile? i dati sembrano molto correlati!
Dail

4
Il valore p è probabilmente quello di ottenere la stessa correlazione osservata se non esiste una correlazione reale. Quindi se la p è molto piccola, così com'è, ciò suggerisce che c'è molta correlazione presente nel campione.
Rob Hyndman,

Vuoi dire che un valore p come questo indica che i residui sono molto autocorrelati?
Dail

hmm strano, dai un'occhiata a: imageshack.us/f/59/17671620.png come è possibile che l'immagine giusta non sia autocorrelata?
Dail

: dail Sembra che l'immagine a sinistra abbia un cambiamento strutturale nella varianza (vedi l'articolo di Ruey Tsay "Valori anomali, spostamenti di livello e variazioni di varianza nelle serie temporali", Journal of Forecasting, VOl 7, 1-20 (1988) per i dettagli) che in questo caso non "confonde" il DW forse a causa del fatto che l'intera distribuzione è ancora normale mentre l'immagine giusta ha alcune anomalie (impulsi) visivamente ovvie (ed empiricamente identificabili) che creano una non normale (leptokurtotic vedi wikopedia: una distribuzione con kurtosi in eccesso positiva si chiama distribuzione leptokurtic) che causa il caos con il DW
IrishStat

11

Il test DW o il test di regressione lineare non sono robusti per le anomalie nei dati. Se si dispone di impulsi, impulsi stagionali, cambiamenti di livello o tendenze dell'ora locale, questi test sono inutili in quanto questi componenti non trattati gonfiano la varianza degli errori, quindi inclinando verso il basso i test che ti fanno (come hai scoperto) accettare erroneamente l'ipotesi nulla di no autocorrelazione. Prima di poter utilizzare questi due test o qualsiasi altro test parametrico di cui sono a conoscenza, è necessario "dimostrare" che la media dei residui non è statisticamente significativamente diversa da 0,0 OVUNQUE, altrimenti le ipotesi sottostanti non sono valide. È noto che uno dei vincoli del test DW è il presupposto che gli errori di regressione siano normalmente distribuiti. Nota normalmente distribuito significa tra l'altro: Nessuna anomalia (vedihttp://homepage.newschool.edu/~canjels/permdw12.pdf ). Inoltre, il test DW verifica solo l'auto-correlazione del ritardo 1. I tuoi dati potrebbero avere un effetto settimanale / stagionale e questo non verrebbe diagnosticato e, inoltre, non trattato, pregiudicherebbe il test DW.


quali sono i test per verificare che i residui siano significativamente diversi da zero? Se la regressione include l'intercettazione, la media residua è algebricamente zero, quindi sono curioso di sapere come è possibile aggirare questo problema.
mpiktas,

: mpkitas Come hai detto quando includi una costante, la media degli errori è garantita su 0,0, ma ciò non garantisce che la media degli errori sia Zero ovunque. Ad esempio, se una serie ha un cambiamento nella media, la media complessiva sarà una costante ma produrrà due "blocchi" di residui, ognuno con una media diversa. Puoi seguire l'articolo di Ruey Tsay "Valori anomali, cambiamenti di livello e variazioni di varianza nelle serie temporali", Journal of Forecasting, VOl 7, 1-20 (1988) per i dettagli. OR faculty.chicagobooth.edu/ruey.tsay/teaching/uts/lec10-08.pdf OPPURE "rilevamento automatico degli interventi" di Google
Irish Data

1
Questo è solo il presupposto standard "nessuna variabile omessa" implicito in tutte le analisi di regressione.
Charlie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.