第 02b 章 单位根、季节模型与带时间序列误差的回归
对应 Tsay 第 2 章后半部分(2.7–2.11 节)。第 02a 章处理的是平稳序列;本章先处理"没有固定水平"的单位根序列(价格、利率、汇率)以及如何检验单位根,再讨论季节序列、回归误差有序列相关时的正确做法(包括 HC/HAC 标准误),最后介绍介于平稳与单位根之间的长记忆过程。本章的回归部分是量化研究中出错最频繁、也最值得下功夫的地方。
学习目标
读完本章,你应当能够:
- 解释随机游走(含漂移)的预测性质与"冲击永久影响",区分差分平稳与趋势平稳,并知道各自该如何去除趋势。
- 写出 DF/ADF 检验回归,说明为什么其统计量服从非标准分布,并能正确选择确定性项(无、常数、常数加趋势)。
- 用常规差分与季节差分处理季节序列,推导航空模型的 ACF,知道何时改用虚拟变量(如一月效应)。
- 识别伪回归,按"回归—检查残差—差分或为残差建 ARMA—联合估计"的流程建立带时间序列误差的回归。
- 写出 White(HC)与 Newey–West(HAC)协方差估计量,理解它们为何能修正被夸大的 t 值,并能在重叠收益回归中正确选择截断参数。
- 说出分数差分过程的 ACF 衰减速度与谱特征,识别长记忆现象。
读前导读
这一章在解决什么问题
第 02a 章的工具都建立在"序列平稳"之上。可金融里最常见的原始数据——价格、利率、汇率、GDP——都不平稳。这一章处理三个由此引出的实际问题。
第一,怎么判断一个序列是不是"随机游走"型的不平稳。 CFA 二级时间序列一节讲过单位根、Dickey–Fuller 检验和"有单位根就差分"。本章补上两件 CFA 没讲透的事:为什么 DF 统计量不能用普通 t 临界值(它的分布被"累积求和"扭曲了);以及"带漂移的随机游走"和"围绕直线趋势波动"这两种外观相似的序列为什么要用不同方法处理。
第二,回归误差有序列相关时怎么办。 这是本章对量化工作最重要的部分。CFA 二级讲过:误差序列相关会让 OLS 标准误偏小、t 值虚高,可以用 Newey–West 修正。本章给出 Newey–West 的公式和它为什么成立("三明治"结构),并用一个模拟说明:用持续性高的信号预测未来 20 日累计收益时,一个毫无预测力的信号可以得到 t=6 的"显著"结果。另外,两个互不相关的随机游走做回归,常常得到很高的 \(R^2\) 和显著的 t 值,这就是伪回归,也是配对交易里最常见的陷阱。
第三,季节性和长记忆。 季度 EPS 的季节模式(你在财报分析中天天看到 Q4 高、Q1 低)可以用"季节差分 + 季节 MA"建模;小盘股的一月效应可以用虚拟变量回归。长记忆讲的是一种介于"平稳"和"单位根"之间的序列,它的自相关衰减得很慢,收益的绝对值(波动率的代理)就有这种性质。
需要先想起来的数学
1. 方差的累加与 \(\sqrt t\) 法则。 独立冲击相加,方差相加:\(\operatorname{Var}(a_1+\cdots+a_t)=t\sigma^2\),标准差按 \(\sqrt t\) 增长。这就是 CFA 里"年化波动 = 日波动 × \(\sqrt{252}\)"的来源,也是随机游走预测误差线性增长的原因。见 第 00 册第 07 章 概率中的分析工具。
2. 矩阵形式的 OLS。 \(\hat{\boldsymbol\beta}=(X'X)^{-1}X'\mathbf y\),其中 \(X'X=\sum_t\mathbf x_t\mathbf x_t'\)。你需要会读"矩阵 × 向量"和"矩阵的逆",不必会手算。核心是把 \(\hat{\boldsymbol\beta}-\boldsymbol\beta\) 写成 \((X'X)^{-1}X'\mathbf e\),再求它的方差。见 第 00 册第 06 章 线性代数速成。
3. 和的方差 = 所有协方差之和。 \(\operatorname{Var}(\sum_tz_t)=\sum_t\sum_s\operatorname{Cov}(z_t,z_s)\)。若 \(z_t\) 互不相关,只剩对角项 \(\sum_t\operatorname{Var}(z_t)\);若正相关,非对角项为正,方差更大。这一条是理解 HAC 的全部关键。例:两个方差为 1、相关 0.5 的变量相加,方差是 \(1+1+2\times0.5=3\),不是 2。
4. 二项式展开推广到非整数幂。 \((1+x)^d=1+dx+\frac{d(d-1)}{2!}x^2+\cdots\),对非整数 \(d\) 也成立(\(|x|<1\) 时)。例:\((1-x)^{0.5}\approx1-0.5x-0.125x^2\)。分数差分 \((1-B)^d\) 就是这样定义的。\(\Gamma\) 函数是阶乘的推广,\(\Gamma(n+1)=n!\)。见 第 00 册第 04 章 级数与收敛。
5. 大 O 与衰减速度。 "\(\rho_k\sim k^{2d-1}\)"表示 \(k\) 很大时 \(\rho_k\) 与 \(k^{2d-1}\) 成比例。多项式衰减(如 \(k^{-0.4}\))比指数衰减(如 \(0.9^k\))慢得多:\(k=100\) 时 \(100^{-0.4}\approx0.16\),而 \(0.9^{100}\approx0.00003\)。见 第 00 册第 07 章 概率中的分析工具。
怎么读这一章
核心必读:2.9.1–2.9.3(随机游走、漂移、趋势平稳的区别)、2.9.5 的 ADF 检验用法(会选确定性项、会读结论即可)、2.11 整节、2.12 整节。2.11 和 2.12 是量化研究中最容易出错的地方,建议配合量化实战 B、C 两部分的代码结果一起读。2.10 季节模型如果你不做季度基本面预测,可以只读 2.10.3 的一月效应例子。2.13 长记忆第一次只需记住"绝对收益的 ACF 衰减极慢"这个实证事实,Hosking 的五条性质可以跳过。DF 统计量为什么服从"布朗运动的泛函"不必深究,记住"临界值比正态更负"即可。建议顺序:2.9 → 2.11 → 2.12 → 2.10 → 2.13。
2.9 单位根非平稳
利率、汇率、资产价格往往是非平稳的:价格没有一个固定的水平可以回归。这类序列在时间序列文献中称单位根非平稳(unit-root nonstationary)序列,最典型的例子是随机游走。
2.9.1 随机游走
\(p_0\) 为初值(例如股票 IPO 当日的对数价格),\(a_t\) 为白噪声。若 \(a_t\) 关于 0 对称,则给定 \(p_{t-1}\),\(p_t\) 上涨和下跌的概率各为 50%。把它看作 AR(1),系数恰为 1,不满足平稳条件 \(|\phi_1|<1\),故称单位根非平稳。
随机游走被广泛用作对数股价的模型。此时股价不可预测、不均值回复:对所有步长,
点预测就是当前值,没有实际价值。把 (2.35) 反复代入得 MA 表示
它有三点重要含义:
- 预测误差方差线性增长:\(e_h(\ell)=a_{h+\ell}+\cdots+a_{h+1}\),\(\operatorname{Var}[e_h(\ell)]=\ell\sigma_a^2\to\infty\)。预测区间宽度随步长无限增大,点预测的用处越来越小。
- 无条件方差无界,\(p_t\) 理论上可以取任意实数。对个股的对数价格这可以接受;但对市场指数,负的对数价格(指数小于 1)极为罕见,所以随机游走对指数是否合适值得怀疑。
- 冲击影响不衰减:对所有 \(i\),\(\psi_i=1\)。过去的每一个冲击都永久地留在序列里,经济学称之为冲击的永久效应(permanent effect),序列有强记忆。相应地,随机游走的样本 ACF 在任何固定滞后上都随样本增大趋于 1。
2.9.2 带漂移的随机游走
市场指数的对数收益有小的正均值,所以更合适的对数价格模型是
\(\mu=E(p_t-p_{t-1})\) 称漂移(drift),代表对数价格的时间趋势。迭代得
即一条斜率为 \(\mu\) 的时间趋势 \(t\mu\) 加上一个纯随机游走。条件标准差 \(\sqrt t\sigma_a\) 的增长慢于条件期望 \(t\mu\),所以时序图上呈现明显的斜率为 \(\mu\) 的趋势;\(\mu>0\) 时对数价格最终趋于 \(+\infty\)。
例(3M 月对数收益)。第 02a 章已知其无显著序列相关,模型为
均值的标准误 0.0023,\(t=4.44\),1% 水平显著。构造 \(p_t=\sum_{i=1}^tr_i\)(设 1946 年 1 月的对数价格为 0)与去均值版本 \(p_t^*=\sum_{i=1}^ta_i\)(\(a_t=r_t-0.0103\))。原书图 2.10 中,\(p_t\) 有明显的上升趋势,斜率正是 0.0103;\(p_t^*\) 则没有趋势。这直观地显示了漂移项的重要性:一个看起来只有 1% 的月均值,经过几百个月的累加,决定了价格路径的整体形状。
常数项的含义因模型而异——这是动态模型与普通回归的一个重要区别:
| 模型 | 常数项的含义 |
|---|---|
| MA(\(q\)) | 序列均值 |
| 平稳 AR(\(p\)) / ARMA(\(p,q\)) | 与均值的关系 \(\mu=\phi_0/(1-\phi_1-\cdots-\phi_p)\) |
| 带漂移随机游走 | 对数价格的时间斜率 |
另一个区别:AR(1) 中 \(\phi_1\) 有意义的范围是 \(|\phi_1|\le1\),而普通回归 \(y_t=\beta_0+\beta_1x_t+a_t\) 中 \(\beta_1\) 可以取任意实数。
2.9.3 趋势平稳序列
\(r_t\) 为平稳序列(例如平稳 AR(\(p\)))。它与带漂移随机游走外观相似,本质却不同:
- 带漂移随机游走:\(E(p_t)=p_0+\mu t\),\(\operatorname{Var}(p_t)=t\sigma_a^2\),均值和方差都随时间变化;
- 趋势平稳:\(E(p_t)=\beta_0+\beta_1t\) 随时间变化,但 \(\operatorname{Var}(p_t)=\operatorname{Var}(r_t)\) 有限且不变。
处理方法也不同:趋势平稳序列可以通过对时间做线性回归去掉趋势而变平稳(方法见 2.11 节);单位根序列则需要差分。用错方法会出问题:对单位根序列去线性趋势,残差仍然非平稳;对趋势平稳序列差分,会引入不可逆的 MA 单位根(过度差分)。
金融直觉:两种模型对"一次大跌之后会怎样"给出完全不同的答案。 趋势平稳:价格围绕一条固定的直线波动。大跌后价格低于趋势线,之后会涨回去,冲击是暂时的。长期预测就是那条直线,预测误差有上限。 带漂移随机游走:没有固定的趋势线,大跌后新的起点就是现在的价格,之后从这里继续按漂移 \(\mu\) 增长,跌掉的不会补回来,冲击是永久的。长期预测误差按 \(\sqrt\ell\) 无限增长。 这对资产配置意义很大:如果股市是趋势平稳的,长期持有的风险会因均值回复而降低("时间分散化");如果是随机游走,长期风险按 \(\sqrt T\) 增长,没有这种好处。 推导拆解:过度差分为什么产生 MA 单位根。设 \(p_t=\beta_0+\beta_1t+r_t\),\(r_t\) 为白噪声。差分得 \(\Delta p_t=\beta_1+r_t-r_{t-1}\),这是 \(\theta_1=1\) 的 MA(1),正好落在不可逆的边界上,残差无法从数据中还原(见第 02a 章可逆性)。
2.9.4 一般的单位根模型:ARIMA
若 ARMA 模型的 AR 多项式以 1 为特征根,就得到自回归求和移动平均模型 ARIMA(autoregressive integrated moving-average)。它和随机游走一样有强记忆:MA 表示中的 \(\psi_i\) 不衰减,冲击有永久影响。
传统处理方法是差分:若 \(c_t=y_t-y_{t-1}=(1-B)y_t\) 服从平稳可逆的 ARMA(\(p,q\)),则称 \(y_t\) 服从 ARIMA(\(p\),1,\(q\))。金融中价格非平稳而对数收益平稳,所以对数价格可以看作 ARIMA 过程。若 \(y_t\) 与一阶差分 \(c_t\) 都非平稳,而二阶差分 \(s_t=c_t-c_{t-1}=y_t-2y_{t-1}+y_{t-2}\) 平稳,则 \(y_t\) 有双单位根;若 \(s_t\) 服从 ARMA(\(p,q\)),则 \(y_t\) 为 ARIMA(\(p\),2,\(q\))。若 \(s_t\) 的均值非零,\(y_t\) 含二次时间趋势。原书指出美国季度 GDP 隐含价格平减指数可能有双单位根,但其二阶差分的均值不显著(见原书习题 2.15)。
2.9.5 单位根检验:DF 与 ADF
要检验对数价格是随机游走还是带漂移随机游走,考虑
检验 \(H_0:\phi_1=1\) 对 \(H_a:\phi_1<1\)。这就是 Dickey & Fuller(1979)的单位根检验。对 (2.38),最小二乘估计为
(取 \(p_0=0\))。Dickey–Fuller 统计量就是通常的 t 比:
关键在于它的分布不是通常的 t 分布或正态分布。若 \(e_t\) 是矩略高于 2 阶有限的白噪声,在原假设下 DF 统计量收敛到标准布朗运动的一个泛函(Chan & Wei 1988;Phillips 1987)。直观原因:在单位根下 \(p_{t-1}\) 本身是累积的随机游走,\(\sum p_{t-1}^2\) 的量级是 \(T^2\) 而不是 \(T\),通常的大数定律和中心极限定理不再适用。若真实 \(\phi_0=0\) 却用 (2.39) 估计,t 统计量收敛到另一种非标准分布;两种情况的临界值都要靠模拟得到(Fuller 1976 第 8 章)。若真实 \(\phi_0\ne0\) 且用 (2.39),t 统计量渐近正态,但需要非常大的样本。
补充:常用的 5% 渐近临界值大约为:无确定性项 −1.95,含常数 −2.86,含常数与线性趋势 −3.41。它们远比正态的 −1.645 更负,用正态临界值会过度拒绝单位根。
白话解释:为什么普通 t 检验在这里失灵。 普通回归里,解释变量是"稳定"的,\(\sum x_t^2\) 大约按 \(T\) 增长,于是 \(\hat\beta\) 的误差按 \(1/\sqrt T\) 缩小,中心极限定理让 t 统计量趋于正态。 单位根下,解释变量 \(p_{t-1}\) 本身是累积的随机游走,它的方差按 \(t\) 增长,所以 \(\sum p_{t-1}^2\) 按 \(T^2\) 增长,\(\hat\phi_1\) 收敛到 1 的速度是 \(1/T\)(称为"超一致"),比通常快得多。但代价是分布不再是正态:\(\hat\phi_1\) 系统性地偏向小于 1,t 统计量整体左移、左偏。"布朗运动的泛函"(布朗运动可以理解为随机游走在时间切得无限细时的连续版本;泛函是"以整条路径为输入、输出一个数的函数")只是这个极限分布的数学名字,实际使用只需查临界值表。 实操要点:原假设是"有单位根"。ADF 不显著只说明"数据不足以拒绝单位根",不等于"证明了有单位根"。当真实的 \(\phi_1\) 是 0.98 这种接近 1 的值时,ADF 在常见样本量下功效很低(练习 9)。
ADF 检验(augmented Dickey–Fuller)。实际序列的差分往往有序列相关,需要在回归中加入差分滞后项。对 AR(\(p\)) 序列 \(x_t\),回归
\(c_t\) 为确定性的时间函数(0、常数,或 \(\omega_0+\omega_1t\)),\(\Delta x_j=x_j-x_{j-1}\)。检验 \(H_0:\beta=1\) 对 \(H_a:\beta<1\),统计量
(2.40) 只是带确定性项的 AR(\(p\)) 的重新参数化。也常写成差分形式
检验 \(H_0:\beta_c=0\) 对 \(H_a:\beta_c<0\)。确定性项的选择要与备择假设对应:价格有明显趋势时,要区分"带漂移的单位根"与"趋势平稳",就该用含常数与趋势的版本。
推导拆解:(2.40) 为什么"只是 AR(\(p\)) 的重新参数化"。以 AR(2) \(x_t=\phi_1x_{t-1}+\phi_2x_{t-2}+e_t\) 为例: 第一步:在右边加减 \(\phi_2x_{t-1}\):\(x_t=(\phi_1+\phi_2)x_{t-1}-\phi_2(x_{t-1}-x_{t-2})+e_t\)。 第二步:记 \(\beta=\phi_1+\phi_2\),\(\Delta x_{t-1}=x_{t-1}-x_{t-2}\),就得到 \(x_t=\beta x_{t-1}-\phi_2\Delta x_{t-1}+e_t\),正是 (2.40) 的形式。 第三步:单位根意味着特征方程 \(1-\phi_1z-\phi_2z^2=0\) 有解 \(z=1\),即 \(1-\phi_1-\phi_2=0\),也就是 \(\beta=1\)。所以检验 \(\beta=1\) 就是检验单位根。 加入差分滞后项的作用是"吸收"短期的序列相关,让 \(e_t\) 成为白噪声,否则 DF 的临界值不成立。
例 2.2 美国季度对数 GDP(1947Q1–2008Q4)。对数 GDP 呈上升趋势、样本 ACF 很高;一阶差分(增长率)围绕固定均值波动(近年波动变小)。按差分序列的 PACF 取 \(p=10\),ADF 统计量 −1.701,p=0.4297,不能拒绝单位根;\(\hat\beta=1+\hat\beta_c=1-0.0008=0.9992\)。(R 的 fUnitRoots::adfTest(gdp,lags=10,type="c") 得 −1.6109,p=0.4569。)
例:S&P 500 日对数指数(1950-01-03—2008-04-16,14,462 个观测)。检验它是否为带漂移随机游走,取 \(c_t=\omega_0+\omega_1t\),按差分序列 PACF 取 \(p=15\):ADF=−1.998,p=0.602,不能拒绝单位根;常数项显著(0.0019,t=2.39),时间趋势项在 5% 水平不显著(t=1.85,10% 显著)。结论:该期间 S&P 500 对数指数含单位根与正漂移,没有强的确定性时间趋势证据。(R 中 ar(diff(sp5),method='mle') 选 2 阶,adfTest(sp5,lags=2,type="ct") 得 −2.0179,p=0.5708;lags=15 得 −1.9946,p=0.5807——结论对滞后阶数不敏感。)
2.10 季节模型
有些金融序列呈周期性,例如公司季度每股收益(EPS),称季节时间序列。原书图 2.13 是 Johnson & Johnson 1960Q1–1980Q4 的季度 EPS(数据来自 Shumway & Stoffer 2000):指数增长、强季节性、波动随时间增大,周期为 4(月度数据如沃尔玛月销售额,周期为 12)。季节模型也用于天气衍生品和能源期货定价,因为环境序列季节性很强。
季节调整(seasonal adjustment):如果季节性是次要的,可以先去掉(美国政府发布的 GDP 增长率、失业率多为季调数据);但在预测中季节性与其他特征同等重要,应直接建模。本节采用后一思路。
2.10.1 季节差分
先取对数,理由有二:(1) 处理指数增长,对数尺度下增长变成线性;(2) 稳定方差,原书图 2.13(b) 中波动递增的模式在对数尺度下消失。对数变换在金融经济序列中很常用;若序列有非正值,可先加一个正常数。
设 \(x_t\) 为对数 EPS。原书图 2.14 显示:(a) \(x_t\) 的 ACF 很强、衰减很慢(单位根迹象);(b) 一阶差分 \(\Delta x_t=(1-B)x_t\) 的 ACF 在周期 4 的倍数处很强——这是季节序列的典型表现。按 Box–Jenkins–Reinsel(1994,第 9 章)再做季节差分:
一般周期 \(s\) 的季节差分为 \(\Delta_sy_t=y_t-y_{t-s}=(1-B^s)y_t\);与之相对,\(\Delta y_t=(1-B)y_t\) 称常规差分(regular differencing)。原书图 2.14(d) 中 \(\Delta_4\Delta x_t\) 的 ACF 在滞后 1 有显著负相关,在滞后 4 有边缘负相关。
2.10.2 乘积季节模型与航空模型
上述 ACF 形态在季节序列中很常见,由此产生了著名的航空模型(airline model):
\(|\theta|<1\),\(|\Theta|<1\)。AR 部分就是常规差分与季节差分,MA 部分只有两个参数。
ACF 推导。记 \(w_t=(1-B^s)(1-B)x_t\),展开右边:
\(E(w_t)=0\),逐项计算协方差:
- \(\operatorname{Var}(w_t)=(1+\theta^2+\Theta^2+\theta^2\Theta^2)\sigma_a^2=(1+\theta^2)(1+\Theta^2)\sigma_a^2\);
- \(\operatorname{Cov}(w_t,w_{t-1})=-\theta(1+\Theta^2)\sigma_a^2\);
- \(\operatorname{Cov}(w_t,w_{t-s+1})=\operatorname{Cov}(w_t,w_{t-s-1})=\theta\Theta\sigma_a^2\);
- \(\operatorname{Cov}(w_t,w_{t-s})=-\Theta(1+\theta^2)\sigma_a^2\);
- 其余滞后为 0。
于是
其他 \(\ell>0\) 的 ACF 为 0。季度数据 \(s=4\) 时,只有滞后 1、3、4、5 非零。
推导拆解:以 \(\operatorname{Cov}(w_t,w_{t-1})\) 为例,演示"找共同冲击"的方法。 \(w_t=a_t-\theta a_{t-1}-\Theta a_{t-s}+\theta\Theta a_{t-s-1}\), \(w_{t-1}=a_{t-1}-\theta a_{t-2}-\Theta a_{t-s-1}+\theta\Theta a_{t-s-2}\)。 两式中同时出现的冲击只有 \(a_{t-1}\)(系数 \(-\theta\) 和 \(1\))和 \(a_{t-s-1}\)(系数 \(\theta\Theta\) 和 \(-\Theta\))。不同时刻的冲击不相关,所以协方差 \(=[(-\theta)(1)+(\theta\Theta)(-\Theta)]\sigma_a^2=-\theta(1+\Theta^2)\sigma_a^2\)。 其余各项完全一样:把两个表达式写出来,找共同下标,系数相乘再相加。这和第 02a 章 (2.6) 的思路相同。 金融直觉:\(\theta\) 刻画"本季度的意外有多少在下季度被修正",\(\Theta\) 刻画"今年 Q4 的意外有多少在明年 Q4 被修正"。乘积项 \(\rho_{s\pm1}\) 是两种修正交叉产生的。
与 MA(1) \(y_t=(1-\theta B)a_t\) 和季节 MA \(z_t=(1-\Theta B^s)a_t\) 比较:\(\rho_1=\rho_1(y)\),\(\rho_s=\rho_s(z)\),\(\rho_{s\pm1}=\rho_1(y)\rho_s(z)\)。滞后 \(s\pm1\) 处的 ACF 正是滞后 1 相依与滞后 \(s\) 相依的"交互作用",所以称乘积季节 MA 模型(multiplicative seasonal MA)。实践含义是:常规成分与季节成分的动态近似相互正交。
非乘积季节 MA:\(w_t=(1-\theta B-\Theta B^s)a_t\) (2.42),此时 \(\rho_{s+1}=0\)。参数个数相同,但乘积模型能产生更多非零 ACF,因此更节约。
例 2.3 J&J 对数 EPS 的航空模型(精确似然):
两个 MA 参数的标准误为 0.080、0.101;残差 \(Q(12)=10.0\),p=0.44,模型充分。用前 76 个观测重估、保留最后 8 个检验:原点 \(h=76\)(1978Q4)做 1–8 步预测,再用第 01 章正态与对数正态的关系反变换回 EPS(注意 \(\sigma^2/2\) 修正)。原书图 2.15 显示预测呈强季节模式、接近实际值,95% 区间覆盖良好。
2.10.3 确定性季节性与虚拟变量
若季节模式稳定、近似确定性,可以用虚拟变量(dummy variables)。确定性季节性其实是乘积季节模型的特例:(2.41) 中 \(\Theta=1\) 时,季节 MA 因子 \((1-B^s)\) 与季节差分抵消,模型含确定性季节成分,此时虚拟变量与乘积季节模型的预测相同。但若季节模式不是确定性的,虚拟变量的预测会较差。Tsay 建议用精确似然估计乘积季节模型,尤其在样本小或可能存在确定性季节成分时。
例 2.4 CRSP Decile 1(最小市值组)指数月简单收益(1970-01—2008-12,468 个观测)。时序图看不出季节性,但样本 ACF 在滞后 1、12、24、36 显著。识别为季节 ARMA
条件似然估计:\((1-0.18B)(1-0.87B^{12})R_t=(1-0.74B^{12})a_t\),\(\tilde\sigma_a=0.069\); 精确似然估计:\((1-0.188B)(1-0.951B^{12})R_t=(1-0.997B^{12})a_t\),\(\tilde\sigma_a=0.063\)。
精确似然下季节 AR 因子与季节 MA 因子几乎完全抵消(0.951 对 0.997),这既显示了精确似然法的价值,也提示季节行为可能是确定性的。于是构造一月虚拟变量 \(\text{Jan}_t\)(一月为 1,否则为 0),回归
标准误 0.0033、0.0115(\(t=10.85\)),\(R^2=0.2016\)。残差 ACF 在 12、24、36 处的相关基本消失。结论:Decile 1 月收益的季节性主要来自一月效应(January effect),小盘股在一月平均多赚约 12.5%。
(R 中可用 jan=rep(c(1,rep(0,11)),39)、lm(d1~jan);季节 ARMA 用 arima(d1,order=c(1,0,0),seasonal=list(order=c(1,0,1),period=12)),注意 R 的 MA 系数取加号约定。Python 中对应 statsmodels 的 SARIMAX(..., seasonal_order=(1,0,1,12))。)
2.11 带时间序列误差的回归
很多应用关心两个时间序列之间的关系,例如市场模型(个股超额收益对指数超额收益的回归)、利率期限结构。考虑
若 \(e_t\) 是白噪声,最小二乘估计是一致的;但 \(e_t\) 常有序列相关,此时 LS 估计可能不一致,标准误也不对。Tsay 直言这个模型应用广泛,却也是最常被误用的计量模型之一,原因就是误差的序列相依常被忽略。
2.11.1 美国周度利率的例子
\(r_{1t}\) 为 1 年期、\(r_{3t}\) 为 3 年期国债固定期限利率(1962-01-05—2009-04-10,2467 个周度观测,百分比)。严格说两者应用第 08a 章的多元方法联合建模,这里先忽略联立性。两者高度相关。
第一步:朴素回归
系数标准误 0.024、0.004。看起来极好,但残差 ACF(原书图 2.19)高度显著且缓慢衰减,呈单位根非平稳特征。用现代术语:若两个利率都是单位根序列,残差仍非平稳说明它们不协整(not cointegrated,第 08b 章),数据不支持二者存在稳定的长期均衡关系——样本期内确实出现过收益率曲线倒挂(inverted yield curve)。
第二步:改用变化量。\(c_{1t}=(1-B)r_{1t}\),\(c_{3t}=(1-B)r_{3t}\),回归
标准误 0.0073。残差 ACF 仍有显著但小得多的序列相关。
第三步:为残差建模。由残差 ACF 设定 MA(1) 误差:
计算机普及前需要 Cochrane–Orcutt 等专门方法(Greene 2003);如今只要误差模型平稳可逆,就可以用极大似然联合估计:
标准误 0.0075、0.0196。滞后 1 的残差 ACF 不再显著;滞后 4、6、7 仍有小相关,但再加 MA 项改进很小。
比较结论:(1) (2.44) 的高 \(R^2\) 和系数 0.930 都有误导性——残差强序列相关,属于伪回归;(2) 对变化量,(2.45) 与 (2.47) 的 \(R^2\) 和系数很接近,加 MA(1) 只是边际改进(MA 系数数值小但高度显著);(3) 回归分析中检查残差的序列相依至关重要。把 (2.47) 写回水平形式:
说明两个利率既同期相关,又各自序列相关。
白话解释:为什么 (2.44) 的 \(R^2=96.5\%\) 不可信。两个各自有趋势、各自漂移的序列,即使毫无经济联系,只要在样本期内碰巧都往上走(或都往下走),回归就会给出很高的 \(R^2\) 和巨大的 t 值。量化实战 B 部分的模拟显示:两条独立的随机游走,87% 的情况下 t 值"显著"。 识别信号就是残差:如果两个变量真有稳定的长期关系(协整),残差应该围绕 0 平稳波动;如果残差本身像随机游走(ACF 接近 1、缓慢衰减),说明回归只是拟合了两个趋势的偶然重合。 金融直觉:配对交易里,两只同行业股票的价格回归 \(R^2\) 高达 95% 是常态,但这本身说明不了任何事;能交易的是"价差会回来",即残差平稳。所以先看残差的 ADF,再谈对冲比例。
2.11.2 一般建模步骤
- 拟合线性回归,检查残差的序列相关;
- 若残差单位根非平稳,对因变量和解释变量都做一阶差分,回到第 1 步;若残差平稳,为残差识别一个 ARMA 模型,相应修改回归模型;
- 用极大似然联合估计,检查拟合模型,必要时改进。
检查残差序列相关时,用 Ljung–Box 而不是 Durbin–Watson。DW 统计量
只考虑滞后 1,而残差相依可能出现在更高阶,特别是有季节性时。
2.12 一致协方差矩阵估计:HC 与 HAC
有时我们的主要目的只是推断回归系数,而在误差有序列相关和/或条件异方差的情况下,OLS 系数估计本身仍然一致。这时不必为误差建完整模型,只要把系数的标准误算对即可。工具是异方差一致(heteroscedasticity consistent, HC;Eicker 1967,White 1980)和异方差与自相关一致(heteroscedasticity and autocorrelation consistent, HAC;Newey & West 1987)的协方差估计。
把回归写成
\(\mathbf x_t\) 为含常数项的 \(k\) 维解释变量。LS 估计及其"通常"的协方差为
为什么后者会出错?写出 \(\hat{\boldsymbol\beta}-\boldsymbol\beta=(\sum\mathbf x_t\mathbf x_t')^{-1}\sum\mathbf x_te_t\),所以
只有当 \(e_t\) 同方差且无序列相关时,中间的 \(\operatorname{Var}(\sum\mathbf x_te_t)\) 才化简为 \(\sigma_e^2\sum\mathbf x_t\mathbf x_t'\)。否则通常的公式不一致,并且在实践中(正相关的回归元与正相关的误差)往往夸大 t 值。HC 与 HAC 就是用不同方式估计中间这块"肉"(这类估计量因此被称为"三明治"估计量)。
推导拆解:用只有一个回归元、无常数项的情形看清楚(此时矩阵都退化成数)。 第一步:\(\hat\beta-\beta=\dfrac{\sum_tx_te_t}{\sum_tx_t^2}\)。分母视为给定,所以 \(\operatorname{Var}(\hat\beta)=\dfrac{\operatorname{Var}(\sum_tx_te_t)}{(\sum_tx_t^2)^2}\)。这就是"面包 × 肉 × 面包":两片面包是 \(1/\sum x_t^2\),肉是 \(\operatorname{Var}(\sum x_te_t)\)。 第二步:记 \(z_t=x_te_t\),和的方差等于所有协方差之和:\(\operatorname{Var}(\sum z_t)=\sum_t\operatorname{Var}(z_t)+2\sum_{j\ge1}\sum_t\operatorname{Cov}(z_t,z_{t-j})\)。 第三步:普通 OLS 公式假设 \(\operatorname{Var}(z_t)=\sigma_e^2x_t^2\)(同方差)且所有交叉项为零(无序列相关),于是肉 \(=\sigma_e^2\sum x_t^2\),约掉一片面包得 \(\sigma_e^2/\sum x_t^2\)。 第四步:White 只修正第一项(用 \(\hat e_t^2x_t^2\) 代替 \(\sigma_e^2x_t^2\));Newey–West 再把交叉项 \(\operatorname{Cov}(z_t,z_{t-j})\) 用 \(x_t\hat e_t\hat e_{t-j}x_{t-j}\) 估计出来、乘权重 \(w_j\) 后加上。 数值感觉:如果 \(z_t\) 的一阶自相关是 0.5 且只到一阶,那么真实方差约是普通公式的 \(1+2\times0.5=2\) 倍,标准误被低估约 \(\sqrt2\) 倍,t 值被夸大约 41%。20 日重叠收益相当于 19 阶都高度相关,t 值可以被夸大三四倍(量化实战 C 部分)。
White 估计量(HC):只容许异方差,用 \(\hat e_t^2\) 代替各期方差:
\(\hat e_t=y_t-\mathbf x_t'\hat{\boldsymbol\beta}\)。
Newey–West 估计量(HAC):再加上各滞后的交叉项:
\(\ell\) 为截断参数(bandwidth),\(w_j\) 为权函数,例如 Bartlett 权 \(w_j=1-j/(\ell+1)\),它保证估计出的矩阵正定(正定矩阵是"方差"概念在矩阵上的推广:用它算出的任何线性组合的方差都为正。不加权直接截断,估出来的"方差"可能是负数)。Newey–West 建议 \(\ell\) 取 \(4(T/100)^{2/9}\) 的整数部分。本质上,HAC 是用非参数方法估计 \(\sum_t\hat e_t\mathbf x_t\) 的长期方差(long-run variance)。
例(利率变化回归 (2.45) 中 \(c_{1t}\) 的 t 值):忽略序列相关和异方差时为 107.91;HC 修正后为 48.44(标准误 0.0163);HAC 修正后为 39.92(标准误 0.0198)。t 值缩小到不足原来的四成。另一个办法是在回归中加入滞后项来吸收残差序列相关:
还可以对它再用 HC/HAC 修正 t 值。
单个系数的 HC 方差:辅助回归法。\(k>1\) 时,令 \(\mathbf x_{-j,t}\) 为去掉 \(x_{jt}\) 后的 \((k-1)\) 维向量,做辅助回归
得残差 \(\hat v_t\),则
辅助回归使 \(\hat v_t\) 与其他回归元正交(Frisch–Waugh 定理),\(\hat\beta_j=\sum\hat v_ty_t/\sum\hat v_t^2\),从而 (2.49) 中第 \(j\) 个对角元化简为上式。
2.13 长记忆模型
平稳 ARMA 的 ACF 指数衰减;单位根序列的样本 ACF 对任何固定滞后都随样本增大趋于 1(Chan & Wei 1988;Tiao & Tsay 1983)。介于两者之间,有些序列的 ACF 以多项式速率缓慢衰减,称长记忆(long-memory)序列。典型例子是分数差分过程(fractionally differenced process):
\(\{a_t\}\) 为白噪声。分数差分算子用非整数幂的二项展开定义:
Hosking(1981)给出的性质:
- \(d<0.5\) 时 \(x_t\) 弱平稳,有 MA(∞) 表示 \(x_t=a_t+\sum_{k\ge1}\psi_ka_{t-k}\),
\[\psi_k=\frac{d(1+d)\cdots(k-1+d)}{k!}=\frac{(k+d-1)!}{k!(d-1)!}.\]
- \(d>-0.5\) 时可逆,有 AR(∞) 表示 \(x_t=\sum_{k\ge1}\pi_kx_{t-k}+a_t\),
\[\pi_k=\frac{-d(1-d)\cdots(k-1-d)}{k!}=\frac{(k-d-1)!}{k!(-d-1)!}.\]
- \(-0.5<d<0.5\) 时 ACF 为
\[\rho_k=\frac{d(1+d)\cdots(k-1+d)}{(1-d)(2-d)\cdots(k-d)},\qquad\rho_1=\frac{d}{1-d},\qquad\rho_k\approx\frac{(-d)!}{(d-1)!}k^{2d-1}\ (k\to\infty).\](这里的阶乘按 Gamma 函数理解:\((-d)!=\Gamma(1-d)\),\((d-1)!=\Gamma(d)\)。)
- PACF 为 \(\phi_{k,k}=d/(k-d)\)。
- 谱密度(ACF 的 Fourier 变换)在零频附近满足
\[f(\omega)\sim\omega^{-2d},\qquad\omega\to0, \tag{2.53}\]\(\omega\in[0,2\pi]\) 为角频率。
白话解释:这五条性质读起来很重,抓住两点就够。 第一,\(d\) 是"介于 0 和 1 之间的差分次数"。\(d=0\) 是白噪声(不差分),\(d=1\) 是随机游走的一阶差分(整数差分),\(0<d<0.5\) 是"差分了一部分",序列平稳但记性很长。 第二,记性有多长:取 \(d=0.3\),\(\rho_k\approx0.43\times k^{-0.4}\),于是 \(\rho_{10}\approx0.17\)、\(\rho_{100}\approx0.07\)。对比 \(\rho_1\) 相同(0.43)的 AR(1):\(\rho_{10}=0.43^{10}\approx0.0002\)。长记忆过程在 100 期后仍保留可观的相关,AR(1) 十期后就几乎忘光了。 "谱密度"(把序列分解成不同频率的波动、看每个频率贡献多少方差)在零频(即极长周期)处发散,说的是同一件事:极长期的成分占了很大的方差比重。
关键在于第 3、5 条:\(\rho_k\sim k^{2d-1}\) 是多项式衰减,比 ARMA 的指数衰减慢得多;\(d>0\) 时谱密度在零频处发散,而平稳 ARMA 的谱密度在 \([0,2\pi]\) 上有界。若 \((1-B)^dx_t\) 服从 ARMA(\(p,q\)),则称 \(x_t\) 为 ARFIMA(\(p,d,q\)),即允许非整数 \(d\) 的广义 ARIMA。
识别:样本 ACF 数值不大、衰减却很慢,提示长记忆。原书图 2.22 是 CRSP VW 与 EW 指数日简单收益的绝对值序列(1970-01-02—2008-12-31)的 ACF:数值小但衰减极慢,300 阶后仍在 5% 水平显著(参见 Ding, Granger & Engle 1993)。注意是收益的绝对值(波动的代理)而非收益本身有长记忆——这为第 03b 章的长记忆随机波动率模型埋下伏笔。纯分数差分模型的 \(d\) 可以用极大似然或低频对数周期图回归(log-periodogram regression)估计。长记忆在金融中受关注,部分源于连续时间模型中分数布朗运动的研究。
量化实战
本章内容在量化中的用途
- 配对交易与统计套利的前置检验。两条价格序列的回归高 \(R^2\) 毫无意义(伪回归),必须检查价差(回归残差)是否平稳。ADF 检验可以直接用在价差上,但要注意:用估计出的对冲比例构造的残差做 ADF,临界值要用 Engle–Granger 的协整临界值而不是普通 ADF 临界值(第 08b 章)。
- 预测回归的 t 值。用估值、动量等持续性高的变量预测未来 \(h\) 日累计收益时,因变量是重叠的,误差天然有 MA(\(h-1\)) 结构,OLS t 值会严重夸大;Fama–MacBeth 的时间序列 t、alpha 检验、事件研究里的累计异常收益检验都有同样问题。标准做法是 Newey–West HAC,截断参数至少取 \(h-1\)——Newey–West 的默认规则 \(4(T/100)^{2/9}\) 是为一般弱相关设计的,面对 20 日重叠远远不够。
- 日历效应。一月效应、星期效应(原书习题 2.7–2.9)、月末效应等的标准检验就是"虚拟变量回归 + HAC 标准误 + 残差序列相关检查"。
- 差分与否的工程决策。价格、利率、波动率指数等建模前先做单位根检验:价格用收益(差分),利率是否差分取决于检验结果和用途;单纯为平稳而过度差分会丢掉水平信息并引入不可逆 MA。
- 波动的长记忆。绝对收益的长记忆意味着短窗口的历史波动估计"忘得太快";HAR 型已实现波动模型、FIGARCH 等都是对此的回应。
Python 示例:ADF、伪回归、重叠收益与 HAC、一月效应、长记忆
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller, acf
from statsmodels.stats.diagnostic import acorr_ljungbox
from statsmodels.tsa.arima.model import ARIMA
rng = np.random.default_rng(2024)
# ---------- A. 单位根检验:带漂移随机游走 vs 趋势平稳 ----------
T = 2000
rw = np.cumsum(0.0004 + rng.normal(0, 0.01, T)) # 对数价格:带漂移随机游走
ts = 0.0004 * np.arange(T) + np.zeros(T)
e = np.zeros(T)
for t in range(1, T): # 趋势 + 平稳 AR(1) 偏离
e[t] = 0.9 * e[t-1] + rng.normal(0, 0.01)
ts = ts + e
for name, x in [("带漂移随机游走", rw), ("趋势平稳", ts)]:
stat, p, lags, *_ = adfuller(x, regression="ct", autolag="AIC", result_object=False)
print("%-8s ADF=%.3f p=%.3f (滞后 %d)" % (name, stat, p, lags))
# ---------- B. 伪回归:两条相互独立的随机游走 ----------
x = np.cumsum(rng.normal(size=T)); y = np.cumsum(rng.normal(size=T))
lev = sm.OLS(y, sm.add_constant(x)).fit()
dif = sm.OLS(np.diff(y), sm.add_constant(np.diff(x))).fit()
print("\n水平回归: beta=%.3f t=%.1f R2=%.3f 残差ACF(1)=%.3f"
% (lev.params[1], lev.tvalues[1], lev.rsquared, acf(lev.resid, nlags=1)[1]))
print("差分回归: beta=%.3f t=%.2f R2=%.4f" % (dif.params[1], dif.tvalues[1], dif.rsquared))
tl, r2 = [], []
for _ in range(500): # 重复 500 次看分布
x = np.cumsum(rng.normal(size=500)); y = np.cumsum(rng.normal(size=500))
f = sm.OLS(y, sm.add_constant(x)).fit(); tl.append(abs(f.tvalues[1]) > 1.96); r2.append(f.rsquared)
print("水平回归 |t|>1.96 的比例 = %.2f, R2 中位数 = %.2f, R2>0.3 的比例 = %.2f"
% (np.mean(tl), np.median(r2), np.mean(np.array(r2) > 0.3)))
# ---------- C. 重叠收益的预测回归:OLS t vs HC vs HAC ----------
n, h = 3000, 20
sig = rng.normal(size=n) # 无预测力的"信号"
sig = pd.Series(sig).rolling(20).mean().bfill().values # 信号本身持续(像估值、动量类变量)
ret = rng.normal(0, 0.01, n + h) # 日收益:白噪声
fwd = np.array([ret[t+1:t+1+h].sum() for t in range(n)]) # 未来 20 日累计收益(重叠)
X = sm.add_constant(sig)
L = int(4 * (n / 100) ** (2 / 9)) # Newey-West 建议的截断参数
res = {"OLS": sm.OLS(fwd, X).fit(),
"HC(White)": sm.OLS(fwd, X).fit(cov_type="HC0"),
"HAC(L=%d)" % L: sm.OLS(fwd, X).fit(cov_type="HAC", cov_kwds={"maxlags": L}),
"HAC(L=%d)" % (2*h): sm.OLS(fwd, X).fit(cov_type="HAC", cov_kwds={"maxlags": 2*h})}
for k, v in res.items():
print("%-12s beta=%.5f se=%.5f t=%.2f" % (k, v.params[1], v.bse[1], v.tvalues[1]))
print("残差 ACF(1,5,10,15,25):", acf(res["OLS"].resid, nlags=25)[[1, 5, 10, 15, 25]].round(3))
# 用蒙特卡洛看"虚假显著"的比例
rej = {"OLS": 0, "HAC(2h)": 0}
for _ in range(300):
s = pd.Series(rng.normal(size=n)).rolling(20).mean().bfill().values
rr = rng.normal(0, 0.01, n + h)
f = np.convolve(rr[1:], np.ones(h), "valid")[:n]
Xs = sm.add_constant(s)
rej["OLS"] += abs(sm.OLS(f, Xs).fit().tvalues[1]) > 1.96
rej["HAC(2h)"] += abs(sm.OLS(f, Xs).fit(cov_type="HAC", cov_kwds={"maxlags": 2*h}).tvalues[1]) > 1.96
print("名义 5% 检验的实际拒绝率:", {k: v / 300 for k, v in rej.items()})
# ---------- D. 一月效应:虚拟变量回归 ----------
months = np.tile(np.arange(1, 13), 39) # 39 年月度数据
jan = (months == 1).astype(float)
R = 0.003 + 0.125 * jan + rng.normal(0, 0.06, months.size)
m = sm.OLS(R, sm.add_constant(jan)).fit()
print("\n一月效应: b0=%.4f b1=%.4f t=%.2f R2=%.3f" % (*m.params, m.tvalues[1], m.rsquared))
print("原始序列 ACF(12,24):", acf(R, nlags=24)[[12, 24]].round(3),
" 残差 ACF(12,24):", acf(m.resid, nlags=24)[[12, 24]].round(3))
# ---------- E. 长记忆:分数差分过程与 GPH 估计 ----------
d, N, K = 0.3, 6000, 3000
k = np.arange(1, K)
psi = np.r_[1, np.cumprod((k - 1 + d) / k)] # psi_k = psi_{k-1}(k-1+d)/k
eps = rng.normal(size=N + K)
xlm = np.convolve(eps, psi, "valid")[:N] # MA(∞) 截断近似
print("\nFI(d=0.3) 样本 ACF(1,10,50,100):", acf(xlm, nlags=100)[[1, 10, 50, 100]].round(3))
print("理论 rho1=d/(1-d)=%.3f" % (d / (1 - d)))
# GPH 低频对数周期图回归:ln I(w_j) = c - 2d ln(2 sin(w_j/2)) + 误差
m_ = int(N ** 0.5)
I = np.abs(np.fft.fft(xlm - xlm.mean())) ** 2 / (2 * np.pi * N)
w = 2 * np.pi * np.arange(1, m_ + 1) / N
reg = sm.OLS(np.log(I[1:m_ + 1]), sm.add_constant(-2 * np.log(2 * np.sin(w / 2)))).fit()
print("GPH 估计 d = %.3f (se %.3f)" % (reg.params[1], reg.bse[1]))
关键输出:
带漂移随机游走 ADF=-1.715 p=0.744 (滞后 2)
趋势平稳 ADF=-10.533 p=0.000 (滞后 0)
水平回归: beta=0.012 t=1.6 R2=0.001 残差ACF(1)=0.986
差分回归: beta=-0.007 t=-0.30 R2=0.0000
水平回归 |t|>1.96 的比例 = 0.87, R2 中位数 = 0.15, R2>0.3 的比例 = 0.30
OLS beta=0.02112 se=0.00355 t=5.95
HC(White) beta=0.02112 se=0.00350 t=6.04
HAC(L=8) beta=0.02112 se=0.00902 t=2.34
HAC(L=40) beta=0.02112 se=0.01175 t=1.80
残差 ACF(1,5,10,15,25): [0.951 0.746 0.493 0.262 0.092]
名义 5% 检验的实际拒绝率: {'OLS': np.float64(0.61), 'HAC(2h)': np.float64(0.07)}
一月效应: b0=0.0037 b1=0.1295 t=12.98 R2=0.265
原始序列 ACF(12,24): [0.2 0.296] 残差 ACF(12,24): [-0.081 0.046]
FI(d=0.3) 样本 ACF(1,10,50,100): [0.404 0.111 0.057 0.006]
理论 rho1=d/(1-d)=0.429
GPH 估计 d = 0.359 (se 0.076)
解读:
- ADF:带漂移随机游走 p=0.74,不能拒绝单位根;趋势平稳序列 ADF=−10.5,远低于含趋势版本的 5% 临界值约 −3.41,拒绝单位根。两条序列的时序图看上去都是"一条向上的线",只有检验能区分。
- 伪回归:两条相互独立的随机游走做水平回归,87% 的情况下 \(|t|>1.96\),\(R^2\) 中位数 0.15,三成情况 \(R^2>0.3\);残差 ACF(1) 接近 1 是最直接的警报。差分后回归给出正确的"无关系"。
- 重叠收益:信号对未来收益毫无预测力,OLS t 值却是 5.95,HC 只修正异方差、对此无能为力(6.04);Newey–West 默认截断 \(L=8\) 只修正了一半(2.34,仍"显著"),\(L=40\ge h\) 时 t=1.80,回到不显著。蒙特卡洛显示 OLS 的名义 5% 检验实际拒绝率高达 61%,HAC(\(L=2h\)) 降到 7%。残差 ACF 从 0.95 线性衰减到 20 阶附近,正是 MA(19) 的特征。这是本章对量化研究最重要的一课。
- 一月效应:虚拟变量吸收了滞后 12、24 的自相关(0.20、0.30 → −0.08、0.05),与原书例 2.4 的逻辑一致。
- 长记忆:理论 ACF 在滞后 1、10、50、100 处为 0.429、0.173、0.091、0.069;样本 ACF 偏低(长记忆过程的样本 ACF 有明显的向下偏差),但衰减远慢于任何低阶 AR。GPH 估计 \(\hat d=0.36\),标准误 0.08,覆盖真值 0.3。
本章小结
单位根序列(随机游走、ARIMA)的冲击有永久影响,预测误差方差随步长线性增长,样本 ACF 趋于 1;带漂移随机游走的常数项是趋势斜率,与趋势平稳序列外观相似但需要不同处理(差分对去趋势)。DF/ADF 检验的 t 统计量在单位根下服从非标准分布,临界值靠模拟得到,确定性项的设定要与备择假设对应。季节序列用常规差分加季节差分,航空模型 \((1-B)(1-B^s)x_t=(1-\theta B)(1-\Theta B^s)a_t\) 的 ACF 只在 \(1,s-1,s,s+1\) 非零;季节模式确定时用虚拟变量(一月效应)。带时间序列误差的回归必须检查残差:残差非平稳则差分,平稳则为残差建 ARMA 并联合估计,诊断用 Ljung–Box 而非 DW。只关心系数推断时,用 HC/HAC 三明治估计修正标准误,重叠收益要把截断参数取到至少 \(h-1\)。分数差分过程的 ACF 以 \(k^{2d-1}\) 多项式衰减、谱在零频发散,收益绝对值序列表现出这种长记忆。
| 概念 | 公式 / 要点 |
|---|---|
| 随机游走 | \(p_t=p_{t-1}+a_t\);\(\hat p_h(\ell)=p_h\);\(\operatorname{Var}[e_h(\ell)]=\ell\sigma_a^2\) |
| 带漂移随机游走 | \(p_t=\mu+p_{t-1}+a_t=t\mu+p_0+\sum a_i\) |
| 趋势平稳 | \(p_t=\beta_0+\beta_1t+r_t\),方差有限不变 |
| ARIMA(\(p\),1,\(q\)) | \((1-B)y_t\) 为平稳可逆 ARMA(\(p,q\)) |
| ADF 回归 | \(\Delta x_t=c_t+\beta_cx_{t-1}+\sum_{i=1}^{p-1}\phi_i\Delta x_{t-i}+e_t\),\(H_0:\beta_c=0\),非标准分布 |
| 季节差分 | \(\Delta_sy_t=(1-B^s)y_t\) |
| 航空模型 ACF | \(\rho_1=-\theta/(1+\theta^2)\),\(\rho_s=-\Theta/(1+\Theta^2)\),\(\rho_{s\pm1}=\rho_1\rho_s\) |
| DW | \(\approx2(1-\hat\rho_1)\),只看一阶,不如 Ljung–Box |
| White HC | \((X'X)^{-1}(\sum\hat e_t^2\mathbf x_t\mathbf x_t')(X'X)^{-1}\) |
| Newey–West HAC | 中间项加 \(\sum_jw_j\sum_t(\mathbf x_t\hat e_t\hat e_{t-j}\mathbf x_{t-j}'+\text{转置})\),\(w_j=1-j/(\ell+1)\),\(\ell\approx4(T/100)^{2/9}\) |
| 分数差分 | \((1-B)^dx_t=a_t\);\(\rho_1=d/(1-d)\);\(\rho_k\sim k^{2d-1}\);\(f(\omega)\sim\omega^{-2d}\);\(\phi_{kk}=d/(k-d)\) |
练习
基础
- 对随机游走 \(p_t=p_{t-1}+a_t\)(\(p_0=0\)),证明 \(\operatorname{Corr}(p_t,p_{t-\ell})=\sqrt{(t-\ell)/t}\),并据此解释为什么样本 ACF 在固定滞后处随样本增大趋于 1。 提示:\(\operatorname{Cov}(p_t,p_{t-\ell})=(t-\ell)\sigma_a^2\)。
- 带漂移随机游走中 \(\mu=0.0103\)、\(\sigma_a=0.0637\)(原书 3M 例)。求 120 个月后对数价格的条件均值与条件标准差,并说明"趋势在图上可见"的原因。 答案要点:均值 \(1.236\),标准差 \(0.0637\sqrt{120}\approx0.698\);均值随 \(t\) 线性增长而标准差随 \(\sqrt t\) 增长。
- 写出季度数据(\(s=4\))航空模型 \(w_t\) 的前 6 阶理论 ACF,取 \(\theta=0.678\)、\(\Theta=0.314\)(原书例 2.3)。 答案要点:\(\rho_1=-0.678/1.460\approx-0.464\),\(\rho_4=-0.314/1.099\approx-0.286\),\(\rho_3=\rho_5\approx0.133\),\(\rho_2=\rho_6=0\)。
- 说明 DW≈2 能否保证回归残差无序列相关,举一个反例。 答案要点:不能;例如残差为季节 MA \(e_t=a_t-0.8a_{t-4}\),\(\rho_1=0\),DW≈2,但滞后 4 相关很强。
进阶
- 推导 Bartlett 权下、仅含一个回归元(无常数)的 HAC 方差公式,并说明当 \(x_t\) 与 \(e_t\) 都有正的一阶自相关时为何 OLS 标准误偏小。 提示:\(\operatorname{Var}(\sum x_te_t)=\sum_t\sum_s E(x_tx_se_te_s)\),正相关使交叉项为正。
- 证明辅助回归公式 \(\operatorname{Var}(\hat\beta_j)_{HC}=\sum\hat e_t^2\hat v_t^2/(\sum\hat v_t^2)^2\)。 提示:Frisch–Waugh 定理给出 \(\hat\beta_j=\sum\hat v_ty_t/\sum\hat v_t^2\)。
- 用 \(\psi_k\) 的递推 \(\psi_k=\psi_{k-1}(k-1+d)/k\) 证明 \(\psi_k\sim k^{d-1}/\Gamma(d)\),并解释为什么 \(d<0.5\) 保证平稳。 提示:\(\sum\psi_k^2<\infty\iff2(d-1)<-1\)。
- 修改本章代码 C 部分:把预测期 \(h\) 依次取 5、20、60,记录 OLS、HAC(\(L=8\))、HAC(\(L=h\))、HAC(\(L=2h\)) 的实际拒绝率,给出截断参数选择的经验规则。
- 修改代码 A 部分:把趋势平稳序列的 AR 系数从 0.9 逐步提高到 0.99、0.999,观察 ADF 检验的功效如何下降,并讨论"不能拒绝单位根"在有限样本中的含义。
原书推荐习题:2.5(IBM 日收益绝对值的长程相依);2.6(季节模型与 1–24 步预测);2.7–2.9(星期效应:虚拟变量回归 + HAC + 带时间序列误差的回归,最贴近量化实务);2.12(Aaa 对 Baa 的带时间序列误差回归);2.14(期现货 1 分钟数据的回归,指数套利背景);2.15(GDP 平减指数的 ARIMA 建模与双单位根判断)。
原书对照
| 本章小节 | 原书章节 | PDF 页码(书页) |
|---|---|---|
| 2.9.1–2.9.2 随机游走、漂移 | 2.7.1 Random Walk;2.7.2 Random Walk with Drift | p.91–95(书页 71–75) |
| 2.9.3–2.9.4 趋势平稳、ARIMA | 2.7.3 Trend-Stationary Time Series;2.7.4 General Unit-Root Nonstationary Models | p.95–96(书页 75–76) |
| 2.9.5 单位根检验 | 2.7.5 Unit-Root Test | p.96–101(书页 76–81) |
| 2.10 季节模型 | 2.8 Seasonal Models | p.101–110(书页 81–90) |
| 2.11 带时间序列误差的回归 | 2.9 Regression Models with Time Series Errors | p.110–117(书页 90–97) |
| 2.12 HC 与 HAC | 2.10 Consistent Covariance Matrix Estimation | p.117–121(书页 97–101) |
| 2.13 长记忆 | 2.11 Long-Memory Models | p.121–123(书页 101–103) |
| 软件附录与习题 | Appendix: Some SCA Commands;Exercises | p.123–127(书页 103–107) |