Serie storiche di differenza prima di Arima o all'interno di Arima


13

È meglio distinguere una serie (supponendo che ne abbia bisogno) prima di usare un Arima O meglio usare il parametro d all'interno di Arima?

Sono rimasto sorpreso da quanto diversi siano i valori adattati a seconda della rotta presa con lo stesso modello e dati. O sto facendo qualcosa di sbagliato?

install.packages("forecast")
library(forecast)

wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)

#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)

#fitted values from modA
A<-forecast.Arima(modA,1)$fitted

#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])


plot(A, col="red")
lines(B, col="blue")

INSERISCI:

Nota: sto differenziando una volta la serie e inserendo arima (1,0,0), quindi inserendo arima (1,1,0) sulla serie originale. Sto (penso) invertendo la differenza sui valori adattati per gli arima (1,0,0) sul file differenziato.

Sto confrontando i valori adattati, non le previsioni.

Ecco la trama (rosso è arima (1,1,0) e blu è l'arima (1,0,0) sulla serie differenziata dopo essere tornati alla scala originale):

inserisci qui la descrizione dell'immagine

Risposta alla risposta del Dr. Hyndman:

1) Puoi illustrare nel codice R cosa dovrei fare per far corrispondere i due valori adattati (e presumibilmente le previsioni) (consentendo una piccola differenza dovuta al tuo primo punto nella risposta) tra Arima (1,1, 0) e Arima (1,0,0) nelle serie differenziate manualmente? Presumo che ciò abbia a che fare con il fatto che la mod non è inclusa in modA, ma non sono del tutto sicuro di come procedere.

2) Per quanto riguarda il tuo numero 3. So che mi manca l'ovvio, ma non sono e lo stesso quando è definito come ? Stai dicendo che sto "indifferenziando" in modo errato? Y t=φ(Xt-1-Xt-2) Y t X t-Xt-1X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1


1
Per quanto riguarda il tuo aggiornamento. 1) Non vedo alcun motivo nel farlo. Arima () produrrà i valori e le previsioni adattati. Perché dovrei produrre un codice R aggiuntivo per fare la stessa cosa di Arima () già? 2) Sì, ma differenziare X-hat non ti dà Y-hat. Quindi indifferentemente Y-hat non ti dà X-hat.
Rob Hyndman,

2
Grazie. 1) È stato un esercizio di apprendimento per me. 2) Il mio errore nel calcolo nella mia domanda originale (usando diffinv) è stato nell'usare i valori adattati e non l'originale è quello che penso di ottenere da questo. (?) ... che porta al n. 1 di come correggere indifferenza dei dati. So che Arima lo farà, solo cercando di seguire un esempio di libro usando le equazioni.
B_Miner

Risposte:


14

Ci sono diversi problemi qui.

  1. Se si differenzia prima, quindi Arima()si adatterà un modello ai dati differenziati. Se si lascia Arima()fare la differenza come parte della procedura di stima, verrà utilizzato un diffuso prima dell'inizializzazione. Questo è spiegato nel file di aiuto per arima(). Quindi i risultati saranno diversi a causa dei diversi modi in cui viene gestita l'osservazione iniziale. Non penso che faccia molta differenza in termini di qualità della stima. Tuttavia, è molto più semplice Arima()gestire la differenza se si desidera previsioni o valori adattati sui dati originali (indifferenziati).

  2. A parte le differenze di stima, i tuoi due modelli non sono equivalenti perché non modBinclude una costante modA. Per impostazione predefinita, Arima()include una costante quando e nessuna costante quando . È possibile ignorare queste impostazioni predefinite con l' argomento.d > 0d=0d>0include.mean

  3. I valori adattati per i dati originali non equivalgono ai valori adattati indifferenziati sui dati differenziati. Per vedere questo, nota che i valori adattati sui dati originali sono dati da mentre i valori sui dati differenziati sono dati da dove è la serie temporale originale e è le serie differenziate. Quindi Y t=φ(Xt-1-Xt-2){Xt}{Yt} X t - X t-1 Y t.

    X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, stavo per dare come risposta il punto 2. Complimenti per aver incluso l'altro 2.
mpiktas,

Dr. Hyndman, grazie per la risposta! Ho molto da imparare sull'analisi delle serie storiche. Posso chiedere un follow-up? Non sono sicuro di sapere esattamente cosa fare con queste informazioni, quindi sto pubblicando un componente aggiuntivo alla mia domanda originale.
B_Miner,

2

A volte è necessario rimuovere i mezzi locali per rendere stazionaria la serie. Se la serie originale ha un acf che non si esaurisce, ciò può essere dovuto a un cambio di livello / gradino nella serie. Il rimedio è de-significare la serie.

