Una serie stazionaria di tendenza può essere modellata con ARIMA?


12

Ho una domanda / confusione sulle serie fisse richieste per la modellazione con ARIMA (X). Ci sto pensando più in termini di inferenza (effetto di un intervento), ma vorrei sapere se la previsione rispetto all'inferenza fa qualche differenza nella risposta.

Domanda:

Tutte le risorse introduttive che ho letto affermano che la serie deve essere stazionaria, il che ha senso per me ed è qui che entra in gioco l'io in arima (differenziazione).

Ciò che mi confonde è l'uso di tendenze e derive in ARIMA (X) e le implicazioni (se presenti) per i requisiti fissi.

L'uso di un termine costante / alla deriva e / o di una variabile di tendenza come variabile esogena (ovvero l'aggiunta di 't' come regressore) nega il requisito della serie stazionaria? La risposta è diversa a seconda se la serie ha una radice unitaria (ad es. Test adf) o ha una tendenza deterministica ma nessuna radice unitaria?

O

Una serie deve sempre essere stazionaria, creata in modo differenziato e / o dannoso prima di utilizzare ARIMA (X)?

Risposte:


12

Guardando i commenti sembra che non abbiamo affrontato la domanda su come scegliere tra una tendenza deterministica o stocastica. Cioè, come procedere nella pratica piuttosto che le conseguenze o le proprietà di ciascun caso.

Un modo per procedere è il seguente: iniziare applicando il test ADF.

  • Se il null di una radice unitaria viene rifiutato, il gioco è fatto. L'eventuale tendenza può essere rappresentata da una tendenza lineare deterministica.
  • Se il valore nullo del test ADF non viene rifiutato, applichiamo il test KPSS (in cui l'ipotesi nulla è l'opposto, la stazionarietà o la stazionarietà attorno a una tendenza lineare).

    o Se il valore nullo del test KPSS viene rifiutato, concludiamo che esiste un'unità radice e che lavora con le prime differenze dei dati. Sulle prime differenze della serie possiamo testare il significato di altri regressori o scegliere un modello ARMA.

    o Se il null del test KPSS non viene rifiutato, dovremmo dire che i dati non sono molto informativi perché non siamo stati in grado di respingere nessuna delle ipotesi null. In questo caso potrebbe essere più sicuro lavorare con le prime differenze della serie.

Come menzionato in una risposta precedente, ricordare che questi test possono essere influenzati dalla presenza di valori anomali (ad es. Un valore anomalo in un singolo momento a causa di un errore durante la registrazione dei dati o uno spostamento di livello dovuto ad esempio a una modifica della politica che influisce sul serie da un determinato momento). Pertanto, è consigliabile controllare anche questi problemi e ripetere l'analisi precedente dopo aver incluso i regressori per alcuni potenziali valori anomali.


Eccezionale! La mia domanda di commento sopra era corretta che se vediamo che assomiglia a una tendenza, utilizziamo il test ADF che include una tendenza (opzione n. 3 nel link che ho pubblicato)?
B_Miner,

Ultima domanda: cosa ne pensi della situazione in cui si adatta un ARIMA, diciamo ARIMA (0,1,1) a una serie e la media della differenza è diversa da zero? Ciò significa che credo che tu abbia aggiunto una costante al modello, che rappresenta anche una tendenza lineare nella serie originale. Cosa significa questo caso? La tendenza nella serie originale è deterministica perché differenziare la serie non ha rimosso la tendenza?
B_Miner,

@B_Miner Per quanto riguarda il tuo primo commento, vorrei iniziare includendo solo un'intercettazione. Se la tendenza sembra in qualche modo esponenziale, puoi anche aggiungere il parametro di pendenza della tendenza lineare e vedere se è significativa. In generale, è meglio iniziare con un modello con pochi parametri e se la diagnostica dei residui non è soddisfacente, prendere in considerazione l'aggiunta di altri elementi.
javlacalle,

@B_Miner Prendere le prime differenze rimuove sia una tendenza deterministica che una tendenza stocastica. Se vedi una tendenza nelle serie differenziate in un modello con intercetta, allora dovresti considerare di prendere di nuovo le differenze (cioè test per una seconda unità radice).
javlacalle,

1
a1t+a2t2

5

Ricorda che ci sono diversi tipi di non stazionarietà e modi diversi su come affrontarli. Quattro comuni sono:

