正如下面的经验所示,在 ARIMAX 中使用趋势变量消除了差分的需要,并使序列趋势平稳。这是我用来验证的逻辑。
- 模拟 AR 流程
- 添加了确定性趋势
- 使用以趋势建模的 ARIMAX 作为外生变量,对上述序列进行无差分。
- 检查了白噪声的残差,它是纯随机的
以下是 R 代码和绘图:
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) 模拟图
具有确定性趋势的 AR(1)
趋势为外生的 ARIMAX Residual PACF。残差是随机的,没有留下任何图案
如上所示,在 ARIMAX 模型中将确定性趋势建模为外生变量否定了差分的需要。至少在确定性情况下它起作用了。我想知道这对于很难预测或建模的随机趋势会如何表现。
要回答您的第二个问题,是的,包括 ARIMAX 在内的所有 ARIMA 都必须固定。至少教科书是这么说的。
此外,如评论,请参阅这篇文章。关于确定性趋势与随机趋势的非常清晰的解释以及如何删除它们以使其趋势平稳,以及关于该主题的非常好的文献调查。他们在神经网络上下文中使用它,但它对一般时间序列问题很有用。他们的最终建议是,当它被明确识别为确定性趋势时,进行线性去趋势,否则应用差分使时间序列平稳。陪审团仍然存在,但本文中引用的大多数研究人员建议使用差分而不是线性去趋势。
编辑:
下面是带有漂移随机过程的随机游走,使用外生变量和差分 arima。两者似乎都给出了相同的答案,本质上它们是相同的。
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