Statistiche di Ljung-Box per i residui di ARIMA in R: risultati confusi dei test


15

Ho una serie temporale che sto cercando di prevedere, per la quale ho usato il modello stagionale ARIMA (0,0,0) (0,1,0) [12] (= fit2). È diverso da ciò che R ha suggerito con auto.arima (R calcolato ARIMA (0,1,1) (0,1,0) [12] sarebbe un adattamento migliore, l'ho chiamato fit1). Tuttavia, negli ultimi 12 mesi delle mie serie temporali il mio modello (fit2) sembra adattarsi meglio quando regolato (era cronicamente parziale, ho aggiunto la media residua e la nuova vestibilità sembra adattarsi meglio alla serie temporale originale Ecco l'esempio degli ultimi 12 mesi e MAPE per i 12 mesi più recenti per entrambi gli accoppiamenti:

fit1, fit2 e dati originali

Le serie temporali si presentano così:

serie storiche originali

Fin qui tutto bene. Ho eseguito analisi residue per entrambi i modelli, ed ecco la confusione.

L'acf (resid (fit1)) sembra fantastico, molto bianco-rumoroso:

acf di fit1

Tuttavia, il test di Ljung-Box non sembra buono per, ad esempio, 20 ritardi:

    Box.test(resid(fit1),type="Ljung",lag=20,fitdf=1)

Ottengo i seguenti risultati:

    X-squared = 26.8511, df = 19, p-value = 0.1082

Secondo la mia comprensione, questa è la conferma che i residui non sono indipendenti (il valore p è troppo grande per stare con l'ipotesi di indipendenza).

Tuttavia, per il ritardo 1 tutto è fantastico:

    Box.test(resid(fit1),type="Ljung",lag=1,fitdf=1)

mi dà il risultato:

    X-squared = 0.3512, df = 0, p-value < 2.2e-16

O non capisco il test, o è leggermente in contraddizione con ciò che vedo nel grafico acf. L'autocorrelazione è ridicolmente bassa.

Poi ho controllato fit2. La funzione di autocorrelazione è simile alla seguente:

acf fit2

Nonostante tale ovvia autocorrelazione a diversi primi ritardi, il test di Ljung-Box mi ha dato risultati molto migliori a 20 ritardi, rispetto a fit1:

    Box.test(resid(fit2),type="Ljung",lag=20,fitdf=0)

risulta in:

    X-squared = 147.4062, df = 20, p-value < 2.2e-16

mentre solo il controllo dell'autocorrelazione su lag1 mi dà anche la conferma dell'ipotesi nulla!

    Box.test(resid(arima2.fit),type="Ljung",lag=1,fitdf=0)
    X-squared = 30.8958, df = 1, p-value = 2.723e-08 

Comprendo correttamente il test? Il valore p dovrebbe essere preferibilmente inferiore a 0,05 per confermare l'ipotesi nulla dell'indipendenza dei residui. Quale adattamento è meglio utilizzare per le previsioni, adattamento1 o adattamento2?

Informazioni aggiuntive: i residui di fit1 mostrano una distribuzione normale, quelli di fit2 no.


2
Non capisci i valori p e li stai interpretando nel modo sbagliato.
Scortchi - Ripristina Monica

Sì, potrebbe essere la questione della comprensione. Potresti per favore espandere? Ad esempio, cosa significa esattamente se il valore p è maggiore di 0,5? Ho letto la definizione di p-value (probabilità di ottenere statistiche almeno tanto estreme quanto la statistica di test dato che l'ipotesi nulla vale). Come si applica al test Ljung-Box? "Almeno altrettanto estremo" significa "più grande di X al quadrato"? Sarei grato per l'esempio con i miei dati, dal momento che il test di significatività è stato difficile per me da capire.
zima,

5
La statistica del test di Ljung-Box ( X-squared) aumenta con l'aumentare delle autocorrelazioni del campione dei residui (vedere la sua definizione) e il suo valore p è la probabilità di ottenere un valore maggiore o maggiore di quello osservato sotto il valore null ipotesi che le vere innovazioni siano indipendenti. Pertanto un piccolo valore p è una prova contro l' indipendenza.
Scortchi - Ripristina Monica

@Scortchi, penso di averlo capito. Ma anche questo fa fallire il mio test a lag = 1 per fit1. Come potrebbe essere spiegato? Non vedo alcuna autocorrelazione a ritardo = 1. Esiste una sorta di estremismo di questo test con un piccolo numero di ritardi (campione molto piccolo)?
zima,

3
Box-Ljung è un test omnibus di indipendenza in ritardo rispetto a quello specificato. Il grado di libertà utilizzato è il no. ritardi meno il no. Parametri AR e MA ( fitdf), quindi stavi testando una distribuzione chi-quadro con zero gradi di libertà.
Scortchi - Ripristina Monica

Risposte:


33

Hai interpretato il test in modo errato. Se il valore p è maggiore di 0,05, i residui sono indipendenti e vogliamo che il modello sia corretto. Se si simula una serie temporale di rumore bianco utilizzando il codice seguente e si utilizza lo stesso test per esso, il valore p sarà maggiore di 0,05.

m = c(ar, ma)
w = arima.sim(m, 120)
w = ts(w)
plot(w)
Box.test(w, type="Ljung-Box")

3
Una spiegazione breve e chiara. +1 per l'esempio di codice.
Dawny33,

1
Anche la tua interpretazione non è corretta. Un valore p di 0,05 significa che hai il 5% di probabilità di commettere un errore se rifiuti l'ipotesi nulla di nessuna auto-correlazione fino all'ordine 1 nel tuo caso.
DJJ

7

Molti test statistici sono usati per cercare di respingere alcune ipotesi nulle. In questo caso particolare il test di Ljung-Box tenta di rifiutare l'indipendenza di alcuni valori. Cosa significa?

  • Se p-value <0,05 1 : è possibile rifiutare l'ipotesi nulla ipotizzando una probabilità del 5% di commettere un errore. Quindi puoi presumere che i tuoi valori mostrino dipendenza l'uno dall'altro.

  • Se p-value> 0,05 1 : Non hai prove statistiche sufficienti per respingere l'ipotesi nulla. Quindi non puoi presumere che i tuoi valori siano dipendenti. Ciò potrebbe significare che i tuoi valori dipendono comunque o che i tuoi valori sono indipendenti. Ma non stai dimostrando alcuna possibilità specifica, ciò che il tuo test ha effettivamente detto è che non puoi affermare la dipendenza dei valori, né puoi affermare l'indipendenza dei valori.

In generale, ciò che è importante qui è tenere presente che il valore p <0,05 consente di rifiutare l'ipotesi nulla, ma un valore p> 0,05 non lo fa consente di confermare l'ipotesi nulla.

In particolare, non è possibile provare l'indipendenza dei valori delle serie storiche utilizzando il test Ljung-Box. Puoi solo provare la dipendenza.


α=0.05


α=0.05

0

Secondo i grafici ACF, è evidente che l'adattamento 1 è migliore poiché il coefficiente di correlazione in ritardo k (k> 1) diminuisce drasticamente e si avvicina a 0.


0

Se stai valutando con ACF, la misura 1 è più appropriata. Invece di essere confuso nel test di Ljung, puoi comunque utilizzare il correlogramma dei residui per accertare la migliore corrispondenza tra adattamento1 e adattamento2


1
Non capisco questa risposta.
Michael R. Chernick,

Quando visitiamo le statistiche sulla scatola di Ljung, potremmo essere interessati al controllo diagnostico del modello, ad esempio l'adeguatezza del modello ..... Se l'utilizzo che ti confonde ci sono altri modi per verificare l'adeguatezza del modello che ho affermato sopra. È possibile tracciare il correlogramma Ie, ACF e PACF dei dati residui e quindi controllare i limiti della serie se si tratta di rumore bianco ...... Non è necessario utilizzare il test box di Ljung
Vincent
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.