RISPOSTA AL TAGLIO:

Il modo per ottenere gli stessi risultati / valori adattati è dopo aver differenziato fisicamente la serie oroiginal (Y (t) per ottenere la prima differenza (dely), stimare un AR (1) senza una costante. Ciò equivale a montare un modello OLS del form dely (t) = B1 * dely (t-1) + a (t) SENZA un'intercettazione. I valori adattati di questo modello, opportunamente integrati nell'ordine 1, ti daranno (credo) i valori adattati di un modello; [ 1-B] [AR (1)] Y (t) = a (t). La maggior parte dei software, con la nota eccezione di AUTOBOX, NON PERMETTE di stimare un modello AR (1) senza una costante. equazione per dely = + [(1- .675B * 1)] ** - 1 [A (T)] mentre l'equazione per Y era

[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Si noti l'errore di arrotondamento causato dalla differenziazione fisica di Y. Notare che quando la differenziazione è attiva (nel modello) OPPURE l'utente può scegliere se includere o escludere la costante. Il processo normale consiste nell'includere una costante per un modello ARIMA stazionario (cioè indifferenziato) e, facoltativamente, includere una costante quando la differenziazione è presente nel modello. Sembra che l'approccio alternativo (Arima) costringa una costante in un modello stazionario che secondo me ha causato il tuo dilemma.


In questo caso ciò dovrebbe influire sui valori adattati tra l'arima (1,0,0) su delta-y e l'arima (1,1,0) su y?
B_Miner,

In entrambi i casi stai adattando un AR (1) alla prima differenza delle serie storiche, giusto? Se è così e i metodi di adattamento sono gli stessi, dovrebbero fare esattamente la stessa cosa. Non c'è nemmeno una differenza nell'ordine delle operazioni.
Michael R. Chernick,

Non sembra essere il caso qui. Forse @Rob_Hyndman effettuerà il check-in.
B_Miner

1

Non so perché ci sarebbe una differenza nei risultati a meno che in qualche modo non si stia differenziando più volte in un modo rispetto all'altro. per un ARIMA (p, d, q) le differenze d vengono fatte prima di ogni adattamento del modello. Quindi il modello ARMA stazionario (p, q) si adatta alle serie differenziate. Il presupposto è che dopo la rimozione delle tendenze polinomiali nella serie le serie rimanenti siano stazionarie. Il numero di differenze corrisponde all'ordine del polinomio che si desidera rimuovere. Quindi per una tendenza lineare prendi solo una differenza, per una tendenza quadratica prendi due differenze. Non sono d'accordo con gran parte di ciò che è stato detto nella risposta di John.


0

Un motivo per differenziare una serie I (1) è renderlo fermo. Presumendo che si disponga delle specifiche corrette per il modello ARIMA, i residui del modello avranno i componenti autoregressivi e mobili della media rimossi e dovrebbero essere fissi. A tale proposito può avere senso utilizzare i residui nel modello, anziché differenziarli. Tuttavia, in circostanze in cui disponi di molti dati che ritieni siano approssimativamente I (1), alcune persone differiranno semplicemente i dati anziché stimare completamente il modello ARIMA. Il modello ARIMA può adattarsi a tutta una serie di problemi relativi alle serie temporali in cui potrebbe non avere senso fare la differenza. Ad esempio, se i dati subiscono un'inversione di media, ciò potrebbe non essere sempre appropriato alla differenza poiché potrebbe non essere I (1).


Ti aspetti che le differenze siano così grandi? Mi ha fatto pensare che stavo facendo qualcosa di sbagliato nel modo in cui stavo tornando dalle differenze all'originale.
B_Miner

Potresti spiegare esattamente cosa hai fatto? Non sono bravo a leggere il codice R. Se si prende lo stesso numero di differenze in entrambi i modi e si adatta lo stesso modello ARMA dopo la differenza, si dovrebbero ottenere gli stessi risultati purché le tecniche di adattamento siano le stesse (di solito vengono utilizzati i minimi quadrati condizionali).
Michael R. Chernick,

Prende alcuni dati, si adatta a un ARIMA (1,1,0), quindi prende le differenze e si adatta a un ARIMA (1,0,0). Infine, confronta un periodo tra le previsioni del campione tra loro. Presumibilmente sono diversi, ma non possiamo vedere i grafici nel post.
John

yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
John

1
Finalmente giusto. Non riesco a fare LaTex in 5 minuti! Per quanto posso dire, l'equazione di cui sopra emerge in entrambi i modi.
Michael R. Chernick,
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.