本章介绍第一类非常重要的模型:自回归滑动平均模型(ARMA)。在真实案例中,ARMA模型也被高频的使用到,更是后面模型的基础,反正,时间序列是绕不过去ARMA模型的。
2.1 一般线性过程
ARMA模型属于一大类过程(模型),即一般线性过程。一听到线性过程,是不是就觉得不难了? 事实也是如此,别怕,干!
那什么叫线性过程呢?对一时间序列\(\{Y_t\}\),比如就是2017年06月 27日的上证指数。则其可表示成现在与过去白噪声的加权线性组合:
\[Y_t = e_t + \psi_1e_{t-1} + \psi_2e_{t-2} + \dots \quad t = 0,\pm1,\pm2,\dots
\]
其中{\(e_t\)}代表白噪声序列,\(\{\psi_j\} = \{\psi_j : j = 0,1,2,…\}\)为一实数列(可认为\(\psi_0\)为1)。考虑到收敛问题,需加一个限制条件:\(\sum_{j =0}^{\infty} \psi_j^2 <+\infty\)。
2.2 滑动平均过程
2.2.1 一阶滑动平均过程
在介绍ARMA模型前,先介绍一些它的简化版本,这样循序渐进,慢慢深入,痛苦也会少一点,快乐也就多一点。
最先介绍的当然是滑动平均(Moving Average, MA),而且是滑动平均的最简版:一阶滑动平均。
对于一阶滑动平均{\(X_t\)}:
\[X_t = e_t + \theta e_{t-1} \quad t = 0,\pm1,\pm2,\dots
\]
通常称{Xt} 为MA(1)序列。
接下来要探讨统计特征啦(以后,再学习一些模型时,都会经历这一步,其实这才是重点啊,因为这些特征告诉我们模型的特性,那也就暗示了模型的应用场景啊!当然,从应用的层面,也不需要你知道怎么推导,故只需关注每个公式最后的等号就可以了,当然如果想加深理解、记忆,每个公式仔细看是有必要的)
\[E(Y_t) = E(e_t + \theta e_{t-1}) = 0
\]
\[varX_t = var(e_t + \theta e_{t-1}) = \sigma^2(1 + \theta^2)
\]
\[cov(X_t,X_{t-1}) = cov(e_t + \theta e_{t-1}, e_{t-1} + \theta e_{t-2}) = \theta \sigma^2
\]
\[cov(X_t,X_k) = cov(e_t+\theta e_{t-1}, e_k + \theta e_{k-1}) = 0, \quad k \ge 2.
\]
因此,对于MA(1),自协方差函数\(\gamma_k\)和自相关系娄\(\rho_k\):
\[\left.
\begin{aligned}
\gamma_0 = \sigma^2(1+\theta^2),\quad \rho_0 = 1\\
\gamma_1 = \theta \sigma^2,\quad \rho_1 = \frac{\theta}{1+\theta^2}\\
\gamma_k = 0,\quad \rho_k = 0, k\ge 2.
\end{aligned}
\right\}
\]

