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.
- Simulato un processo AR
- Aggiunto un trend deterministico
- Utilizzando ARIMAX modellato con tendenza come variabile esogena le serie sopra senza differenze.
- 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
AR (1) con tendenza deterministica
PACIMA residuo ARIMAX con tendenza esogena. Le residule sono casuali, senza motivo
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!