第 02a 章 平稳性、自相关与 ARMA 模型
对应 Tsay 第 2 章前半部分(2.1–2.6 节)。本章建立线性时间序列的基本语言:平稳性、自相关函数、白噪声与线性过程,以及三类基本模型 AR、MA、ARMA 的性质、识别、估计、诊断与预测。第 02b 章接着讨论单位根、季节性、带时间序列误差的回归与长记忆。
学习目标
读完本章,你应当能够:
- 区分严平稳与弱平稳,计算并解释样本自相关函数(ACF),用 \(\sqrt T\hat\rho_\ell\)、Bartlett 公式和 Ljung–Box \(Q(m)\) 检验序列相关。
- 推导 AR(1)、AR(2) 的均值、方差、ACF 和平稳条件,用特征根判断平稳性与"随机周期",计算周期长度。
- 用 PACF 和 AIC/BIC 给 AR 模型定阶,用条件最小二乘估计,并用自由度调整后的 Ljung–Box 检验残差。
- 掌握 MA 模型的 ACF 截尾、可逆性、条件/精确似然估计,以及 ARMA 模型的 EACF 识别方法。
- 用 ARMA 的 AR 表示、MA 表示(脉冲响应)推导多步预测和预测误差方差,解释均值回复并计算半衰期。
读前导读
这一章在解决什么问题
这一章回答一个朴素的问题:过去的收益能不能线性地预测明天的收益,能预测多少,预测误差多大。
你在 CFA 二级的 Quantitative Methods 里学过时间序列一节:AR(1)、均值回复水平 \(b_0/(1-b_1)\)、用残差自相关检验模型是否充分、单位根与协整的概念。本章是那一节的完整版。CFA 告诉你"AR(1) 的均值回复水平是 \(b_0/(1-b_1)\)",本章告诉你为什么(对平稳方程两边取期望),以及 AR(2)、MA、ARMA 这些 CFA 没展开的模型长什么样、怎么识别、怎么预测。
几个连接点帮你定位:
- 自相关函数(ACF) 就是"收益和自己滞后 \(\ell\) 期的相关系数",和你算两只股票的相关系数是同一个公式。
- AR 模型 形式上就是一个回归,解释变量是被解释变量自己的过去值。所以估计用最小二乘,你已经会了;新东西是平稳性条件和预测的递推。
- 均值回复与半衰期:配对交易、利率模型(Vasicek)里都用到。AR(1) 系数 0.9 意味着偏离每期保留 90%,约 6.6 期衰减一半。
- MA 模型 在金融中的典型来源是买卖价反弹:成交价在 bid 和 ask 之间来回跳,制造出负的一阶自相关。
需要先想起来的数学
1. 期望和协方差的线性运算。 本章几乎每个推导都只用三条规则:\(E(aX+bY)=aE(X)+bE(Y)\);\(\operatorname{Cov}(aX,bY)=ab\operatorname{Cov}(X,Y)\);独立(或不相关)变量的协方差为零。典型手法是"方程两边乘以 \(r_{t-\ell}\) 再取期望",得到自协方差之间的关系。见 第 00 册第 07 章 概率中的分析工具。
2. 几何级数。 \(1+x+x^2+\cdots=1/(1-x)\),要求 \(|x|<1\);平方和 \(1+x^2+x^4+\cdots=1/(1-x^2)\)。AR(1) 方差 \(\sigma_a^2/(1-\phi_1^2)\) 就是 \(\sigma_a^2(1+\phi_1^2+\phi_1^4+\cdots)\)。和永续年金现值 \(C/r\) 是同一类公式。见 第 00 册第 04 章 级数与收敛。
3. 二次方程与复数。 特征方程 \(1-\phi_1x-\phi_2x^2=0\) 是二次方程,判别式小于零时有一对复数根 \(a\pm bi\)(\(i^2=-1\))。复数的模 \(\sqrt{a^2+b^2}\) 是它到原点的距离;"单位圆外"就是模大于 1。复根意味着序列有周期性摆动,周期由复数的辐角决定。见 第 00 册第 06 章 线性代数速成(特征值部分)和 第 00 册第 08 章 读懂数学证明与符号。
4. 差分方程(递推式)。 \(\rho_\ell=\phi_1\rho_{\ell-1}\) 这样"当前值由前几个值决定"的式子叫差分方程。一阶的解是 \(\rho_\ell=\phi_1^\ell\rho_0\),就像复利 \(V_n=(1+r)^nV_0\)。二阶的解是两个"复利"的组合,底数就是特征根。
5. 卡方分布与自由度。 \(k\) 个独立标准正态的平方和服从 \(\chi^2_k\)。Ljung–Box 统计量本质上是把 \(m\) 个标准化的样本自相关平方后加总。
怎么读这一章
核心必读:2.1 平稳性、2.2 ACF 与 Ljung–Box、2.4.1 AR(1)、2.6 预测与半衰期、2.7.1–2.7.2 MA 的定义与 ACF 截尾、2.8.5 中的 MA 表示与 (2.34)。这些在量化工作中天天用。2.4.2 AR(2) 的特征根和随机周期第一次可以只记结论("复根 → 周期摆动;根的模 < 1 → 平稳"),跳过周期公式的推导。2.8.3 EACF 只需理解"找 O 三角左上顶点"的规则,实际工作中更多用信息准则。2.7.4 精确似然与条件似然的区别可以只看结论。建议顺序:2.1 → 2.2 → 2.3 → 2.4.1 → 2.6 → 2.5 → 2.7 → 2.8,最后回头看 2.4.2。
2.0 本章的出发点
第 01 章说过,单变量建模的核心是条件分布 \(F(r_t\mid r_{t-1},r_{t-2},\dots)\)。本章只处理其中最简单也最重要的一部分:条件均值是过去值的线性函数。把资产收益看作随时间排列的随机变量 \(\{r_t\}\),线性时间序列试图刻画 \(r_t\) 与 \(t\) 之前信息的线性关系,核心工具是序列相关(serial correlation),又称自相关(autocorrelation)。
参考书:Box–Jenkins–Reinsel(1994)第 2–3 章、Brockwell–Davis(1996)第 1–3 章。
2.1 平稳性
严平稳(strictly stationary):对任意正整数 \(k\) 和任意时刻 \((t_1,\dots,t_k)\),\((r_{t_1},\dots,r_{t_k})\) 与 \((r_{t_1+t},\dots,r_{t_k+t})\) 的联合分布相同,即联合分布对时间平移不变。这个条件很强,几乎无法用数据验证。
弱平稳(weakly stationary):
- (a) \(E(r_t)=\mu\) 为常数;
- (b) \(\operatorname{Cov}(r_t,r_{t-\ell})=\gamma_\ell\) 只依赖滞后 \(\ell\),不依赖 \(t\)。
直观上,弱平稳序列的时序图围绕一个固定水平、以大致恒定的幅度波动。正是这种"时间不变性"让我们能用过去推断未来。
两者关系:弱平稳隐含前两阶矩有限;严平稳且前两阶矩有限可推出弱平稳,反之一般不成立;但对正态序列二者等价。本书主要研究弱平稳序列。
自协方差(autocovariance)\(\gamma_\ell=\operatorname{Cov}(r_t,r_{t-\ell})\) 有两条基本性质:\(\gamma_0=\operatorname{Var}(r_t)\);\(\gamma_{-\ell}=\gamma_\ell\)(在定义中令 \(t\) 换成 \(t+\ell\) 即得)。
金融中通常假设收益弱平稳。实证上可以把样本分成几段,检查各段统计量是否一致。
白话解释:为什么要平稳?因为我们手上只有一条历史路径,却想估计"均值""相关系数"这些总体量。如果均值每天都在变,那 2015 年的数据对估计 2025 年的均值毫无帮助。平稳假设说的是"游戏规则不随时间变",这样过去 1000 天就像同一个总体的 1000 次抽样,样本均值、样本自相关才有意义。 金融例子:股价不平稳(没有固定水平,十年前的价格不能告诉你今天价格的"均值");日收益近似平稳(均值在 0 附近、波动幅度大致在一个范围内)。这就是 1.1 节说"研究收益率而不是价格"的统计理由。 注意弱平稳只约束前两阶矩,不要求分布不变。GARCH 序列(第 03a 章)条件方差每天在变,但无条件方差是常数,仍然弱平稳。
2.2 相关系数与自相关函数
2.2.1 相关系数
度量线性相依强度,\(-1\le\rho\le1\),对称。\(\rho=0\) 称不相关;若 \(X,Y\) 联合正态,不相关等价于独立。样本估计
2.2.2 自相关函数 ACF
弱平稳序列 \(r_t\) 与其滞后 \(r_{t-\ell}\) 的相关系数称滞后 \(\ell\) 的自相关,作为 \(\ell\) 的函数称自相关函数(autocorrelation function, ACF)。由于弱平稳下 \(\operatorname{Var}(r_t)=\operatorname{Var}(r_{t-\ell})=\gamma_0\),
性质:\(\rho_0=1\),\(\rho_\ell=\rho_{-\ell}\),\(|\rho_\ell|\le1\)。弱平稳序列无序列相关当且仅当对所有 \(\ell>0\) 有 \(\rho_\ell=0\)。
样本 ACF:
2.2.3 单个自相关的检验
- iid 情形:若 \(\{r_t\}\) iid 且 \(E(r_t^2)<\infty\),则对任意固定 \(\ell>0\),\(\hat\rho_\ell\) 渐近服从 \(N(0,1/T)\)(Brockwell–Davis 1991 定理 7.2.2)。所以检验 \(H_0:\rho_1=0\) 用 \(t=\sqrt T\hat\rho_1\);作图时常画 \(\pm2/\sqrt T\) 的界。
- Bartlett 公式:若 \(r_t=\mu+\sum_{i=0}^q\psi_ia_{t-i}\)(\(\psi_0=1\),\(a_t\) iid 零均值,即 MA(\(q\)) 过程),则对 \(\ell>q\),\(\hat\rho_\ell\) 渐近正态,均值 0,方差 \((1+2\sum_{i=1}^q\rho_i^2)/T\)。由此得到检验 \(H_0:\rho_\ell=0\) 的统计量
当序列是平稳高斯且 \(\rho_j=0\ (j\ge\ell)\) 时渐近标准正态,\(|t|>Z_{\alpha/2}\) 时拒绝。许多软件为简便起见对所有 \(\ell\) 都用 \(1/T\)(即默认 iid)。有限样本中 \(\hat\rho_\ell\) 有 \(O(1/T)\) 的偏差,但金融数据样本通常很大,影响不大。
2.2.4 混成检验(Portmanteau test)
金融应用常要联合检验多个自相关是否为零:\(H_0:\rho_1=\cdots=\rho_m=0\)。Box–Pierce(1970)统计量 \(Q^*(m)=T\sum_{\ell=1}^m\hat\rho_\ell^2\) 在 iid 下渐近 \(\chi^2_m\)。Ljung–Box(1978)做了小样本修正,提高了功效:
\(Q(m)>\chi^2_{m,\alpha}\) 或 p 值 \(\le\alpha\) 时拒绝。\(m\) 的选择影响功效,模拟研究建议 \(m\approx\ln T\);季节序列要关注季节周期倍数的滞后。
推导拆解:为什么是 \(\chi^2_m\)? 第一步:在 iid 下,每个 \(\hat\rho_\ell\) 近似服从 \(N(0,1/T)\),所以 \(\sqrt T\hat\rho_\ell\) 近似标准正态。 第二步:不同滞后的 \(\hat\rho_\ell\) 渐近独立。\(m\) 个独立标准正态的平方和服从 \(\chi^2_m\),这就是 Box–Pierce 的 \(Q^*(m)=\sum_{\ell=1}^m(\sqrt T\hat\rho_\ell)^2\)。 第三步:小样本里 \(\hat\rho_\ell\) 的方差其实更接近 \((T-\ell)/[T(T+2)]\) 而不是 \(1/T\),Ljung–Box 用这个更准的方差去标准化,就得到 (2.3) 中的权重 \(T(T+2)/(T-\ell)\)。\(T\) 很大时两者几乎一样。 数值感觉:\(T=1000\)、\(m=10\) 时 \(\chi^2_{10}\) 的 5% 临界值是 18.3。如果每个 \(\hat\rho_\ell\) 都约 0.04(单看都不显著,界是 0.063),\(Q\approx1000\times10\times0.0016=16\),仍不拒绝;但只要几个滞后同时偏大,联合检验就会抓到。这就是联合检验比逐个看更有功效的地方。
实例(原书图 2.1、2.2)。IBM 月简单收益与对数收益(1926–2008,\(T=996\))的样本 ACF 都在两倍标准误界内:简单收益 \(Q(5)=3.37\)(p=0.64)、\(Q(10)=13.99\)(p=0.17);对数收益 \(Q(5)=3.52\)(p=0.62)、\(Q(10)=13.39\)(p=0.20)。IBM 月收益无显著序列相关。而 CRSP 市值加权(VW)指数月收益:简单收益 \(Q(5)=29.71\)、\(Q(10)=39.55\);对数收益 \(Q(5)=28.38\)、\(Q(10)=36.16\),p 值都小于 0.0001。即指数收益比个股收益有更强的序列相依。
为什么?CAPM 的一种版本认为收益不可预测、应无自相关,检验零自相关常被当作检验有效市场假设。但价格形成机制和指数编制方式本身就可能引入自相关:买卖价反弹(bid–ask bounce)和非同步交易(nonsynchronous trading)——指数中部分成分股长时间没有成交,其价格"滞后"反映信息,造成指数收益正自相关(第 05 章;本套第 07 册)。高频数据中这些效应更明显。
2.3 白噪声与线性时间序列
白噪声(white noise):\(\{r_t\}\) 为具有有限均值和方差的 iid 序列;若还服从 \(N(0,\sigma^2)\),称高斯白噪声。白噪声所有滞后的 ACF 为零。实践中样本 ACF 都接近零就视为白噪声。注意本书的白噪声要求 iid,比"不相关"更强——第 03a 章会看到,收益常常不相关却不独立。
IBM 月收益接近白噪声,VW 指数则不是,说明对某些资产要先刻画序列相依再做别的分析。
线性时间序列(linear time series):
\(\{a_t\}\) 为零均值 iid 白噪声,\(a_t\) 代表 \(t\) 时刻到达的新信息,称新息(innovation)或冲击(shock);\(\psi_i\) 称 \(\psi\) 权重。弱平稳时,利用 \(a_t\) 互不相关,
方差有限要求 \(\psi_i^2\to0\),即很久以前的冲击影响逐渐消失。自协方差
推导拆解:(2.6) 的中间步骤。 把 \(r_t-\mu=\sum_i\psi_ia_{t-i}\) 和 \(r_{t-\ell}-\mu=\sum_j\psi_ja_{t-\ell-j}\) 相乘再取期望。乘开后是很多 \(\psi_i\psi_jE(a_{t-i}a_{t-\ell-j})\) 的和。 关键一步:\(a\) 互不相关,所以只有当两个下标指向同一时刻(\(t-i=t-\ell-j\),即 \(i=j+\ell\))时期望才非零,等于 \(\sigma_a^2\);其余全为零。 于是双重求和塌缩成单重求和 \(\sigma_a^2\sum_j\psi_{j+\ell}\psi_j\)。 金融直觉:可以把 \(r_t\) 想成一个"冲击的组合",\(\psi_i\) 是对 \(i\) 期前冲击的持仓权重。两期收益的协方差,等于它们共同持有的那些冲击的权重乘积之和,正如两个组合的协方差来自它们共同的风险暴露。
所以线性时间序列模型就是描述 \(\psi\) 权重模式的模型;ACF 完全由 \(\psi\) 权重决定。平稳时 \(\rho_\ell\to0\)。不是所有金融序列都是线性的(第 04a、04b 章讨论非线性)。
2.4 自回归(AR)模型
2.4.1 从 AR(1) 开始
VW 指数月收益滞后 1 阶自相关显著,提示 \(r_{t-1}\) 可以帮助预测 \(r_t\)。最简单的模型是 AR(1):
\(a_t\) 为零均值、方差 \(\sigma_a^2\) 的白噪声。形式上与简单线性回归相同,但有重要区别(解释变量是被解释变量自己的滞后,见 2.4.3 节 \(R^2\) 的讨论和第 02b 章)。AR(1) 也广泛用于随机波动率模型(把 \(r_t\) 换成对数波动率,第 03b 章)。
条件矩:\(E(r_t\mid r_{t-1})=\phi_0+\phi_1r_{t-1}\),\(\operatorname{Var}(r_t\mid r_{t-1})=\sigma_a^2\)。这是马尔可夫性质:给定 \(r_{t-1}\),\(r_t\) 与 \(r_{t-i}\ (i>1)\) 不相关。推广为 AR(\(p\)):
形式上是以 \(p\) 个滞后值为解释变量的多元回归。
均值。设平稳,两边取期望,\(\mu=\phi_0+\phi_1\mu\),故
均值为零当且仅当 \(\phi_0=0\)。用 \(\phi_0=(1-\phi_1)\mu\) 改写模型:
反复代入得到 MA(∞) 表示:
即 \(\psi_i=\phi_1^i\)。由此 \(r_{t-1}\) 只依赖 \(a_{t-1},a_{t-2},\dots\),所以 \(\operatorname{Cov}(r_{t-1},a_t)=0\)。
方差与平稳条件。对 (2.8) 取方差,利用 \(\operatorname{Cov}(r_{t-1},a_t)=0\):\(\operatorname{Var}(r_t)=\phi_1^2\operatorname{Var}(r_{t-1})+\sigma_a^2\)。平稳时 \(\operatorname{Var}(r_t)=\operatorname{Var}(r_{t-1})\),
方差为正有限要求 \(\phi_1^2<1\)。反过来,若 \(|\phi_1|<1\),由 (2.11) 与 (2.5)(2.6) 知均值、方差、自协方差都有限且不随时间变化。结论:AR(1) 弱平稳的充要条件是 \(|\phi_1|<1\)。 金融文献常写成 \(r_t=(1-\phi_1)\mu+\phi_1r_{t-1}+a_t\),\(\phi_1\) 度量动态相依的持续性(persistence)。
ACF。(2.10) 两边乘 \(a_t\) 取期望得 \(E[a_t(r_t-\mu)]=\sigma_a^2\);乘 \((r_{t-\ell}-\mu)\) 取期望得
于是 \(\rho_\ell=\phi_1\rho_{\ell-1}\),结合 \(\rho_0=1\) 得 \(\rho_\ell=\phi_1^\ell\):ACF 从 1 开始以速率 \(\phi_1\) 指数衰减;\(\phi_1<0\) 时正负交替(原书图 2.3 示 \(\phi_1=\pm0.8\))。
推导拆解:\(\ell>0\) 那一行是怎么来的。 第一步:(2.10) 两边乘以 \((r_{t-\ell}-\mu)\):\((r_t-\mu)(r_{t-\ell}-\mu)=\phi_1(r_{t-1}-\mu)(r_{t-\ell}-\mu)+a_t(r_{t-\ell}-\mu)\)。 第二步:取期望。左边是 \(\gamma_\ell\);右边第一项是 \(\phi_1\gamma_{\ell-1}\)(\(r_{t-1}\) 与 \(r_{t-\ell}\) 相隔 \(\ell-1\) 期);第三项为零,因为 \(r_{t-\ell}\) 只依赖 \(t-\ell\) 及以前的冲击,与未来的 \(a_t\) 不相关。 第三步:两边除以 \(\gamma_0\) 得 \(\rho_\ell=\phi_1\rho_{\ell-1}\),这是一个"每期乘 \(\phi_1\)"的递推,和复利同构。 \(\ell=0\) 时第三项变成 \(E[a_t(r_t-\mu)]=\sigma_a^2\)(\(r_t\) 里含有 \(a_t\) 本身),所以多出一个 \(\sigma_a^2\)。 数值:\(\phi_1=0.5\) 时 \(\rho_1=0.5\)、\(\rho_2=0.25\)、\(\rho_3=0.125\);VW 月收益 \(\phi_1\approx0.1\),\(\rho_2\) 已只剩 0.01,可预测性几乎只在一期内。
2.4.2 AR(2):特征根与随机周期
均值 \(\mu=\phi_0/(1-\phi_1-\phi_2)\)(需 \(\phi_1+\phi_2\ne1\))。中心化后乘 \((r_{t-\ell}-\mu)\) 取期望,得矩方程(moment equation)\(\gamma_\ell=\phi_1\gamma_{\ell-1}+\phi_2\gamma_{\ell-2}\ (\ell>0)\),于是
取 \(\ell=1\),利用 \(\rho_{-1}=\rho_1\) 得 \(\rho_1=\phi_1/(1-\phi_2)\);之后用 (2.13) 递推。
引入后移算子(back-shift operator)\(B\):\(B\rho_\ell=\rho_{\ell-1}\),\(Br_t=r_{t-1}\)(也有文献记作滞后算子 \(L\))。(2.13) 可写成二阶差分方程
这个差分方程决定 ACF 的形状,也决定预测的行为。对应的特征方程
的解为 \(x=\dfrac{\phi_1\pm\sqrt{\phi_1^2+4\phi_2}}{-2\phi_2}\),它们的倒数称特征根(characteristic roots)\(\omega_1,\omega_2\),满足 \(1-\phi_1B-\phi_2B^2=(1-\omega_1B)(1-\omega_2B)\)。
- 实根(\(\phi_1^2+4\phi_2\ge0\)):AR(2) 相当于一个 AR(1) 叠加在另一个 AR(1) 上,ACF 是两个指数衰减的混合。
- 复根(\(\phi_1^2+4\phi_2<0\)):两根共轭,ACF 呈阻尼正弦/余弦波(damping sine and cosine waves)。这在经济学中对应商业周期(business cycle)。随机周期的平均长度为
若特征方程的复数解写作 \(a\pm bi\),则 \(\phi_1=2a/(a^2+b^2)\)、\(\phi_2=-1/(a^2+b^2)\),周期等价地写成 \(k=2\pi/\cos^{-1}\big(a/\sqrt{a^2+b^2}\big)\)。(原书此处以特征根 \(a\pm bi\) 表述,此时 \(\phi_1=2a\)、\(\phi_2=-(a^2+b^2)\);两种写法得出同一个角度。)
原书图 2.4 画了四个平稳 AR(2) 的 ACF:(a) \(\phi_1=1.2,\phi_2=-0.35\)(实根);(b) \(\phi_1=0.6,\phi_2=-0.4\),\(0.36-1.6=-1.24<0\),复根,阻尼正弦;(c) \((0.2,0.35)\) 与 (d) \((-0.2,0.35)\) 均为实根、指数衰减。
平稳条件:AR(2) 平稳当且仅当两个特征根的模都小于 1,等价于特征方程两个解的模都大于 1("在单位圆外")。此时 (2.13) 保证 ACF 随滞后趋于 0。AR(1) 的特征根就是 \(\phi_1\),条件同为 \(|\phi_1|<1\)。
白话解释:特征根是什么、为什么它决定一切。 二阶递推 \(\rho_\ell=\phi_1\rho_{\ell-1}+\phi_2\rho_{\ell-2}\) 的解总能写成 \(\rho_\ell=c_1\omega_1^\ell+c_2\omega_2^\ell\),即两个"以 \(\omega\) 为底的复利"之和,\(\omega_1,\omega_2\) 就是特征根(把 \(\rho_\ell=\omega^\ell\) 代进递推,约掉 \(\omega^{\ell-2}\),得 \(\omega^2-\phi_1\omega-\phi_2=0\),正是特征根满足的方程)。 于是:\(|\omega|<1\),\(\omega^\ell\) 随 \(\ell\) 衰减到 0,过去的影响消失,序列平稳;\(|\omega|=1\),影响永不衰减(单位根,第 02b 章);\(|\omega|>1\),影响越滚越大(爆炸)。 复根时 \(\omega=|\omega|e^{\pm i\theta}\),\(\omega^\ell=|\omega|^\ell(\cos\ell\theta\pm i\sin\ell\theta)\):模控制衰减速度,角度 \(\theta\) 控制摆动频率,转一整圈需要 \(2\pi/\theta\) 期,这就是周期公式 \(k=2\pi/\theta\) 的来源。图 2.4(b) \(\phi_1=0.6\)、\(\phi_2=-0.4\):模 \(=\sqrt{0.4}\approx0.63\),周期约 5.8 期(练习 3)。 "特征根模 < 1"与"特征方程的解模 > 1"说的是同一件事,因为两者互为倒数。软件(如
polyroot、statsmodels的arroots)通常给后者,读输出时注意看是哪个。
例 2.1 美国季度实际 GNP 增长率(季调,1947Q2–1991Q1,176 个观测)。拟合 AR(3):
特征多项式 \(1-0.348B-0.179B^2+0.142B^3\) 近似分解为 \((1+0.521B)(1-0.869B+0.274B^2)\)。第一个因子贡献一个指数衰减(负根,正负交替);第二个因子 \(\phi_1^2+4\phi_2=0.869^2-4(0.274)=-0.341<0\),复根,证实存在随机商业周期,平均周期
约 3 年。若用第 04a 章的非线性模型分离扩张与收缩期,收缩期平均约 3 个季度、扩张期约 3 年,10.62 季度是两者的折中。
软件提示:R 中 arima(gnp, order=c(3,0,0)) 输出的 intercept 是序列均值(0.0077)而非常数项,\(\phi_0=(1-0.348-0.1793+0.1423)\times0.0077=0.0047\)。Python 的 statsmodels ARIMA 中 const 同样是均值。R 的 polyroot(c(1,-coef)) 求得特征方程的解 \(1.590\pm1.064i\)(模 1.913)和 \(-1.920\),都在单位圆外,平稳。
2.4.3 AR(\(p\)) 的一般性质
平稳时 \(E(r_t)=\phi_0/(1-\phi_1-\cdots-\phi_p)\);特征方程 \(1-\phi_1x-\cdots-\phi_px^p=0\) 的所有解的模都大于 1(等价于所有特征根的模小于 1)则平稳;ACF 满足 \((1-\phi_1B-\cdots-\phi_pB^p)\rho_\ell=0\ (\ell>0)\),图形是指数衰减与阻尼正弦的混合,拖尾而不截尾。
2.5 AR 模型的识别、估计与检验
2.5.1 偏自相关函数 PACF
阶数 \(p\) 要由数据决定(定阶,order determination)。第一种方法是偏自相关函数(partial autocorrelation function, PACF)。依次拟合
第 \(j\) 个回归的最后一个系数估计 \(\hat\phi_{j,j}\) 称滞后 \(j\) 的样本 PACF,含义是"在 AR(\(j-1\)) 基础上再加入 \(r_{t-j}\) 的额外贡献",思想与多元回归的偏 F 检验相同。对平稳高斯 AR(\(p\)):
- \(\hat\phi_{p,p}\to\phi_p\);
- 对所有 \(\ell>p\),\(\hat\phi_{\ell,\ell}\to0\);
- \(\ell>p\) 时 \(\hat\phi_{\ell,\ell}\) 的渐近方差为 \(1/T\)。
即 AR(\(p\)) 的样本 PACF 在滞后 \(p\) 处截尾(cuts off)。
金融直觉:PACF 和多因子回归里的"偏回归系数"是一回事。ACF 在滞后 2 处的值,混进了"\(r_{t-2}\) 通过 \(r_{t-1}\) 间接影响 \(r_t\)"的部分(AR(1) 里 \(\rho_2=\phi_1^2\neq0\),尽管模型中根本没有 \(r_{t-2}\))。PACF 在滞后 2 处问的是"控制住 \(r_{t-1}\) 之后,\(r_{t-2}\) 还有没有额外的解释力"。这就像在 CAPM 回归里加入 SMB 因子后,看它的系数是否显著:显著才说明它带来了市场因子之外的信息。AR(\(p\)) 里滞后超过 \(p\) 的值都不带额外信息,所以 PACF 截尾。
例(VW 月简单收益,1926–2008,\(T=996\))标准误约 \(1/\sqrt{996}\approx0.032\)。原书表 2.1 的 PACF(滞后 1–12)为 0.115、−0.030、−0.102、0.033、0.062、−0.050、0.031、0.052、0.063、0.005、−0.005、0.011。5% 水平下可识别为 AR(3) 或 AR(9),1% 水平下为 AR(3)。GNP 增长率的 PACF(原书图 2.6,界 \(\pm2/\sqrt{176}\))前三阶较大,提示 AR(3)。
2.5.2 信息准则
第二种方法是基于似然的信息准则(information criteria)。
AIC(Akaike 1973):
对高斯 AR(\(\ell\)) 化简为
\(\tilde\sigma_\ell^2\) 为 \(\sigma_a^2\) 的 MLE。第一项衡量拟合优度,第二项是惩罚函数(penalty function)。
BIC(Schwarz–Bayesian):
每个参数的惩罚,AIC 为 2,BIC 为 \(\ln T\)。\(T>e^2\approx7.4\) 时 BIC 惩罚更重,中大样本下BIC 倾向选更低阶。选择规则:对 \(\ell=0,\dots,P\) 计算,取最小值对应的阶数。
原书表 2.1 中 VW 收益的 AIC 在 \(p=9\) 最小(−5.849),BIC 在 \(p=1\) 最小(−5.833),\(p=3\) 次之(−5.831)。不同方法给出不同阶数,没有证据表明哪种方法在实践中总更好;问题的实质背景与模型的简洁性同样重要。(R 的 ar() 把 AIC 平移到最小值为 0 输出,GNP 例中 4 个候选为 27.847、2.742、1.603、0.000,选 AR(3)。)
2.5.3 参数估计
最常用的是条件最小二乘(conditional least squares):以前 \(p\) 个观测为条件,对 \(t=p+1,\dots,T\) 做多元回归,得拟合值 \(\hat r_t\) 与残差 \(\hat a_t=r_t-\hat r_t\),
(分母是有效观测数 \(T-p\) 减去参数个数 \(p+1\)。)若用条件似然法,\(\phi_i\) 的估计不变,\(\tilde\sigma_a^2=\hat\sigma_a^2\times(T-2p-1)/(T-p)\);有的软件用 \((T-2p-1)/T\) 调整。
VW 月收益 AR(3):
系数标准误 0.002、0.032、0.032、0.032,除滞后 2 外均在 1% 水平显著。系数都很小,说明序列相依虽然显著但很弱。\(\hat\mu=0.0091/(1-0.116+0.019+0.104)=0.009\),月均 0.9% 看似很小,长期意义却很大:年化简单总收益 \([\prod_{t=1}^{996}(1+R_t)]^{12/996}-1\approx0.093\),即 1926–2008 年约 9.3%/年;1926 年初投入 1 美元,2008 年末约值 1593 美元。
2.5.4 模型检验
充分的模型,其残差应为白噪声。检查残差 ACF 与 Ljung–Box 统计量。对 AR(\(p\)) 残差,\(Q(m)\) 渐近服从 \(\chi^2_{m-g}\),\(g\) 为模型中 AR 系数个数——自由度要扣除,因为拟合给残差施加了约束。若有不显著系数就简化,若残差仍有序列相关就扩展。多数软件不调整自由度(当 \(m\le g\) 时不调整可以理解),使用时要自己算。
VW 例:AR(3) 残差 \(Q(12)=16.35\),按 \(\chi^2_9\) 得 p=0.060,勉强不拒绝(若错按 \(\chi^2_{12}\) 则 p=0.176,显得过于乐观)。去掉不显著的滞后 2 项:
所有系数 1% 显著,\(Q(12)=16.83\),按 \(\chi^2_{10}\) 得 p=0.078,模型充分。
2.5.5 拟合优度
\(0\le R^2\le1\),越大越好,但只对平稳序列有意义:对单位根非平稳序列,不论真实模型如何,AR(1) 拟合的 \(R^2\) 随样本增大趋于 1——这是"伪高拟合"。\(R^2\) 随参数增加单调不减,故有调整 \(R^2\):\(\text{Adj-}R^2=1-\hat\sigma_a^2/\hat\sigma_r^2\),考虑了参数个数,但不再限于 \([0,1]\)。(作为参照,原书用 S-Plus 拟合 VW 的 AR(3),\(R^2\) 仅 0.0246——月度收益可预测部分很小,这是常态。)
2.6 AR 模型的预测
设预测原点(forecast origin)为 \(h\),预测步长(horizon)为 \(\ell\ge1\),\(F_h\) 为 \(h\) 时刻可得的信息集。在均方误差意义下最优的预测 \(\hat r_h(\ell)\) 满足
答案是条件期望 \(\hat r_h(\ell)=E(r_{h+\ell}\mid F_h)\)。
1 步预测:
误差方差 \(\sigma_a^2\)。正态时 95% 区间为 \(\hat r_h(1)\pm1.96\sigma_a\)。对线性模型 (2.4),\(a_{t+1}\) 既是 1 步预测误差,也是 \(t+1\) 时刻的冲击。实际中用估计参数得到的是条件预测,没有计入参数不确定性;考虑参数和模型不确定性的自然方法是贝叶斯预测(第 12b 章 12.11 节),样本大时两者接近。
2 步预测:
方差 \((1+\phi_1^2)\sigma_a^2\ge\sigma_a^2\):预测越远越不确定。
多步预测:
递推计算。对平稳 AR(\(p\)),\(\hat r_h(\ell)\to E(r_t)\),预测误差方差趋于无条件方差 \(\operatorname{Var}(r_t)\)——这称为均值回复(mean reversion)。
推导拆解:2 步预测误差为什么是 \(a_{h+2}+\phi_1a_{h+1}\)。 真实值:\(r_{h+2}=\phi_0+\phi_1r_{h+1}+\phi_2r_h+\cdots+a_{h+2}\)。 预测值:\(\hat r_h(2)\) 把式中唯一未知的 \(r_{h+1}\) 换成它的预测 \(\hat r_h(1)\),把 \(a_{h+2}\) 换成其期望 0。 两者相减:\(e_h(2)=\phi_1[r_{h+1}-\hat r_h(1)]+a_{h+2}=\phi_1a_{h+1}+a_{h+2}\),因为 \(r_{h+1}-\hat r_h(1)\) 正是 1 步误差 \(a_{h+1}\)。 两个冲击独立,方差相加:\((1+\phi_1^2)\sigma_a^2\)。一般地,\(\ell\) 步误差是未来 \(\ell\) 个冲击按 \(\psi\) 权重的组合,这就是 (2.34)。 白话解释:预测得越远,中间"还没发生的冲击"越多,误差就越大;但对平稳序列,远期冲击的影响打了折扣,误差方差不会无限增大,而是封顶在序列本身的方差。换句话说,预测很远的未来时,模型能给的最好答案就是"长期均值",不确定性就是"长期波动"。
半衰期(half-life)。对 AR(1),记 \(x_t=r_t-\mu\),则 \(\hat x_h(\ell)=\phi_1^\ell x_h\)。偏离衰减到一半所需步数满足 \(\phi_1^\ell=1/2\):
例如 \(\phi_1=0.9\) 时半衰期约 6.6 期,\(\phi_1=0.97\) 时约 22.8 期。
原书表 2.2:用 VW 前 984 个观测重估 AR(3):\(r_t=0.0098+0.1024r_{t-1}-0.0201r_{t-2}-0.1090r_{t-3}+a_t\),\(\hat\sigma_a=0.054\)。以 \(h=984\)(2007 年 12 月)为原点做 1–12 步预测:预测值 0.0076、0.0161、0.0118、0.0099、0.0089、0.0093、0.0095、…;标准误 0.0534、0.0537、0.0537、0.0540、…。因序列相依弱,预测值和标准误很快收敛到样本均值 0.0095 和标准差 0.0540。而 2008 年的实际值是 −0.0623、−0.0220、−0.0105、0.0511、0.0238、−0.0786、−0.0132、0.0110、−0.0981、−0.1847、−0.0852、0.0215。除 2008 年 10 月(−18.47%)外,实际收益都落在 95% 预测区间内。这个例子说明了线性模型在危机期的局限:它能给出合理的区间,却无法预见尾部事件。
2.7 移动平均(MA)模型
2.7.1 从受约束的无穷阶 AR 引出 MA
第 05 章将说明,买卖价反弹会在收益中引入 MA(1) 结构。Tsay 用一个巧妙的角度引入 MA:把它看作参数受约束的无穷阶 AR。无穷阶 AR 参数太多不现实,令所有系数由一个参数决定,\(\phi_i=-\theta_1^i\):
平稳需 \(|\theta_1|<1\),此时远期收益的贡献指数衰减。移项写成
对 \(t-1\) 写同样的式子
(2.18) 减去 \(\theta_1\times\)(2.19),左边只剩 \(r_t\):
除常数外,\(r_t\) 是两个冲击 \(a_t,a_{t-1}\) 的加权平均,故称移动平均模型。一般形式:
符号约定:本书 MA 系数前用减号;R 的
arima和 Python 的statsmodels用加号 \(r_t=c_0+a_t+\theta_1a_{t-1}\)。读软件输出时要换号。
2.7.2 MA 模型的性质
平稳性:MA 模型是白噪声的有限线性组合,总是弱平稳。\(E(r_t)=c_0\)(常数项就是均值),
ACF:MA(1)(设 \(c_0=0\))两边乘 \(r_{t-\ell}\) 取期望,\(\gamma_1=-\theta_1\sigma_a^2\),\(\gamma_\ell=0\ (\ell>1)\),所以
ACF 在滞后 1 截尾。由于 \(|\theta_1|/(1+\theta_1^2)\le1/2\),MA(1) 的 \(|\rho_1|\) 不超过 0.5。MA(2):
一般 MA(\(q\)) 的 ACF 在滞后 \(q\) 截尾,是"有限记忆"(finite-memory)模型:\(q\) 期以前的信息对当前没有线性影响。
可逆性(invertibility):零均值 MA(1) 写成 \(a_t=r_t+\theta_1a_{t-1}\),反复代入得
即当前冲击是当前与过去收益的线性组合。直观上很久以前的收益影响应趋于零,故要求 \(|\theta_1|<1\),称模型可逆;\(|\theta_1|=1\) 时不可逆。可逆性保证我们能从观测到的收益唯一地"还原"冲击序列,这是估计和预测所必需的。
白话解释:为什么需要"唯一地还原"?因为 MA 模型存在"双胞胎"。\(\theta_1=0.5\) 和 \(\theta_1=2\) 两个 MA(1) 给出相同的 \(\rho_1\):\(-0.5/1.25=-0.4\),\(-2/5=-0.4\)。只看数据(只看 ACF),无法区分它们。可逆性约束 \(|\theta_1|<1\) 相当于约定"从一对双胞胎里永远选那个能用过去收益算出当前冲击的",模型因此可识别。 实际意义:预测时要用 \(a_h\),而 \(a_h\) 观测不到,只能由 \(a_t=r_t+\theta_1a_{t-1}\) 从头递推。\(|\theta_1|<1\) 时初始值 \(a_0=0\) 设错的影响会按 \(\theta_1^t\) 衰减掉;\(|\theta_1|\ge1\) 时误差不衰减甚至放大,算出来的残差毫无意义。
2.7.3 识别 MA 阶数
若 \(\rho_q\ne0\) 而 \(\rho_\ell=0\ (\ell>q)\),则 \(r_t\) 为 MA(\(q\))。用 ACF 定 MA 阶,正如用 PACF 定 AR 阶。
例:CRSP 等权(EW)指数月简单收益(1926–2008,原书图 2.8),样本 ACF 在滞后 1、3、9 显著(更高滞后有零星边缘显著,忽略),识别为
注意 ACF 还能直接指出哪些 MA 滞后非零,这一点 PACF 对 AR 做不到这么干净。
2.7.4 估计
MA 模型通常用极大似然估计,有两种算法:
- 条件似然法(conditional likelihood):假设初始冲击 \(a_t=0\ (t\le0)\),递推 \(a_1=r_1-c_0\),\(a_2=r_2-c_0+\theta_1a_1\),…,代入 (1.18) 得条件 MLE。
- 精确似然法(exact likelihood):把初始冲击作为附加参数联合估计。模型接近不可逆时精确法更好,但计算量更大;样本大时两者接近。
EW 指数例,条件 MLE:
标准误 0.003、0.031、0.031、0.031;残差 \(Q(12)=17.5\),按 \(\chi^2_9\) p=0.041(按 12 个自由度 p=0.132),模型还可改进。精确 MLE:
\(Q(12)=17.6\),p=0.040(9 个自由度),仅勉强充分。两种方法的差异可以忽略。
2.7.5 MA 模型的预测
MA(1):\(r_{h+1}=c_0+a_{h+1}-\theta_1a_h\),于是
\(a_h\) 可以设 \(a_0=0\) 后由 \(a_t=r_t-c_0+\theta_1a_{t-1}\) 递推得到(即拟合残差)。2 步:\(\hat r_h(2)=c_0\),\(e_h(2)=a_{h+2}-\theta_1a_{h+1}\),方差 \((1+\theta_1^2)\sigma_a^2\),正好是序列方差。一般 \(\hat r_h(\ell)=c_0\ (\ell\ge2)\):MA(1) 的均值回复只需一期。MA(2):\(\hat r_h(1)=c_0-\theta_1a_h-\theta_2a_{h-1}\),\(\hat r_h(2)=c_0-\theta_2a_h\),\(\hat r_h(\ell)=c_0\ (\ell>2)\)。一般 MA(\(q\)) 在 \(q\) 步后预测等于均值,误差方差等于序列方差。
原书表 2.3:EW 指数 MA(9)(精确 MLE,前 986 个观测重估),原点 \(h=986\)(2008 年 2 月),样本均值 0.0128、标准差 0.0736。1–10 步预测 0.0043、0.0136、0.0150、0.0144、0.0120、0.0019、0.0122、0.0056、0.0085、0.0128——第 10 步恰好等于均值;标准误从 0.0712 增至 0.0734,收敛到序列标准差。而实际值中有 −0.1209、−0.2060、−0.1366(次贷危机与雷曼倒闭),点预测偏离很大。
2.7.6 AR 与 MA 对照
| AR(\(p\)) | MA(\(q\)) | |
|---|---|---|
| ACF | 拖尾(指数衰减/阻尼正弦) | 在 \(q\) 截尾 |
| PACF | 在 \(p\) 截尾 | 拖尾 |
| 定阶工具 | PACF、AIC/BIC | ACF |
| 平稳性 | 需特征根在单位圆内 | 总平稳 |
| 可逆性 | 总可逆 | 需 MA 多项式零点在单位圆外 |
| 常数项 | \(\mu=\phi_0/(1-\sum\phi_i)\) | 常数即均值 |
| 多步预测 | 指数收敛到均值 | \(q\) 步后等于均值 |
2.8 ARMA 模型
2.8.1 ARMA(1,1)
纯 AR 或纯 MA 有时需要很高阶、很多参数。ARMA(Box–Jenkins–Reinsel 1994)把二者结合以实现参数节约(parsimony)。在金融收益上直接用 ARMA 的机会不多,但其概念对波动率建模至关重要:GARCH 可以看作 \(a_t^2\) 的一个(非标准的)ARMA 模型(第 03a 章)。
ARMA(1,1):
左边是 AR 部分,右边是 MA 部分。要求 \(\phi_1\ne\theta_1\),否则两边公因子 \((1-\phi_1B)\) 约掉后退化为白噪声。
性质。均值 \(\mu=\phi_0/(1-\phi_1)\),与 AR(1) 相同。设 \(\phi_0=0\),(2.25) 乘 \(a_t\) 取期望得
对 \(r_t=\phi_1r_{t-1}+a_t-\theta_1a_{t-1}\) 取方差,注意 \(r_{t-1}\) 与 \(a_{t-1}\) 相关(由 (2.26) 平移得 \(E(r_{t-1}a_{t-1})=\sigma_a^2\)):
平稳时
要求 \(|\phi_1|<1\):ARMA(1,1) 的平稳条件与 AR(1) 相同,MA 部分不影响平稳性。
自协方差:乘 \(r_{t-1}\) 取期望得 \(\gamma_1-\phi_1\gamma_0=-\theta_1\sigma_a^2\);乘 \(r_{t-\ell}\ (\ell>1)\) 得
所以
ACF 像 AR(1),但指数衰减从滞后 2 开始,不在任何有限滞后截尾;PACF 也不截尾,形状像 MA(1) 但衰减从滞后 2 开始。这正是 ARMA 难以用 ACF/PACF 定阶的原因。
2.8.2 一般 ARMA(\(p,q\))
用后移算子写成
简记 \(\phi(B)r_t=\phi_0+\theta(B)a_t\)。AR 多项式与 MA 多项式不能有公因子(否则可以降阶)。若 AR 多项式的所有特征根模长小于 1,则弱平稳,均值 \(E(r_t)=\phi_0/(1-\phi_1-\cdots-\phi_p)\)。
2.8.3 识别:扩展自相关函数 EACF
ACF 和 PACF 对 ARMA 定阶信息不足。Tsay & Tiao(1984)提出扩展自相关函数(extended autocorrelation function, EACF)。思想是:如果能一致地估计出 AR 部分,就能从序列中"滤掉" AR 部分,得到一个纯 MA 序列,再用其 ACF 识别 MA 阶数。具体做法是对每个候选 AR 阶 \(p\) 迭代回归求 AR 系数,构造滤波后序列,计算其各阶样本自相关。
输出是一个二维表,行为 AR 阶 \(p\)、列为 MA 阶 \(q\)。原书表 2.4 给出 ARMA(1,1) 的理论 EACF(X 表示非零,O 表示零,* 表示可零可非零):
| AR \ MA | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 0 | X | X | X | X | X | X | X | X |
| 1 | X | O | O | O | O | O | O | O |
| 2 | * | X | O | O | O | O | O | O |
| 3 | * | * | X | O | O | O | O | O |
| 4 | * | * | * | X | O | O | O | O |
| 5 | * | * | * | * | X | O | O | O |
关键特征是以 (1,1) 为左上顶点的 O 三角形。一般 ARMA(\(p,q\)) 的 O 三角左上顶点位于 \((p,q)\)。
实践中用简化表:\(|\text{EACF}|\ge2/\sqrt T\) 记 X,否则记 O。例:3M 公司月对数收益(1946-02—2008-12,755 个观测),ACF 在 1% 水平无显著序列相关。其简化 EACF(原书表 2.5)的 O 三角左上顶点在 (0,0);\(q=2,5,9,11\) 处有少数 X,但对应值仅 0.08–0.09,略大于 \(2/\sqrt{755}=0.073\),用 1% 临界值就都变成 O。结论:3M 月对数收益为 ARMA(0,0),即白噪声,与 ACF 一致。
信息准则法:对 \(0\le p\le P\)、\(0\le q\le Q\) 逐一计算 AIC/BIC 取最小。需要估计很多模型,也可能过度拟合。定阶后用条件或精确似然估计,残差 Ljung–Box \(Q(m)\sim\chi^2_{m-g}\),\(g\) 为 AR 与 MA 系数总数。
2.8.4 ARMA 的预测
其中 \(\ell-i\le0\) 时 \(\hat r_h(\ell-i)=r_{h+\ell-i}\)、\(a_h(\ell-i)=a_{h+\ell-i}\);\(\ell-i>0\) 时 \(a_h(\ell-i)=0\)(未来冲击的条件期望为零)。递推计算即可,误差方差见 (2.34)。
2.8.5 ARMA 的三种表示
(1) ARMA 表示 (2.28):紧凑,用于参数估计和递推预测。
利用多项式长除法定义
推导拆解:把后移算子 \(B\) 当成一个普通变量 \(x\) 来做代数,是这一节的核心技巧。以 ARMA(1,1) 为例求 \(\psi(B)\): 第一步:\(\psi(B)=\dfrac{1-\theta_1B}{1-\phi_1B}\)。 第二步:用几何级数展开分母,\(\dfrac1{1-\phi_1B}=1+\phi_1B+\phi_1^2B^2+\cdots\)(要求 \(|\phi_1|<1\),这就是平稳条件在代数里的体现)。 第三步:乘以 \((1-\theta_1B)\) 并合并同类项:\(B^1\) 的系数是 \(\phi_1-\theta_1\),\(B^2\) 的系数是 \(\phi_1^2-\theta_1\phi_1=\phi_1(\phi_1-\theta_1)\),依此类推,即 \(\psi_i=\phi_1^{i-1}(\phi_1-\theta_1)\)。 求 \(\pi(B)\) 完全对称,只是对分母 \(1-\theta_1B\) 展开,需要 \(|\theta_1|<1\)(可逆条件)。所以平稳性 = \(\psi\) 展开收敛,可逆性 = \(\pi\) 展开收敛,两者是一个硬币的两面。
显然 \(\psi(B)\pi(B)=1\)。ARMA(1,1) 的例子:
对常数 \(c\) 有 \(Bc=c\),所以 \(\phi_0/\theta(1)=\phi_0/(1-\theta_1-\cdots-\theta_q)\),\(\phi_0/\phi(1)=\phi_0/(1-\phi_1-\cdots-\phi_p)\)。
(2) AR 表示:(2.28) 两边乘 \(\pi(B)\) 的分母形式,得
\(\pi_i\) 称 \(\pi\) 权重,体现当前收益对过去收益的依赖。若 \(\pi_i\to0\),称模型可逆。纯 AR 总可逆;一般 ARMA 可逆的充分条件是 \(\theta(B)\) 的所有零点模长大于 1。MA(1) 的零点是 \(B=1/\theta_1\),可逆当且仅当 \(|\theta_1|<1\)。可逆 ARMA 可以理解为"当前冲击 + 过去值的指数衰减加权平均"。
(3) MA 表示:
\(\mu=\phi_0/(1-\phi_1-\cdots-\phi_p)\)。\(\{\psi_i\}\) 称脉冲响应函数(impulse response function):\(\psi_i\) 就是 \(t\) 时刻一个单位冲击在 \(i\) 期后对 \(r_{t+i}\) 的影响。平稳时 \(\psi_i\) 指数衰减,冲击没有永久影响。
MA 表示最方便的用途是求预测误差:
它是 \(\ell\) 的非减函数。MA 表示还给出均值回复的简洁证明:\(\psi_i\to0\) 推出 \(\hat r_h(\ell)\to\mu\);又 \(\operatorname{Var}(r_t)=(1+\sum_{i\ge1}\psi_i^2)\sigma_a^2\),所以 \(\operatorname{Var}[e_h(\ell)]\to\operatorname{Var}(r_t)\)。\(\hat r_h(\ell)\) 趋近 \(\mu\) 的速度就是均值回复的速度。
量化实战
本章内容在量化中的用途
- 可预测性检验是信号研究的第一步。拿到任何收益序列(个股、指数、因子组合、价差),先看 ACF 和 Ljung–Box。个股月收益通常接近白噪声,而指数、小盘组合、流动性差的资产会显示正的一阶自相关——在把它当作"动量/反转信号"之前,要先排除非同步交易和买卖价反弹这类微观结构伪相关。
- 买卖价反弹与 MA(1)。即便有效价格是随机游走,成交价在买价与卖价间跳动也会使收益出现负的一阶自相关,形成 MA(1) 结构。Roll(1984)据此给出了用一阶自协方差估计有效价差的公式 \(s=2\sqrt{-\operatorname{Cov}(\Delta p_t,\Delta p_{t-1})}\),常用于缺少报价数据时估计交易成本。高频策略回测若用成交价而非中间价,会被这种负相关"骗出"虚假的反转收益。
- 均值回复交易。配对交易、统计套利中的价差常建模为 AR(1)(离散时间的 Ornstein–Uhlenbeck 过程),半衰期 \(\ln0.5/\ln|\phi_1|\) 用于设定持仓周期和时间止损;(2.34) 给出的预测误差标准差用于设定入场/出场阈值。
- 模型选择与过拟合控制。AIC/BIC、自由度调整后的残差检验,是控制任何预测模型过拟合的基本纪律。
- 样本外评估。原书表 2.2、2.3"只用原点前数据重估、再向前预测"的做法,就是回测中滚动/扩展窗口估计的雏形。
Python 示例:AR 定阶、诊断与预测;买卖价反弹;半衰期
A 部分用原书 VW 指数 AR(3) 的参数(\(\phi_0=0.0091\),\(\phi=(0.116,-0.019,-0.104)\),\(\sigma_a=0.054\))模拟 996 个月收益,走一遍"ACF → PACF/信息准则 → 估计 → 残差检验 → 预测"的流程。B 部分模拟买卖价反弹。C 部分算半衰期。
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import acf, pacf
from statsmodels.stats.diagnostic import acorr_ljungbox
from statsmodels.tsa.ar_model import ar_select_order
from statsmodels.tsa.arima.model import ARIMA
from scipy import stats
rng = np.random.default_rng(11)
# ---------- A. 用原书 VW 指数 AR(3) 的参数模拟"月度指数收益" ----------
T, phi0, phi = 996, 0.0091, np.array([0.116, -0.019, -0.104])
burn = 200
a = rng.normal(0, 0.054, T + burn)
r = np.zeros(T + burn)
for t in range(3, T + burn):
r[t] = phi0 + phi @ r[t-3:t][::-1] + a[t]
r = pd.Series(r[burn:])
print("样本 ACF(1..5):", acf(r, nlags=5)[1:].round(3), " 2/sqrt(T)=%.3f" % (2/np.sqrt(T)))
lb = acorr_ljungbox(r, lags=[5, 10])
print("Ljung-Box:\n", lb.round(4))
print("样本 PACF(1..6):", pacf(r, nlags=6, method="ols")[1:].round(3))
# 定阶:AIC 与 BIC
for ic in ["aic", "bic"]:
sel = ar_select_order(r, maxlag=12, ic=ic, trend="c")
print(ic.upper(), "选出的滞后:", sel.ar_lags)
# 估计 AR(3),注意 statsmodels 的 const 是均值 mu,不是 phi0
m = ARIMA(r, order=(3, 0, 0)).fit()
mu, ar = m.params["const"], m.params[["ar.L1", "ar.L2", "ar.L3"]].values
print("AR 系数:", ar.round(4), " mu=%.4f phi0=mu*(1-sum phi)=%.4f" % (mu, mu*(1-ar.sum())))
print("特征根模长:", np.abs(1/np.roots(np.r_[-ar[::-1], 1])).round(3))
# 残差 Ljung-Box:自由度应扣除 AR 系数个数 g=3
Q12 = acorr_ljungbox(m.resid, lags=[12])["lb_stat"].iloc[0]
print("残差 Q(12)=%.2f, p(df=12)=%.3f, p(df=9)=%.3f"
% (Q12, 1-stats.chi2.cdf(Q12, 12), 1-stats.chi2.cdf(Q12, 9)))
# 多步预测:收敛到均值,标准误收敛到序列标准差
fc = m.get_forecast(12)
out = pd.DataFrame({"forecast": fc.predicted_mean.values, "se": fc.se_mean.values},
index=range(1, 13))
print(out.iloc[[0, 1, 2, 5, 11]].round(4))
print("样本均值 %.4f, 样本标准差 %.4f" % (r.mean(), r.std()))
# ---------- B. 买卖价反弹 → 收益的负一阶自相关(MA(1) 结构) ----------
n, spread = 20000, 0.002
p_star = np.cumsum(rng.normal(0, 0.0005, n)) # 有效(对数)价格:随机游走
side = rng.choice([-1, 1], n) # 成交在买价或卖价
p_obs = p_star + side * spread / 2
ret = np.diff(p_obs)
print("\n成交价收益 ACF(1..3):", acf(ret, nlags=3)[1:].round(3))
ma1 = ARIMA(ret * 100, order=(0, 0, 1), trend="n").fit() # 以百分比为单位,数值更稳定
th = ma1.params[0] # statsmodels 用 +theta 约定
print("MA(1) 系数(加号约定)=%.3f, 隐含 rho1=%.3f" % (th, th/(1+th**2)))
print("Roll 价差估计 2*sqrt(-cov1)=%.4f (真值 %.4f)"
% (2*np.sqrt(-np.cov(ret[1:], ret[:-1])[0, 1]), spread))
# ---------- C. AR(1) 价差的半衰期 ----------
for phi1 in [0.5, 0.9, 0.97]:
print("phi1=%.2f 半衰期 = %.2f 期" % (phi1, np.log(0.5)/np.log(abs(phi1))))
关键输出:
样本 ACF(1..5): [ 0.124 -0.032 -0.089 -0.073 -0.015] 2/sqrt(T)=0.063
Ljung-Box:
lb_stat lb_pvalue
5 29.8418 0.0000
10 35.0519 0.0001
样本 PACF(1..6): [ 0.124 -0.048 -0.08 -0.054 -0.005 0.028]
AIC 选出的滞后: [1, 2, 3, 4]
BIC 选出的滞后: [1]
AR 系数: [ 0.1263 -0.0375 -0.0801] mu=0.0099 phi0=mu*(1-sum phi)=0.0098
特征根模长: [0.367 0.467 0.467]
残差 Q(12)=9.15, p(df=12)=0.690, p(df=9)=0.423
forecast se
1 0.0154 0.0550
2 0.0166 0.0554
3 0.0081 0.0555
6 0.0100 0.0557
12 0.0099 0.0557
样本均值 0.0099, 样本标准差 0.0557
成交价收益 ACF(1..3): [-0.441 -0. 0.004]
MA(1) 系数(加号约定)=-0.603, 隐含 rho1=-0.442
Roll 价差估计 2*sqrt(-cov1)=0.0020 (真值 0.0020)
phi1=0.50 半衰期 = 1.00 期
phi1=0.90 半衰期 = 6.58 期
phi1=0.97 半衰期 = 22.76 期
解读:
- 模拟序列的 Ljung–Box 强烈拒绝无相关,与原书 VW 结果一致(\(Q(5)\approx30\))。AIC 选 4 阶、BIC 选 1 阶,再现了原书"AIC 偏高阶、BIC 偏低阶"的现象;而真实模型是 AR(3)——信息准则只是参考,不是答案。
- 特征根模长都小于 1,平稳;其中一对共轭复根,对应很弱的周期成分。
- 自由度从 12 调到 9 后 p 值从 0.69 降到 0.42,结论不变,但在边缘情形下调整与否会改变判断(原书 VW 例中 0.176 对 0.060)。
- 12 步预测收敛到样本均值 0.0099,标准误收敛到样本标准差 0.0557,正是 (2.34) 描述的均值回复。
- 买卖价反弹:设成交价 = 有效价格 + 半个价差 × 随机方向,则理论上 \(\operatorname{Cov}(\Delta p_t,\Delta p_{t-1})=-s^2/4\)、\(\operatorname{Var}(\Delta p_t)=\sigma^2+s^2/2\),代入 \(s=0.002\)、\(\sigma=0.0005\) 得 \(\rho_1=-0.444\),样本为 −0.441;MA(1) 系数在加号约定下为 −0.603,即本书约定的 \(\theta_1=0.603\);Roll 公式准确还原了 0.2% 的价差。
本章小结
弱平稳要求均值和自协方差不随时间变化,ACF \(\rho_\ell=\gamma_\ell/\gamma_0\) 是线性时间序列的核心工具,可用 \(\pm2/\sqrt T\) 界、Bartlett 公式和 Ljung–Box \(Q(m)\) 检验。线性序列是白噪声冲击的加权和,\(\psi\) 权重决定 ACF。AR(\(p\)) 的平稳性由特征根决定,ACF 拖尾、PACF 在 \(p\) 截尾,复根产生随机周期;MA(\(q\)) 恒平稳,ACF 在 \(q\) 截尾,需可逆;ARMA 的 ACF、PACF 都拖尾,用 EACF 的 O 三角顶点或信息准则定阶。诊断看残差 Ljung–Box,自由度扣除系数个数。平稳 ARMA 的多步预测均值回复到无条件均值,预测误差方差 \((1+\psi_1^2+\cdots+\psi_{\ell-1}^2)\sigma_a^2\) 单调增至序列方差,AR(1) 半衰期为 \(\ln0.5/\ln|\phi_1|\)。
| 概念 | 公式 / 要点 |
|---|---|
| 弱平稳 | \(E(r_t)=\mu\),\(\operatorname{Cov}(r_t,r_{t-\ell})=\gamma_\ell\) |
| ACF 渐近方差 | iid:\(1/T\);MA(\(q\)):\((1+2\sum_{i\le q}\rho_i^2)/T\) |
| Ljung–Box | \(Q(m)=T(T+2)\sum_{\ell=1}^m\hat\rho_\ell^2/(T-\ell)\sim\chi^2_{m}\)(残差用 \(\chi^2_{m-g}\)) |
| 线性过程 | \(r_t=\mu+\sum\psi_ia_{t-i}\),\(\rho_\ell=\sum\psi_i\psi_{i+\ell}/\sum\psi_i^2\) |
| AR(1) | \(\mu=\phi_0/(1-\phi_1)\),\(\operatorname{Var}=\sigma_a^2/(1-\phi_1^2)\),\(\rho_\ell=\phi_1^\ell\),平稳 \(\iff\vert \phi_1\vert <1\) |
| AR(2) | \(\rho_\ell=\phi_1\rho_{\ell-1}+\phi_2\rho_{\ell-2}\),\(\rho_1=\phi_1/(1-\phi_2)\);复根周期 \(2\pi/\cos^{-1}[\phi_1/(2\sqrt{-\phi_2})]\) |
| AIC / BIC | \(\ln\tilde\sigma_\ell^2+2\ell/T\) / \(\ln\tilde\sigma_\ell^2+\ell\ln T/T\) |
| MA(1) | \(\rho_1=-\theta_1/(1+\theta_1^2)\),\(\rho_\ell=0\ (\ell>1)\),可逆 \(\iff\vert \theta_1\vert <1\) |
| ARMA(1,1) | \(\operatorname{Var}=(1-2\phi_1\theta_1+\theta_1^2)\sigma_a^2/(1-\phi_1^2)\),\(\rho_\ell=\phi_1\rho_{\ell-1}\ (\ell>1)\) |
| 预测误差方差 | \(\operatorname{Var}[e_h(\ell)]=(1+\psi_1^2+\cdots+\psi_{\ell-1}^2)\sigma_a^2\) |
| 半衰期 | \(\ln0.5/\ln\vert \phi_1\vert \) |
| 识别口诀 | AR 看 PACF 截尾,MA 看 ACF 截尾,ARMA 看 EACF 三角 |
练习
基础
- (原书习题 2.1)月度债券指数简单收益服从 \(R_t=a_t+0.2a_{t-1}\),\(\sigma_a=0.025\),\(a_{100}=0.01\)。求原点 100 的 1 步、2 步预测及其误差标准差,以及滞后 1、2 的 ACF。 答案要点:本书约定下 \(\theta_1=-0.2\)。\(\hat R_{100}(1)=0.2\times0.01=0.002\),标准差 0.025;\(\hat R_{100}(2)=0\),标准差 \(0.025\sqrt{1.04}\approx0.0255\);\(\rho_1=0.2/1.04\approx0.192\),\(\rho_2=0\)。
- (原书习题 2.2)\(r_t=0.01+0.2r_{t-2}+a_t\),\(\operatorname{Var}(a_t)=0.02\)。求均值、方差、\(\rho_1,\rho_2\);给定 \(r_{100}=-0.01\)、\(r_{99}=0.02\),求 1、2 步预测及误差标准差。 答案要点:\(\mu=0.01/0.8=0.0125\);\(\operatorname{Var}=0.02/(1-0.04)\approx0.0208\);\(\rho_1=0\),\(\rho_2=0.2\);\(\hat r(1)=0.01+0.2\times0.02=0.014\),\(\hat r(2)=0.01+0.2\times(-0.01)=0.008\);由于 \(\psi_1=0\),两步误差标准差都是 \(\sqrt{0.02}\approx0.141\)。
- 判断 AR(2) \(r_t=0.6r_{t-1}-0.4r_{t-2}+a_t\) 是否平稳,是否有随机周期;若有,求平均周期长度。 答案要点:\(\phi_1^2+4\phi_2=-1.24<0\) 复根,模 \(\sqrt{0.4}<1\) 平稳;\(k=2\pi/\cos^{-1}(0.6/(2\sqrt{0.4}))=2\pi/\cos^{-1}(0.474)\approx2\pi/1.077\approx5.83\) 期。
- 给出 MA(1) \(\rho_1\) 的取值范围并证明;若某收益序列 \(\hat\rho_1=-0.6\) 且其余不显著,MA(1) 能否刻画? 答案要点:\(|\rho_1|\le0.5\);\(-0.6\) 超出范围,需更高阶或考虑过度差分等原因。
进阶
- 推导 ARMA(1,1) 的 \(\psi\) 权重,并据此验证 \(\operatorname{Var}(r_t)=(1-2\phi_1\theta_1+\theta_1^2)\sigma_a^2/(1-\phi_1^2)\)。 提示:\(\psi_i=\phi_1^{i-1}(\phi_1-\theta_1)\),\(\sum_{i\ge1}\psi_i^2=(\phi_1-\theta_1)^2/(1-\phi_1^2)\)。
- 对 AR(1),写出 \(\ell\) 步预测误差方差的闭式,并说明其极限。 答案要点:\(\psi_i=\phi_1^i\),\(\operatorname{Var}[e_h(\ell)]=\sigma_a^2(1-\phi_1^{2\ell})/(1-\phi_1^2)\to\sigma_a^2/(1-\phi_1^2)\)。
- 修改本章代码:模拟 ARMA(1,1)(\(\phi_1=0.8\)、本书约定 \(\theta_1=0.5\)),画 ACF 与 PACF,验证"二者都不截尾";再用
statsmodels按 BIC 在 \(p,q\le3\) 网格中选模,看能否选回 (1,1)。 - 在买卖价反弹模拟中加入有效价格的正一阶自相关(例如有效收益为 AR(1),\(\phi=0.2\)),观察成交价收益 ACF 的变化,并讨论 Roll 价差估计会怎样偏差。
- 证明:对平稳 AR(\(p\)),以 \(p\) 个初值为条件的高斯条件 MLE 与条件最小二乘给出相同的 \(\phi\) 估计。 提示:把第 01 章 (1.18) 中 \(\mu_t\) 设为 AR 线性组合、\(\sigma_t^2\) 设为常数,对 \(\phi\) 求导。
原书推荐习题:2.1、2.2(手算 MA/AR 预测和 ACF);2.3(失业率 AR 建模与商业周期判断,复根应用);2.4(CRSP 分位组合的联合 ACF 检验、ARMA 建模与预测);2.13(同一序列 AR 与 MA 建模的比较)。
原书对照
| 本章小节 | 原书章节 | PDF 页码(书页) |
|---|---|---|
| 2.0–2.1 导言、平稳性 | 第 2 章导言;2.1 Stationarity | p.49–50(书页 29–30) |
| 2.2 相关与 ACF | 2.2 Correlation and Autocorrelation Function | p.50–56(书页 30–36) |
| 2.3 白噪声与线性序列 | 2.3 White Noise and Linear Time Series | p.56–57(书页 36–37) |
| 2.4 AR 模型的性质 | 2.4、2.4.1 Properties of AR Models | p.57–66(书页 37–46) |
| 2.5 AR 识别、估计、检验 | 2.4.2 Identifying AR Models;2.4.3 Goodness of Fit | p.66–74(书页 46–54) |
| 2.6 AR 预测 | 2.4.4 Forecasting | p.74–77(书页 54–57) |
| 2.7 MA 模型 | 2.5 Simple MA Models | p.77–84(书页 57–64) |
| 2.8 ARMA 模型 | 2.6 Simple ARMA Models | p.84–91(书页 64–71) |