1) Tendenze deterministiche o stazionarietà delle tendenze. Se la tua serie è di questo tipo, declassala o includi una tendenza temporale nella regressione / modello. Potresti voler dare un'occhiata al teorema di Frisch – Waugh – Lovell su questo.

2) Spostamenti di livello e rotture strutturali. In tal caso, è necessario includere una variabile fittizia per ogni interruzione o se il campione è sufficientemente lungo, ogni modello è separato separatamente.

3) Modifica della varianza. Modellare i campioni separatamente o modellare la varianza mutevole utilizzando la classe di modellazione ARCH o GARCH.

4) Se le tue serie contengono un'unità radice. In generale, dovresti quindi verificare la presenza di relazioni cointegranti tra le variabili, ma poiché ti preoccupi della previsione univariata, dovresti scostarla una o due volte a seconda dell'ordine di integrazione.

Per modellare una serie temporale utilizzando la classe di modellazione ARIMA, è necessario eseguire le seguenti operazioni:

1) Guarda ACF e PACF insieme a un diagramma di serie temporali per vedere se la serie è stazionaria o no.

2) Testare la serie per un'unità radice. Questo può essere fatto con una vasta gamma di test, alcuni dei più comuni sono il test ADF, il test Phillips-Perron (PP), il test KPSS che ha il nulla di stazionarietà o il test DF-GLS che è il più efficiente delle prove di cui sopra. NOTA! Che nel caso in cui la tua serie contenga una rottura strutturale, questi test sono distorti per non rigettare il valore nullo di una radice unitaria. Nel caso in cui si desideri verificare la solidità di questi test e se si sospetta una o più rotture strutturali, è necessario utilizzare test di rottura strutturali endogeni. Due comuni sono il test Zivot-Andrews che consente una rottura strutturale endogena e il Clemente-Montañés-Reyes che consente due rotture strutturali. Quest'ultimo consente due diversi modelli.

3) Se c'è una radice unitaria nella serie, allora dovresti differenziare la serie. Successivamente dovresti eseguire l'ACF, il PACF e il grafico delle serie temporali e probabilmente verificare che una seconda unità radice sia sul lato sicuro. ACF e PACF ti aiuteranno a decidere quanti termini AR e MA dovresti includere.

4) Se la serie non contiene una radice unitaria ma il diagramma delle serie temporali e l'ACF mostrano che la serie ha una tendenza deterministica, è necessario aggiungere una tendenza quando si adatta il modello. Alcune persone sostengono che è completamente valido differenziare le serie solo quando contiene una tendenza deterministica sebbene le informazioni possano andare perse nel processo. Tuttavia è una buona idea differenziarlo per vedere molti termini AR e / o MA che dovrai includere. Ma una tendenza temporale è valida.

5) Adatta i diversi modelli ed esegui il consueto controllo diagnostico, potresti voler utilizzare un criterio di informazione o il MSE per selezionare il modello migliore dato il campione su cui lo calzi.

6) Esegui delle previsioni campione sui modelli più adatti e calcola le funzioni di perdita come MSE, MAPE, MAD per vedere quali di esse offrono effettivamente le migliori prestazioni quando le utilizzi per le previsioni, perché è quello che vogliamo fare!

7) Fai le tue previsioni fuori campione come un capo e sii soddisfatto dei tuoi risultati!


E per rispondere rapidamente alla tua domanda. Sì, può.
Plissken,

Non mi è stato permesso di commentare quanto sopra poiché non ho abbastanza reputazione, ma voglio sottolineare che un processo di rumore bianco è fermo. La sua media e varianza non cambia nel tempo, quindi è stazionaria!
Plissken,

Dan, ottima risposta! Per quanto riguarda il tuo ultimo commento qui, stai dicendo che se finisci con il rumore bianco residuo, che è stazionario .... allora ti dice che hai modellato adeguatamente la serie (cioè hai affrontato le questioni di stazionarietà in modo adeguato / adeguato)?
B_Miner,

