Bardzo interesujące pytanie, chciałbym również wiedzieć, co mają do powiedzenia inni. Z wykształcenia jestem inżynierem, a nie statystykiem, więc ktoś może sprawdzić moją logikę. Jako inżynierowie chcielibyśmy symulować i eksperymentować, więc zmotywowałem się do symulacji i przetestowania twojego pytania.
Jak pokazano poniżej empirycznie, użycie zmiennej trendu w ARIMAX neguje potrzebę różnicowania i powoduje, że trend szeregowy jest nieruchomy. Oto logika, której użyłem do weryfikacji.
- Symulowany proces AR
- Dodano trend deterministyczny
- Wykorzystanie ARIMAX modelowanego trendem jako zmiennej egzogenicznej powyższej serii bez różnicowania.
- Sprawdzono resztki pod kątem białego szumu i jest to czysto losowy
Poniżej znajduje się kod R i wykresy:
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) Symulacja wykresu
AR (1) z trendem deterministycznym
ARIMAX Resztkowy PACF z tendencją jako egzogenną. Residulas są losowe, bez pozostawionego wzoru
Jak widać powyżej, modelowanie trendu deterministycznego jako zmiennej egzogenicznej w modelu ARIMAX eliminuje potrzebę różnicowania. Przynajmniej w przypadku deterministycznym działało. Zastanawiam się, jak to by się zachowało z tendencją stochastyczną, którą bardzo trudno przewidzieć lub modelować.
Aby odpowiedzieć na drugie pytanie, TAK, wszystkie ARIMA, w tym ARIMAX, muszą stać na miejscu. Przynajmniej tak mówią podręczniki.
Ponadto, jak skomentowano, zobacz ten artykuł . Bardzo jasne wyjaśnienie trendu deterministycznego vs. trendu stochastycznego i sposobu ich usunięcia, aby stał się trendem stacjonarnym, a także bardzo ładne badanie literatury na ten temat. Używają go w kontekście sieci neuronowej, ale jest to przydatne w przypadku ogólnego problemu szeregów czasowych. Ich ostatecznym zaleceniem jest, gdy jest wyraźnie zidentyfikowany jako trend deterministyczny, zniechęcanie liniowe, w przeciwnym razie zastosuj różnicowanie, aby uszeregować szeregi czasowe. Jury wciąż tam jest, ale większość badaczy cytowanych w tym artykule zaleca różnicowanie zamiast linearnego zniechęcania.
Edytować:
Poniżej znajduje się losowy spacer z procesem stochastycznym z wykorzystaniem dryfu, z wykorzystaniem zmiennych egzogenicznych i różnic. Oba wydają się dawać tę samą odpowiedź iw istocie są takie same.
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
Mam nadzieję że to pomoże!