时间序列分析:ARIMA 过程

1. 定义

  如果序列 $\{X_t\}$ 不是平稳的,但它的 $d$ 次差分

\begin{equation}
W_t = \nabla^d X_t = (1 – B)^d X_t \tag{1}
\end{equation}

是一个平稳的 $\mathrm{ARMA}(p, q)$ 过程

\begin{equation}
W_t = \phi_1 W_{t-1} + \phi_2 W_{t-2} + \cdots + \phi_p W_{t-p} + e_t + \theta_1 e_{t-1} + \cdots + \theta_q e_{t-q}
\end{equation}

\begin{equation}
\phi(B)W_t = \theta(B)e_t \tag{2}
\end{equation}

则称 $\{X_t\}$ 为自回归滑动平均求和过程 $\mathrm{ARIMA}(p,d,q)$。由式 $(1)$、$(2)$,$\{X_t\}$ 可以表示成

\begin{equation}
\phi(B)\nabla^d X_t = \theta(B)e_t \tag{3}
\end{equation}

\begin{equation}
\phi(B)(1 – B)^d X_t = \theta(B)e_t \tag{4}
\end{equation}

  实际应用中,差分的次数(即 $d$)通常不会太大,通常在一阶或二阶差分后,序列就变成了平稳的了,过多次差分可能会引入额外的依赖。

  注意到 $\phi(B)(1 – B)^d = 0$ 有 $d$ 个根在单位圆上(称为单位根,如 $B = 1$),说明 $\{X_t\}$ 是非平稳的。如果 ACF 的衰减非常慢,则说明可能需要进行差分。如果时间序列 $X_t$ 的 $d$ 阶差分 $\nabla^d X_t$ 是平稳的,则称 $X_t$ 为 $d$ 阶单整的,记为 $I(d)$,也称序列 $X_t$ 有 $d$ 个单位根。随机游走 $X_t = X_{t-1} + e_t$ 可以看成是 $\mathrm{ARIMA}(0, 1, 0)$,有一个单位根。

2. 模拟

  模拟不同参数的 $\mathrm{ARIMA}(1, 1, 1)$ 过程如图 1、图 2所示。

set.seed(42)
arima.1 <- arima.sim(n = 100, list(order = c(1,1,1), ar = c(0.7), ma = c(0.2)))
plot.ts(arima.1, type = "o",
        main=expression(paste("ARIMA(1, 1, 1), ", phi, "=0.7, ", theta, "=0.2")), ylab = "x")

图 1

set.seed(42)
arima.2 <- arima.sim(n = 100, list(order = c(1,1,1), ar = c(-0.7), ma=c(-0.2)))
plot.ts(arima.2, type = "o",
        main=expression(paste("ARIMA(1, 1, 1), ", phi, "=-0.7, ", theta, "=-0.2")), ylab = "x")

图 2