2.2.2 q阶滑动平均— MA(q)序列
任给定q个实数\(\theta_1,\theta_2,\dots,\theta_q(\theta q \ne 0)\),则MA(q) {\(X_t\)}序列:
\[X_t = e_t +\theta_1 e_{t-1} + \theta_2 e_{t-2}+ \dots+\theta_q e_{t-q},\quad t = 0,\pm1,\pm2,\dots
\]
可见,MA(q)与MA(1)是非常类似的,只不过有变得繁琐而已(注意,是‘繁’不是‘难’)。
比如处协方差函数\(\gamma_k\)和自相关函数\(\rho_k\)( 因\(e_t\)系数为一,自然地,约定\(\theta_0 = 1\)):
\[\gamma_k = \left\{
\begin{aligned}
\sigma^2(\theta_k + \theta_1\theta_k+\dots + \theta_{q - k}\theta_q), &\quad& 0\le k \le q\\
0,\quad \quad \quad \quad \quad &\quad& k > q.
\end{aligned}
\right.
\]
\[\rho_k = \left\{
\begin{aligned}
\frac{\theta_k + \theta_1\theta_k+\dots + \theta_{q - k}\theta_q}{1+\theta_1^2+\dots+\theta_q^2}, &\quad& 0\le k \le q\\
0,\quad \quad \quad \quad \quad &\quad& k > q.
\end{aligned}
\right.
\]
为使上面的等式可识别(‘可识别’ 可简单的理解为参数可估)需加一些限制,比如:
\[1 + \theta_1 z +\theta_2 z^2 +\dots + \theta_q z^q \ne 0, |z|\le 1.
\]
当然,这个条件对等式成立本身没有影响,只是为了参数可识别而已,对于应用来说,其实可忽略,因为实际应用时,默认参数可识别,如果最终结果不符,我们就会换到其他模型了(尴尬~)。这也是学院派与经验派(或务实派)的一个区别吧。
2.3平稳自回归过程
另一个ARMA的简化版即为自回归(Auto Regression,AR)过程。如MA我们先介绍一阶自回归(AR(1))开始。
2.3.1 一阶自回归过程
对于一阶自回归序列{\(X_t\)}(AR(1)):
\[X_t - \phi X_{t-1} =e_t, \quad t = 0,\pm1,\pm2,\dots
\]
其中白噪声{\(e_t\)} ~ WN(0,\(\sigma^2\)),也被称为新息项,因其是过去所不包含的,新加入的;\(|\phi| <1\), 否则会发生‘爆炸’,可以很容易知道,忽略白噪声,上式就是一个以\(\phi\)为等比的数列,假设 \(\phi = 1.5\)咱们来看下(9)式的一段图像(假设\(X_0 = 0\)):

上图可以看到,t还没到20, Xt 已经达到-1000了。
正如刚刚提到,AR序列类似等比数列:
\[\begin{aligned}
X_t & = \phi X_{t-1} +e_t &\\
& = e_t + \phi(\phi X_{t-2} + e_{t-1})&\\
& = e_t + \phi e_{t-1} + \phi^2 X_{t-2}&\\
&\vdots \quad \quad \quad \vdots \quad\quad \quad \vdots&\\
& = \sum_{i = 0}^N \phi^ie_{t-i} + \phi^{N+1} X_{t - N - 1}, \ (N \ge 1)&
\end{aligned}
\]
注意,这里还是要求\(|\phi|<1\).
于是:
\[X_t = \sum_{i = 0}^\infty \phi^ie_{t-i},\quad t = 0,\pm1,\pm2,\dots
\]
故,{\(X_t\)}又被称为指数平滑序列。
对(9)式可写成:
\[X_t = \phi X_{t-1} +e_t
\]
对两边求方差即可得到:
\[\gamma_0 = \phi^2 \gamma_0 + \sigma^2
\]
对\(\gamma_0\)求解:
\[\gamma_0 = \frac{\sigma^2}{1 - \phi^2}
\]
\[\begin{aligned}
\gamma_k & = E(X_tX_{t-k}) - EX_tEX_{t-k}&\\
& = E\left(\sum_{i = 0}^{\infty}\phi^ie_{t-i}\sum_{j = 0}^{\infty}\phi^j e_{t-k-j}\right) - 0&\\
& = E\left( \sum_{i = 0}^{\infty}\sum_{j=0}^\infty\phi^{i+j}e_{t-i}e_{t-k-j}\right)\\
& = \sum_{i = 0}^{\infty}\sum_{j = 0}^{\infty}\phi^{i +j}E(e_{t-i}e_{t-k-j})&\\
& = \sum_{j = 0}^{\infty}\phi^{j+k+j} \sigma^2\quad (其实这里有个trick,即 i = j +k)&\\
& = \phi^k \frac{\sigma^2}{1 - \phi^2} = \phi^k \gamma_0. \quad k = 0,1,2,\dots
\end{aligned}
\]
再强调一遍,如果只是想了解下时间序列,只是想应用,那就只关注等式的最后一个等号就可以了。
上式为自协方差函数,根据\(\gamma_k\),可求得:
\[\rho_k = \frac{\gamma_k}{\gamma_0} = \phi^k,\quad k = 0,1,2,\dots
\]
2.3.2 p阶平稳自回归序列
怎么样,公式有点多,醉没醉?可以休息下再看,什么再来一壶,OK!AR(p)继续!
AR(p)序列\(\{X_t\}\):
\[X_t - \phi _1X_t - \dots -\phi_p X_t-p = e_t,\quad t = 0,\pm1,\pm2,\dots
\]
其中\(\phi_1,\phi_2,…\phi_p\)为p个实数,平稳性条件:\(1 - \phi_1z - \dots\phi_pz^p \ne 0,\ \ |z|\le 1\)
对于线性表示,经过‘不太复杂’的推导,可得:
\[X_t = e_t + \psi_1 e_{t-1} + \psi_2 e_{t-2} +\dots
\]
其中系数\(\{\psi_j : j = 1,2,\dots\}\)由下式确定:
\[\frac{1}{1 - \phi_1 z -\dots - \phi_p z^p} = 1 + \psi_1z + \psi_2 z^2 + \dots
\]
利用{\(X_t\)}的线性表式(16)式,可得一个重要等式:
\[E(X_{t-k}e_t) = 0, \quad k = 1,2,\dots
\]
下面来求解AR(p)序列的自相关系数\(\rho_k\):
在(15)式两边同乘\(X_{t-k}, (K \ge 1)\),
\[X_tX_{t-k} - \phi_1 X_{t-1}X_{t-k} - \dots - \phi_pX_{t-p}X_{t-k} = X_{t-k}e_t
\]
两边同求数学期望:
\[\gamma_k - \phi_1 \gamma_{k-1} - \dots - \phi_p\gamma_{k -p} = 0, k = 1,2,\dots
\]
同除\(\gamma_0\):
\[\rho_k = \phi_1\rho_{k-1} + \dots + \phi_p\rho_{k-p}, k =1,2,\dots
\]
分别令 \(k = 1,2,\dots,p\),可得如下线性方程组:
\[\left.
\begin{aligned}
\rho_ 1& =& \phi_1+\phi_2\rho_1 + \dots + \phi_p\rho_{p-1}\\
\rho_2 & = & \phi_1\rho_1 + \phi_2 +\dots+\phi_p\rho_{p-2}\\
&\vdots& \vdots \quad\quad \vdots\quad\quad\vdots\quad\quad\\
\rho_{p-1}& =& \phi_1\rho_{p-2}+\phi_2\rho_{p-3} +\dots+\phi_p\rho_1\\
\rho_p &=&\phi_1\rho_{p-1} + \phi_2\rho_{p-2}+\dots+\phi_{p}\quad
\end{aligned}
\right\}
\]
这就是著名的Yule-Walker方程。
上式写成矩阵形式更方便记忆:
\[\left(
\begin{aligned}
1\quad\rho_1\quad\dots\quad\rho_{p-1}\\
\rho_1\quad1\quad\dots\quad\rho_{p-2}\\
\vdots\quad\quad\vdots\quad\quad\vdots\quad\quad\vdots\\
\rho_{p-1}\quad\rho_{p-2}\quad\dots\quad1\\
\end{aligned}
\right)
\left(\begin{aligned}
\phi_1\\
\phi_2\\
\vdots\ \\
\phi_p\\
\end{aligned}
\right)
=
\left(\begin{aligned}
\rho_1\\
\rho_2\\
\vdots\ \\
\rho_p\\
\end{aligned}
\right)
\]
全是公式?!怎么搞?!举了例子呗:
例:设AR(2)序列{XT}:
\[X_t - X_{t-1} +\frac{1}{4} X_{t-2} = e_t,\quad t =0,\pm1,\pm2,\dots
\]
其中\(\{e_t\} \sim WN(0,1)\). 试求\(\{X_t\}\)的自相关系数\(\rho_1,\rho_2\).
解:
可知:\(\phi_1=1,\phi_2 = -\frac{1}{4}\).
则:
\[\left(
\begin{aligned}
1\quad\rho_1\\
\rho_1\quad1\\
\end{aligned}
\right)
\left(\begin{aligned}
\phi_1\\
\phi_2\\
\end{aligned}
\right)
=
\left(\begin{aligned}
\rho_1\\
\rho_2\\
\end{aligned}
\right)
\]
解得:
\[\rho1 = \frac{4}{5},\rho2 = \frac{11}{20}
\]
对时间序列建模,我们一般是要求回归参数\(\phi_k\)的。此问题对于MA(q)序列并不平凡,但对AR(p)序列,就相对容易得多,这也是为什么AR(p)序列更加常用的原因。有些同学可能会说,不就是对Yule-Walker方程求解嘛,比如矩阵形式,求个逆就OK了,Bingo!答对了,but,上面式子中的自相关系数\(\rho_k\)是用\(\phi_k\)表示的,低阶可能还好解,高阶就等着崩溃吧,所以实际数值计算过程中,并不用这种理论上可行,但实际难于操作的方式,而是用一种叫递推迭代算法(Durbin-Levinson算法)。
这里只给出公式就够了:
\[\left.
\begin{array}
\\
\phi_{1,1} = \rho_1,\\
\phi_{k+1,k+1} = \frac{\rho_{k+1}-\phi_{k,1}\rho_k - \dots-\phi_{k,k}\rho_1}{1-\phi_{k,1}\rho_1-\dots-\phi_{k,k}\rho_k},\quad 1\le k\le p -1\\
\phi_{k+1,j} = \phi_{k,j} - \phi_{k+1,k+1}\phi_{k,k+1-j}, \quad 1\le j\le k
\end{array}
\right\}
\]
2.4 平稳自回归滑动平均序列
Finaly, 终于到了自回归滑动平均(Auto Regression Moving Average,ARMA(p,q))序列{\(X_t\)},当然上面也都是ARMA序列,只不过是简化版本而已。
ARMA(p,q)序列是满足下面差分方程的序列(参数意义同上):
\[X_t - \phi_1X_{t-1} - \dots-\phi_pX_{t-p} = e_t +\theta_1e_{t-1} +\dots+\theta_qe_{t-q}
\]
为了可识别,需有些限制条件:
\[\left.
\begin{array}
\Phi(z) = 1 -\phi_1z - \dots-\phi_pz^p\ne 0, |z| \le 1\\
\Theta(z) = 1+\theta_1z+\dots+\theta_qz^q \ne 0,|z|\le 1\\
\quad\quad\quad\quad\quad\Phi(z) 与\Theta(z)互质
\end{array}
\right\}
\]
2.5 总结
今天讲了ARMA(p,q)模型,这个模型其实还是基础模型,但我与大家同感,尽管是基础模型,可还是很复杂,没办法,时间序列这一数据类型决定了其相关的模型是不平凡的。
不过,也不用担心,虽然公式多了点(是在我尽力规避不必要公式后,还有这么多,😢),你只需要知道每个公式最后的等号就好了(这是第三遍了,足见其重要😜)。
模型逻辑还是清晰的,AR,MA,弄懂,ARMA可简单理解成二者的合并(虽然推导方式不一样了),这样便于理解。模型阶数实际中一般不会很大,所以也不用担公式复杂,不易应用。
最后一句: Hold住,也许下一个改世界的人就是你。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步