1
Si, esattamente. Spesso il test Q di Ljung-Box viene utilizzato per testare i residui al fine di vedere se sono casuali. Nel caso in cui lo siano, il modello è una rappresentazione adeguata dei dati. Qualcosa che ho dimenticato di menzionare nella risposta sopra è anche che dopo aver montato il modello è possibile guardare il diagramma ACF e le serie temporali dei residui delle serie montate. Questo ti darà una buona indicazione se i tuoi residui sono o meno rumori bianchi (l'ACF non dovrebbe avere ritardi significativi). Comunque, la maggior parte dei pacchetti statistici ha un comando per il test Q di Ljung-Box.
Plissken,

Ecco il link wiki per il test Q di Ljung-Box: en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Plissken

5

Determinare se la tendenza (o altri componenti come la stagionalità) è deterministica o stocastica fa parte del puzzle nell'analisi delle serie temporali. Aggiungerò un paio di punti a ciò che è stato detto.

1) La distinzione tra tendenze deterministiche e stocastiche è importante perché se una radice unitaria è presente nei dati (ad esempio una camminata casuale), le statistiche di test utilizzate per l'inferenza non seguono la distribuzione tradizionale. Vedi questo post per alcuni dettagli e riferimenti.

Possiamo simulare una camminata casuale (tendenza stocastica in cui dovrebbero essere prese le prime differenze), testare il significato della tendenza deterministica e vedere la percentuale di casi in cui viene respinto il nullo della tendenza deterministica. In R, possiamo fare:

require(lmtest)
iter <- 10000
cval <- 0.05
n <- 120
rejections <- 0
set.seed(123)
for (i in seq.int(iter))
{
  x <- cumsum(rnorm(n)) # random walk
  fit <- lm(x ~ seq(n))
  if (coeftest(fit)[2,"Pr(>|t|)"] < cval)
    rejections <- rejections + 1
}
100 * rejections / iter
#[1] 88.67

A livello di significatività del 5%, ci aspetteremmo di respingere il valore nullo nel 95% dei casi, tuttavia, in questo esperimento è stato rifiutato solo nel ~ 89% dei casi su 10.000 passeggiate casuali simulate.

Possiamo applicare i test radice unità per verificare se è presente una radice unità. Ma dobbiamo essere consapevoli che una tendenza lineare può a sua volta portare all'incapacità di rifiutare il null di una radice unitaria. Per far fronte a questo, il test KPSS considera il nulla di stazionarietà attorno a una tendenza lineare.

2) Un altro problema è l'interpretazione delle componenti deterministiche in un processo a livelli o prime differenze. L'effetto di un'intercettazione non è lo stesso in un modello con una tendenza lineare come in una camminata casuale. Vedi questo post per l'illustrazione.

yt=μ+yt1+ϵt,ϵtNID(0,σ2).

ytiyt

yt=μ+yt1μ+yt2+ϵt1+ϵt=2μ+yt2μ+yt3+ϵt2+ϵt1+ϵt=3μ+yt3+ϵt2+ϵt1+ϵt...

Arriviamo a:

yt=y0+μt+i=1tϵi

y0μμμ

Se la rappresentazione grafica di una serie mostra una tendenza lineare relativamente chiara, non possiamo essere sicuri che ciò sia dovuto alla presenza di una tendenza lineare deterministica o alla deriva in un processo di camminata casuale. Dovrebbero essere applicati grafici e statistiche di prova complementari.

Vi sono alcuni avvertimenti da tenere presente poiché un'analisi basata sulla radice dell'unità e altre statistiche dei test non è infallibile. Alcuni di questi test possono essere influenzati dalla presenza di osservazioni periferiche o cambiamenti di livello e richiedono la selezione di un ordine di ritardo che non è sempre semplice.

Per ovviare a questo enigma, penso che la pratica comune sia quella di prendere le differenze dei dati fino a quando la serie sembra stazionaria (ad esempio guardando la funzione di autocorrelazione, che dovrebbe andare a zero velocemente) e quindi scegliere un modello ARMA.


Greta post: sei chiaramente una grande risorsa per questo sito! Ero curioso di guardare qui e gli altri tuoi post: è possibile utilizzare un test ADF o KPSS per determinare se ciò che sembra una tendenza della serie nei livelli è deterministico o stocastico? Ho trovato questo: faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf che lo fa sembrare se vedi visivamente una tendenza nella serie, usa l'opzione # 3 del test e se non rifiuti il nullo, hai prove per una tendenza deterministica.
B_Miner,

Sulla base del commento di Dan, immagino che se si ottengono residui di rumore bianco, nulla di tutto questo conta :)
B_Miner

5

Domanda molto interessante, vorrei anche sapere cosa hanno da dire gli altri. Sono un ingegnere di formazione e non uno statistico, quindi qualcuno può controllare la mia logica. Come ingegneri vorremmo simulare e sperimentare, quindi ero motivato a simulare e testare la tua domanda.

Come mostrato empiricamente di seguito, l'utilizzo di una variabile di tendenza in ARIMAX ha annullato la necessità di differenziazione e rende stazionaria la tendenza della serie. Ecco la logica che ho usato per verificare.

  1. Simulato un processo AR
  2. Aggiunto un trend deterministico
  3. Utilizzando ARIMAX modellato con tendenza come variabile esogena le serie sopra senza differenze.
  4. Controllato i residui per il rumore bianco ed è puramente casuale

Di seguito è riportato il codice R e le trame:

set.seed(3215)

##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)

## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)

## Check with arima

ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)

## Check whether residuals of fitted model is random

pacf(ar_model$residuals)

AR (1) Diagramma simulato inserisci qui la descrizione dell'immagine

AR (1) con tendenza deterministica inserisci qui la descrizione dell'immagine

PACIMA residuo ARIMAX con tendenza esogena. Le residule sono casuali, senza motivo inserisci qui la descrizione dell'immagine

Come si può vedere in precedenza, la modellazione della tendenza deterministica come variabile esogena nel modello ARIMAX annulla la necessità di differenziazione. Almeno nel caso deterministico ha funzionato. Mi chiedo come ciò si comporterebbe con una tendenza stocastica che è molto difficile da prevedere o modellare.

Per rispondere alla tua seconda domanda, SÌ, tutti gli ARIMA, incluso ARIMAX, devono essere fissi. Almeno questo è ciò che dicono i libri di testo.

Inoltre, come commentato, vedi questo articolo . Spiegazione molto chiara sulla tendenza deterministica rispetto alla tendenza stocastica e su come rimuoverla per renderla fissa e anche un'indagine letteraria molto bella su questo argomento. Lo usano nel contesto della rete neurale, ma è utile per il problema generale delle serie temporali. La loro raccomandazione finale è quando è chiaramente identificata come tendenza deterministica, il fare lineare detrending, altrimenti applicare la differenziazione per rendere stazionarie le serie temporali. La giuria è ancora là fuori, ma la maggior parte dei ricercatori citati in questo articolo raccomandano la differenziazione anziché la riduzione lineare.

Modificare:

Di seguito è riportata la camminata casuale con il processo stocastico alla deriva, usando la variabile esogena e la differenza arima. Entrambi sembrano dare la stessa risposta e in sostanza sono uguali.

library(Hmisc)

set.seed(3215)

## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean

y = rep(NA,63)
y[[1]] <- 2


for (i in 2:63)  {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
} 

plot(y,type="l")

y_ts <- ts(y,frequency=1)

## Lag to create Xreg

y_1 <- Lag(y,shift=1)


## Start from 2 value to avoid NA and make it equal length with xreg

y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]

## Check the values with ARIMA and xreg

g <- arima(y,order=c(0,0,0),xreg=xreg1)

pacf(g$residuals)

## Check the values with ARIM

g1 <- arima(y,order=c(0,1,0))

pacf(g1$residuals)

## 

ARIMA(0,0,0) with non-zero mean 

Coefficients:
      intercept   xreg1
         3.1304  0.9976
s.e.     0.2664  0.0025

Spero che sia di aiuto!


Sono interessato anche ad altri punti di vista - non sono sicuro, il rumore bianco residuo è il requisito per la serie stazionaria - vale a dire se si ottiene rumore bianco si può essere soddisfatti? Oppure, l'inclusione della variabile esogena sta effettivamente agendo per "declinare" e rendere stazionaria questa serie? Mi chiedo se un controllo su questa domanda successiva sia se si ottiene lo stesso modello (coefficiente ar1, ecc.) Se si de-trend con regressione lineare e quindi si adatta l'arima (1,0,0) ... Ho fatto questo e il i risultati sono vicini. Quindi forse aggiungere la variabile esogena equivale a detrarre.
B_Miner,

Sì, è lo stesso, pochi mesi fa mi sono imbattuto in questo in un articolo di previsione della rete neurale. Fornirò riferimento se lo trovo.
previsioni

Qualche idea sul caso in cui esiste una radice unitaria o quando c'è una costante nel modello?
B_Miner,

Ho aggiornato la mia risposta con l'articolo a cui mi riferivo.
previsioni

Penso che potresti non averlo salvato.
B_Miner,
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.