第 19a 章 矩阵形式的多元回归理论
学习目标
读完本章,你应当能够:
- 用矩阵写出多元回归模型 \(\mathbf Y=\mathbf X\boldsymbol\beta+\mathbf U\) 和六条扩展最小二乘假设,并推导 \(\hat{\boldsymbol\beta}=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\)。
- 推导 OLS 的渐近分布 \(\sqrt n(\hat{\boldsymbol\beta}-\boldsymbol\beta)\xrightarrow{d}N(\mathbf 0,\mathbf Q_X^{-1}\boldsymbol\Sigma_V\mathbf Q_X^{-1})\),写出 HC1 稳健协方差矩阵,并知道小样本下 HC2/HC3 的作用。
- 用 \(\mathbf R\boldsymbol\beta=\mathbf r\) 统一表示线性假设,计算稳健 Wald F 统计量、线性组合的置信区间与联合置信椭球。
- 掌握投影矩阵 \(\mathbf P_X,\mathbf M_X\) 的性质,并用它们证明同方差正态误差下的精确 \(t_{n-k-1}\) 与 \(F_{q,n-k-1}\) 分布。
- 用「\(\mathbf A=\hat{\mathbf A}+\mathbf D\)」的分解证明多元高斯–马尔可夫定理。
- 理解 Frisch–Waugh 定理,并把它用于因子中性化。
读前导读
这一章在解决什么问题。 第 18 章只有一个回归元,所有公式都能用 \(\sum\) 写出来。多元回归里,回归元一多,求和式就写不下了。本章把它们换成矩阵:\(n\) 个观测、\(k\) 个回归元打包成一张表 \(\mathbf X\),OLS 一行写完:\(\hat{\boldsymbol\beta}=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\)。你在 CFA 二级见过多元回归、F 检验和多重共线性,本章讲它们为什么成立:为什么 F 统计量是那个样子,为什么多重共线性会让软件报错,为什么高斯–马尔可夫定理说 OLS 是「最好」的。
量化工作里,这章几乎是所有横截面因子回归、风险模型和业绩归因的数学底座。最直接的工具有三个:稳健协方差矩阵(三明治)、Wald 检验(同时检验多个因子收益为零)、Frisch–Waugh 定理(行业市值中性化为什么等价于加控制变量)。
需要先想起来的数学。
- 矩阵乘法、转置与逆。\((\mathbf A\mathbf B)'=\mathbf B'\mathbf A'\);\(\mathbf a'\mathbf b=\sum a_ib_i\) 是内积;\(\mathbf A^{-1}\) 满足 \(\mathbf A^{-1}\mathbf A=\mathbf I\)。例:\(\mathbf X\) 是 \(500\times4\),\(\mathbf X'\mathbf X\) 就是 \(4\times4\),第 \((j,l)\) 元是第 \(j\) 列与第 \(l\) 列的内积 \(\sum_iX_{ji}X_{li}\),除以 \(n\) 后接近二阶矩 \(E(X_jX_l)\)。见 第 00 册第 06 章 线性代数速成。
- 秩、正定与特征值。秩是线性无关列的个数;正定矩阵 \(\mathbf V\) 对任意非零 \(\mathbf c\) 有 \(\mathbf c'\mathbf V\mathbf c>0\)(像「任何非零组合的方差都为正」)。协方差矩阵天然半正定,因为 \(\mathbf c'\boldsymbol\Sigma\mathbf c\) 就是组合 \(\mathbf c\) 的方差。附录 19.1 有清单,系统内容见 第 00 册第 06 章。
- 偏导数与「梯度为零」。多元函数的极小值点处,对每个变量的偏导都为零。OLS 就是对 \(k+1\) 个系数各求一次偏导、令其为零,得到 \(k+1\) 个方程(正规方程)。例:\(f(b)=(3-b)^2\),\(f'(b)=-2(3-b)=0\Rightarrow b=3\)。见 第 00 册第 05 章 多元微积分与优化。
- 拉格朗日乘子。在约束 \(\mathbf R\boldsymbol\beta=\mathbf r\) 下最小化,练习 7 的约束最小二乘要用它。见 第 00 册第 05 章。
- 第 18 章的渐近工具。LLN、CLT、Slutsky 定理的矩阵版完全照搬,见第 18 章 18.2 节和 第 00 册第 07 章 概率中的分析工具。
怎么读这一章。 核心必读:19.1(矩阵记号和正规方程)、19.2.2 的 (19.14)–(19.15)(全章推导的出发点)、19.2.3(稳健标准误)、19.3.2(Wald F)、19.4.1(投影矩阵),以及量化实战里的 Frisch–Waugh。可以第一次只看结论的:19.4.2–19.4.4 的精确分布证明、附录 19.4、附录 19.5 的高斯–马尔可夫证明(读结论和最后一句「勾股定理」即可)。建议先把附录 19.1 当词汇表快速扫一遍,遇到不熟的矩阵概念再回查。
19.0 本章与第 19 章的结构
原书第 19 章有四个目标:(1) 用矩阵表述多元回归,得到 OLS 和检验统计量的紧凑公式;(2) 刻画 OLS 的抽样分布,包括大样本(渐近理论)和小样本(同方差正态误差);(3) 有效估计理论:高斯–马尔可夫定理的多元版本,以及误差异方差或相关时的广义最小二乘(GLS);(4) 线性模型中工具变量回归的渐近理论,TSLS 是 GMM 的特例。本教材把它分成三章:
| 本教材章节 | 原书内容 |
|---|---|
| 19a(本章) | 19.1–19.5;附录 19.1–19.5 |
| 19b | 19.6 GLS、19.7 IV 与 GMM;附录 19.6 |
| 19c | 附录 19.7 多预测变量回归(MSPE、岭回归、主成分);书末统计附表 |
数学前提:线性代数入门。附录 19.1 的矩阵代数概要放在本章末尾;更系统的内容(正定矩阵、矩阵平方根、谱分解、幂等矩阵的特征值)见第 01 册(Horn & Johnson)中关于 Hermitian 矩阵与正定矩阵的章节。本章是第 18 章单回归元理论的矩阵推广,两章的证明思路一一对应,可对照阅读。
19.1 矩阵形式的线性多元回归模型与 OLS 估计量
19.1.1 矩阵记号
总体多元回归模型(Key Concept 6.2)为
单个观测写成
19.1.2 多元回归的扩展最小二乘假设
Key Concept 19.1(多元回归的扩展最小二乘假设) 模型 \(Y_i=\mathbf X_i'\boldsymbol\beta+u_i\)(19.3),\(\boldsymbol\beta\) 为因果效应向量。
- \(E(u_i\mid\mathbf X_i)=0\);
- \((\mathbf X_i,Y_i)\) i.i.d.;
- \(\mathbf X_i\) 与 \(u_i\) 有非零有限的四阶矩;
- \(\mathbf X\) 列满秩(无完全多重共线性);
- \(\mathrm{var}(u_i\mid\mathbf X_i)=\sigma_u^2\)(同方差);
- \(u_i\mid\mathbf X_i\) 服从正态分布。
前四条即第 6 章 Key Concept 6.4。第 4 条「列满秩」与「无完全多重共线性」等价:完全共线 ⇔ \(\mathbf X\) 的某一列是其他列的线性组合 ⇔ \(\mathrm{rank}(\mathbf X)<k+1\)。同方差用于研究效率,正态用于精确分布。
对 \(\mathbf U\) 的均值向量与协方差矩阵的含义。由假设 1、2:\(E(u_i\mid\mathbf X)=E(u_i\mid\mathbf X_i)=0\)(其他观测的回归元与 \(u_i\) 独立);\(i\ne j\) 时 \(E(u_iu_j\mid\mathbf X)=E(u_i\mid\mathbf X_i)E(u_j\mid\mathbf X_j)=0\)(习题 18.7)。再加假设 5,\(E(u_i^2\mid\mathbf X)=\sigma_u^2\)。于是
19.1.3 OLS 估计量
OLS 最小化残差平方和 \(\sum_i(Y_i-b_0-b_1X_{1i}-\cdots-b_kX_{ki})^2\)。对 \(b_j\) 求偏导(记 \(X_{0i}=1\)):
推导拆解:从 (19.9) 到 (19.11) 的每一步。 第一步,(19.9) 用链式法则:外层是平方,导数为 \(2(\cdot)\);内层 \(Y_i-b_0-\cdots-b_kX_{ki}\) 对 \(b_j\) 的导数是 \(-X_{ji}\)。两者相乘再对 \(i\) 求和。 第二步,把 \(k+1\) 个偏导排成一列。第 \(j\) 个元素是 \(\sum_iX_{ji}\times(\text{第 }i\text{ 个残差})\),正好是 \(\mathbf X\) 的第 \(j\) 列与残差向量的内积,所以整列就是 \(\mathbf X'(\mathbf Y-\mathbf X\mathbf b)\),前面带 \(-2\)。 第三步,令其为零,展开括号:\(\mathbf X'\mathbf Y-\mathbf X'\mathbf X\hat{\boldsymbol\beta}=\mathbf 0\),移项得 \(\mathbf X'\mathbf X\hat{\boldsymbol\beta}=\mathbf X'\mathbf Y\)。 第四步,两边左乘 \((\mathbf X'\mathbf X)^{-1}\)。注意矩阵不能「除」,只能乘逆,而且要乘在同一侧。 单回归元检验一下:\(\mathbf X'\mathbf X=\begin{pmatrix}n&\sum X_i\\\sum X_i&\sum X_i^2\end{pmatrix}\),\(\mathbf X'\mathbf Y=\begin{pmatrix}\sum Y_i\\\sum X_iY_i\end{pmatrix}\),解这个 \(2\times2\) 方程组就回到 (18.2)(18.3)。
无完全多重共线性的作用:\(\mathbf X\) 列满秩 ⇒ \(\mathbf X'\mathbf X\) 正定、可逆 ⇒ (19.10) 有唯一解,(19.11) 可计算。否则 \(\mathbf X'\mathbf X\) 奇异,正规方程有无穷多解。原书复习题 19.1 的「虚拟变量陷阱」就是典型:同时放入截距、female 和 male 两个虚拟变量,\(female_i+male_i=1\) 等于常数列,\(\mathbf X\) 列线性相关。
正规方程的几何意义是:残差 \(\hat{\mathbf U}=\mathbf Y-\mathbf X\hat{\boldsymbol\beta}\) 与 \(\mathbf X\) 的每一列正交(\(\mathbf X'\hat{\mathbf U}=\mathbf 0\))。拟合值 \(\hat{\mathbf Y}\) 是 \(\mathbf Y\) 在 \(\mathbf X\) 列空间上的正交投影,19.4 节将用投影矩阵把这一点写得更明确。
数值实现的提醒:教科书公式 \((\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\) 在代码里不应真的求逆。\(\mathbf X'\mathbf X\) 的条件数是 \(\mathbf X\) 的平方,回归元高度相关时数值精度会严重损失。应使用 QR 分解或 numpy.linalg.lstsq(基于 SVD),第 04 册和第 01 册对此有详细讨论。
19.2 OLS 估计量与 t 统计量的渐近分布
结论:大样本中,若前四条假设成立,则 OLS 渐近联合正态,异方差稳健协方差矩阵估计量一致,稳健 t 统计量渐近标准正态。需要的工具是多元正态分布(附录 19.2)和多元中心极限定理。
19.2.1 多元中心极限定理
Key Concept 19.2(多元中心极限定理) \(\mathbf W_1,\dots,\mathbf W_n\) 是 i.i.d. 的 \(m\) 维随机向量,均值 \(\boldsymbol\mu_W\),协方差矩阵 \(\boldsymbol\Sigma_W\) 正定且有限。令 \(\bar{\mathbf W}=\frac1n\sum\mathbf W_i\),则
\[\sqrt n(\bar{\mathbf W}-\boldsymbol\mu_W)\xrightarrow{d}N(\mathbf 0_m,\boldsymbol\Sigma_W).\]
与标量版的唯一区别在方差条件:标量要求方差非零有限;向量要求协方差矩阵正定且有限。这等价于对所有非零 \(\mathbf c\),\(0<\mathrm{var}(\mathbf c'\mathbf W_i)<\infty\),因为 \(\mathrm{var}(\mathbf c'\mathbf W_i)=\mathbf c'\boldsymbol\Sigma_W\mathbf c\)(习题 19.3)。换言之,任何方向上的线性组合都不能退化为常数。
金融直觉:「协方差矩阵正定」翻译成组合语言就是:不存在一个非零权重组合,其方差为零。如果有,比如两只资产完全线性相关,你可以构造一个无风险组合,这个方向上随机向量退化成常数,正态分布在这个方向「被压扁成一张纸」,多元正态密度 (19.73) 里的 \(\boldsymbol\Sigma^{-1}\) 就不存在。多元 CLT 要排除的正是这种情况。
19.2.2 \(\hat{\boldsymbol\beta}\) 的渐近正态性
其中 \(\mathbf Q_X=E(\mathbf X_i\mathbf X_i')\) 是回归元的二阶矩矩阵,\(\boldsymbol\Sigma_V=E(\mathbf V_i\mathbf V_i')\),\(\mathbf V_i=\mathbf X_iu_i\)(由假设 2,\(\mathbf V_i\) i.i.d.)。
用 \(\hat{\boldsymbol\beta}\) 本身表述:大样本中 \(\hat{\boldsymbol\beta}\approx N(\boldsymbol\beta,\boldsymbol\Sigma_{\hat\beta})\),
推导。把 \(\mathbf Y=\mathbf X\boldsymbol\beta+\mathbf U\) 代入 (19.11):
同方差时的化简。若 \(E(u_i^2\mid\mathbf X_i)=\sigma_u^2\),则 \(\boldsymbol\Sigma_V=E(\mathbf X_i\mathbf X_i'u_i^2)=E[\mathbf X_i\mathbf X_i'E(u_i^2\mid\mathbf X_i)]=\sigma_u^2\mathbf Q_X\),三明治塌缩为 \(\sigma_u^2\mathbf Q_X^{-1}\)。这就是熟悉的 \(\sigma_u^2(\mathbf X'\mathbf X)^{-1}\) 的总体版本。
推导拆解:(19.14) 的关键一步是 \((\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf X=\mathbf I\),所以 \(\boldsymbol\beta\) 原样「穿过」估计公式,剩下的 \((\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf U\) 就是估计误差:它是误差 \(\mathbf U\) 的加权组合,权重由回归元决定。 (19.15) 是在 (19.14) 两边乘 \(\sqrt n\),再把 \(\sqrt n\) 拆成 \(n\cdot\frac1{\sqrt n}\):\(n\) 塞进逆矩阵里变成 \((\mathbf X'\mathbf X/n)^{-1}\)(因为 \((\mathbf X'\mathbf X)^{-1}=\frac1n(\mathbf X'\mathbf X/n)^{-1}\)),\(\frac1{\sqrt n}\) 留给 \(\mathbf X'\mathbf U\)。 三明治怎么来:分子极限是 \(N(\mathbf 0,\boldsymbol\Sigma_V)\),左乘常数矩阵 \(\mathbf Q_X^{-1}\),由 \(\mathrm{cov}(\mathbf A\mathbf V)=\mathbf A\,\mathrm{cov}(\mathbf V)\mathbf A'\),协方差变成 \(\mathbf Q_X^{-1}\boldsymbol\Sigma_V(\mathbf Q_X^{-1})'\);\(\mathbf Q_X\) 对称,其逆也对称,于是就是 \(\mathbf Q_X^{-1}\boldsymbol\Sigma_V\mathbf Q_X^{-1}\)。 同方差化简那一行用了迭代期望:先在给定 \(\mathbf X_i\) 的条件下对 \(u_i^2\) 取期望(\(\mathbf X_i\mathbf X_i'\) 此时当常数提出来),再对 \(\mathbf X_i\) 取期望。
19.2.3 异方差稳健标准误
用样本矩替换总体矩:
其他稳健方差估计量。(19.16) 称为 HC1,最常用,但不是唯一的选择。模拟显示小样本中 HC1 可能向下偏,标准误过小。几种改进:
- Long & Ervin(2000):用 \(\mathbf X\) 的函数给残差平方加权的变体更好,即 HC2(\(\hat u_i^2/(1-h_{ii})\))和 HC3(\(\hat u_i^2/(1-h_{ii})^2\)),其中 \(h_{ii}=\mathbf X_i'(\mathbf X'\mathbf X)^{-1}\mathbf X_i\) 是第 \(i\) 个观测的杠杆值。高杠杆观测的残差被拟合「拉向」零,除以 \(1-h_{ii}\) 是把它放大回来。
- Imbens & Kolesár(2016):除了偏差,小样本中方差估计本身的抽样波动也会使正态近似变差,建议用 t 分布近似,并配合不同于 HC1 和 Long–Ervin 的方差估计量。
- Angrist & Pischke(2009):样本量超过 50 时,HC1 的检验水平扭曲可以忽略。
本书聚焦大样本,HC1 表现良好。但本章示例会显示:当回归元有很强的高杠杆点时,「超过 50 就够」的经验并不可靠。
白话解释:杠杆值 \(h_{ii}\) 衡量第 \(i\) 个观测的回归元离「平均」有多远,取值在 0 到 1 之间,所有 \(h_{ii}\) 加起来等于 \(k+1\)(下一节 \(\mathrm{tr}(\mathbf P_X)=k+1\) 的结论)。一个市值极大的股票在横截面回归里就是高杠杆点:回归线会被它拽过去,使它自己的残差特别小。HC1 直接用残差平方估计误差方差,恰好在最需要准确的地方低估了方差;HC3 除以 \((1-h_{ii})^2\),大致相当于「把这个点留出来、用其他点拟合后再算它的残差」,因此更诚实。
19.2.4 预测效应的置信区间
把回归元从 \(\mathbf X_{i,0}\) 变到 \(\mathbf X_{i,0}+\mathbf d\)(\(\mathbf d\) 是 \(k+1\) 维,可以同时改变多个回归元,例如一个变量和它的平方),预期效应是 \(\mathbf d'\boldsymbol\beta\),估计为 \(\mathbf d'\hat{\boldsymbol\beta}\)。由 (19.12) 和附录 19.2 的线性变换性质,
19.3 联合假设检验
矩阵形式统一了第 7.2 节(多个限制、每个只涉及一个系数)和第 7.3 节(单个限制涉及多个系数)。
19.3.1 线性假设的矩阵表示
\(q\) 个线性限制(\(q\le k+1\))写成
- \(\beta_0=\cdots=\beta_{q-1}=0\):\(\mathbf R=[\mathbf I_q\ \ \mathbf 0_{q\times(k+1-q)}]\),\(\mathbf r=\mathbf 0_q\);
- \(k=2\) 时 \(\beta_1+\beta_2=1\):\(\mathbf R=[0\ 1\ 1]\),\(r=1\),\(q=1\)。
19.3.2 异方差稳健 F 统计量
前四条假设成立且原假设为真时,
推导。原假设下 \(\sqrt n(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)=\sqrt n\mathbf R(\hat{\boldsymbol\beta}-\boldsymbol\beta)\xrightarrow{d}N(\mathbf 0,\mathbf R\boldsymbol\Sigma_{\sqrt n(\hat\beta-\beta)}\mathbf R')\)。由附录 19.2 的 (19.77),正态向量关于其协方差矩阵逆的二次型服从卡方:
这里 Wald 统计量的直观含义是:\(\mathbf R\hat{\boldsymbol\beta}-\mathbf r\) 衡量估计值离原假设有多远,用它自己的协方差矩阵的逆来「标准化」。各个限制的估计相关时,二次型自动考虑了这种相关。
白话解释:\(q=1\) 时,(19.21) 就是 \(t^2\):\(\frac{(\hat\delta-r)^2}{\widehat{\mathrm{var}}(\hat\delta)}\),即「偏离量平方 ÷ 方差」。\(q>1\) 时,偏离量变成向量 \(\mathbf d\),「除以方差」变成「乘以协方差矩阵的逆」,形式 \(\mathbf d'\mathbf V^{-1}\mathbf d\) 叫马氏距离(Mahalanobis distance)。 金融直觉:马氏距离和跟踪误差的计算同理。两个因子收益的估计误差高度正相关时,两者同时偏高是「常见」的,不算多大证据;一个偏高一个偏低才「罕见」。逐个看 t 值会忽略这一点,\(\mathbf V^{-1}\) 自动按相关结构给偏离打分。 为什么卡方:若 \(\mathbf Z\sim N(\mathbf 0,\mathbf I_q)\),\(\mathbf Z'\mathbf Z\) 是 \(q\) 个独立标准正态的平方和,即 \(\chi^2_q\);一般协方差 \(\mathbf V\) 时先「白化」成 \(\mathbf I\) 再用这一结论,这就是 (19.77)。除以 \(q\) 是为了让统计量和 \(F_{q,\infty}\) 表对上。
19.3.3 多个系数的置信集
置信集是不被 F 检验拒绝的参数值的集合。设 \(\boldsymbol\delta=\mathbf R\boldsymbol\beta\)(\(q\) 维,\(\mathbf R\) 由 0、1 组成,挑出关心的系数),\(\hat{\boldsymbol\delta}=\mathbf R\hat{\boldsymbol\beta}\)。95% 置信集为
19.4 误差正态时回归统计量的分布
若误差条件于 \(\mathbf X\) 同方差且正态(六条假设全部成立):\(\hat{\boldsymbol\beta}\) 有限样本条件多元正态;\(s_{\hat u}^2\) 正比于 \(\chi^2_{n-k-1}\);仅同方差 t 统计量服从 \(t_{n-k-1}\);仅同方差 F 统计量服从 \(F_{q,n-k-1}\)。关键工具是两个投影矩阵。
19.4.1 投影矩阵 \(\mathbf P_X\) 与 \(\mathbf M_X\)
二者都对称且幂等(\(\mathbf C\mathbf C=\mathbf C\))。验证 \(\mathbf P_X\) 幂等:\(\mathbf P_X\mathbf P_X=\mathbf X(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf X(\mathbf X'\mathbf X)^{-1}\mathbf X'=\mathbf P_X\)。其他性质(习题 19.5):
几何含义:任意 \(n\) 维向量 \(\mathbf Z=\mathbf P_X\mathbf Z+\mathbf M_X\mathbf Z\),前者是 \(\mathbf Z\) 在 \(\mathbf X\) 列空间上的正交投影,后者与 \(\mathbf X\) 的每一列正交。
白话解释:把 \(\mathbf P_X\) 理解为一台机器:输入任何序列,输出「能被 \(\mathbf X\) 的线性组合解释的部分」;\(\mathbf M_X\) 输出「解释不了的残差」。在量化语言里,\(\mathbf P_X\mathbf Y\) 是收益中被因子解释的部分,\(\mathbf M_X\mathbf Y\) 是特质收益。 「幂等」的意思是用两次和用一次一样:已经投影到 \(\mathbf X\) 空间的东西,再投影一次不变;已经是残差的东西,再取残差还是它自己。这和「对已经行业中性化的因子再做一次行业中性化,结果不变」是同一件事。 「迹」(trace,记 \(\mathrm{tr}\))是方阵对角元之和。「对称幂等矩阵的秩等于迹」使得秩这个抽象概念可以直接算出来:\(\mathrm{tr}(\mathbf M_X)=n-k-1\),就是残差的自由度。示例一输出 \(\mathrm{tr}(\mathbf M_X)=496\) 验证的正是这一点。
- 拟合值与残差:
\[\hat{\mathbf Y}=\mathbf X\hat{\boldsymbol\beta}=\mathbf P_X\mathbf Y,\tag{19.27}\]\[\hat{\mathbf U}=\mathbf Y-\hat{\mathbf Y}=\mathbf M_X\mathbf Y=\mathbf M_X(\mathbf X\boldsymbol\beta+\mathbf U)=\mathbf M_X\mathbf U.\tag{19.28}\]
- 正交性:\(\hat{\mathbf Y}'\hat{\mathbf U}=\mathbf Y'\mathbf P_X'\mathbf M_X\mathbf Y=0\),因为 \(\mathbf P_X\mathbf M_X=\mathbf P_X-\mathbf P_X\mathbf P_X=\mathbf 0\)。
- 回归标准误:由于 \(\mathbf M_X\) 对称幂等,
\[s_{\hat u}^2=\frac1{n-k-1}\sum\hat u_i^2=\frac1{n-k-1}\hat{\mathbf U}'\hat{\mathbf U}=\frac1{n-k-1}\mathbf U'\mathbf M_X\mathbf U.\tag{19.29}\]
19.4.2 \(\hat{\boldsymbol\beta}\) 的精确分布
由 (19.14),\(\hat{\boldsymbol\beta}-\boldsymbol\beta=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf U\) 是 \(\mathbf U\) 的线性函数;由 (19.8),\(\mathbf U\mid\mathbf X\) 多元正态。正态向量的线性变换仍是正态(附录 19.2 式 19.74),均值 \(\boldsymbol\beta\),协方差
19.4.3 \(s_{\hat u}^2\) 的精确分布
证明:\(\mathbf U/\sigma_u\sim N(\mathbf 0,\mathbf I_n)\),\(\mathbf M_X\) 对称幂等、秩 \(n-k-1\),由附录 19.2 的 (19.78),二次型 \(\mathbf U'\mathbf M_X\mathbf U/\sigma_u^2\sim\chi^2_{n-k-1}\)。自由度调整保证无偏:\(E(\mathbf U'\mathbf M_X\mathbf U)=(n-k-1)\sigma_u^2\)。这里自由度是 \(\mathrm{rank}(\mathbf M_X)\),给了 18.4 节「为什么是 \(n-2\)」一个精确答案:\(k=1\) 时 \(n-k-1=n-2\)。
注意 (19.31) 依赖正态性。原书复习题 19.3:假设 1–5 成立而 6 不成立时,(19.31) 不再成立,只剩下 \(E(s_{\hat u}^2)=\sigma_u^2\) 和大样本下 \(s_{\hat u}^2\xrightarrow{p}\sigma_u^2\)。
推导拆解:无偏性 \(E(\mathbf U'\mathbf M_X\mathbf U\mid\mathbf X)=(n-k-1)\sigma_u^2\) 不需要正态,三步就够。 第一步,标量等于自己的迹:\(\mathbf U'\mathbf M_X\mathbf U=\mathrm{tr}(\mathbf U'\mathbf M_X\mathbf U)\)。 第二步,迹的循环性 \(\mathrm{tr}(\mathbf A\mathbf B)=\mathrm{tr}(\mathbf B\mathbf A)\):\(=\mathrm{tr}(\mathbf M_X\mathbf U\mathbf U')\)。 第三步,期望与迹可交换(迹是线性运算),\(\mathbf M_X\) 给定 \(\mathbf X\) 时是常数:\(E[\cdot]=\mathrm{tr}(\mathbf M_X\,\sigma_u^2\mathbf I_n)=\sigma_u^2\mathrm{tr}(\mathbf M_X)=\sigma_u^2(n-k-1)\)。 这里只用了 (19.7)(同方差、不相关),没用正态。正态只在「是不是卡方」这一步才需要。
19.4.4 仅同方差标准误、t 与 F 统计量
证明见本章末附录 19.4。(19.36) 称为 F 统计量的 Wald 形式(以 Abraham Wald 命名)。它与第 7 章 (7.13) 基于约束与无约束回归 SSR 的同方差 F 统计量看似不同,实际完全等价(习题 19.13):约束最小二乘的解为
怎么选? 原书复习题 19.2 给了清楚的决策规则(500 个观测):
- 假设 1–4 成立,5、6 可疑:用稳健标准误和正态临界值;
- 1–5 成立,6 可疑:稳健或仅同方差标准误都可以,用大样本正态临界值;
- 1–6 全成立:仅同方差标准误配 \(t_{n-k-1}\) 临界值(精确)。
19.5 同方差误差下 OLS 估计量的效率
19.5.1 多元回归的高斯–马尔可夫条件
它们由 Key Concept 19.1 的前五条蕴含(由 19.6、19.7)。单回归元版本 (5.31) 的第二、三条(同方差、不相关)在矩阵记号中合并为 (ii)。
19.5.2 线性条件无偏估计量
线性:\(\tilde{\boldsymbol\beta}=\mathbf A'\mathbf Y\),\(\mathbf A\) 是 \(n\times(k+1)\) 的权重矩阵,可以依赖 \(\mathbf X\) 和非随机常数,但不依赖 \(\mathbf Y\)。(19.39) 条件无偏:\(E(\tilde{\boldsymbol\beta}\mid\mathbf X)=\boldsymbol\beta\)。
OLS 是线性的,\(\hat{\mathbf A}=\mathbf X(\mathbf X'\mathbf X)^{-1}\);也是条件无偏的:\(E(\hat{\boldsymbol\beta}\mid\mathbf X)=\boldsymbol\beta+(\mathbf X'\mathbf X)^{-1}\mathbf X'E(\mathbf U\mid\mathbf X)=\boldsymbol\beta\)。
19.5.3 高斯–马尔可夫定理
难点在于:估计量是向量,「方差更小」该怎么定义?原书的办法是比较任意线性组合 \(\mathbf c'\boldsymbol\beta\) 的估计 \(\mathbf c'\tilde{\boldsymbol\beta}\) 与 \(\mathbf c'\hat{\boldsymbol\beta}\),两者都是标量。
Key Concept 19.3(多元回归的高斯–马尔可夫定理) 在 (19.38) 下,OLS 是 BLUE:对任意线性条件无偏估计量 \(\tilde{\boldsymbol\beta}\) 和任意非零非随机向量 \(\mathbf c\),
\[\mathrm{var}(\mathbf c'\hat{\boldsymbol\beta}\mid\mathbf X)\le\mathrm{var}(\mathbf c'\tilde{\boldsymbol\beta}\mid\mathbf X),\]且对所有 \(\mathbf c\) 取等号当且仅当 \(\tilde{\boldsymbol\beta}=\hat{\boldsymbol\beta}\)。
结论对任何线性组合都成立,等价于说 \(\mathrm{var}(\tilde{\boldsymbol\beta}\mid\mathbf X)-\mathrm{var}(\hat{\boldsymbol\beta}\mid\mathbf X)\) 是半正定矩阵。证明见附录 19.5,核心只有两行,非常漂亮。
金融直觉:为什么要比较「任意线性组合」?因为你最终关心的往往不是单个系数,而是某个组合,比如组合的预期收益 \(\mathbf d'\boldsymbol\beta\) 或两个因子溢价之差。定理保证:无论你关心哪个组合,用 OLS 系数算出来的估计方差都不会比其他线性无偏方法大。矩阵「半正定」就是这句话的紧凑写法,和「协方差矩阵半正定 ⇔ 任何组合方差非负」是同一个概念。 记号 \(\succeq0\)(见本章小结表)表示「半正定」。
附录 19.1 矩阵代数概要
原书说明这里只是复习,不能代替线性代数课程。系统内容见第 01 册。
- 向量与矩阵:\(n\) 维列向量 \(\mathbf b\),行向量 \(\mathbf c\);\(n\times m\) 矩阵 \(\mathbf A\),\(a_{ij}\) 为第 \(i\) 行第 \(j\) 列元素。一维的数是标量。
- 特殊矩阵:方阵;对称阵(\(a_{ij}=a_{ji}\));对角阵;单位阵 \(\mathbf I_n\);零矩阵 \(\mathbf 0_{n\times m}\)。
- 转置:\(\mathbf A'\) 的 \((j,i)\) 元是 \(\mathbf A\) 的 \((i,j)\) 元。
- 运算:\(\mathbf a'\mathbf b=\sum a_ib_i\),\(\mathbf a'\mathbf a=\sum a_i^2\)。\(n\times m\) 的 \(\mathbf A\) 与 \(m\times r\) 的 \(\mathbf B\) 可乘(conformable),\((\mathbf A\mathbf B)_{ij}=\sum_ka_{ik}b_{kj}\)。性质:结合律、分配律、\((\mathbf A+\mathbf B)'=\mathbf A'+\mathbf B'\)、\((\mathbf A\mathbf B)'=\mathbf B'\mathbf A'\)。一般 \(\mathbf A\mathbf B\ne\mathbf B\mathbf A\),对角阵之间可交换。
- 逆:\(\mathbf A^{-1}\mathbf A=\mathbf I_n\),存在则称可逆或非奇异;\((\mathbf A\mathbf B)^{-1}=\mathbf B^{-1}\mathbf A^{-1}\)。
- 正定 / 半正定:对所有非零 \(\mathbf c\),\(\mathbf c'\mathbf V\mathbf c>0\)(\(\ge0\))。正定 ⇒ 可逆。
- 线性无关:不存在不全为零的 \(c_1,\dots,c_k\) 使 \(\sum c_j\mathbf a_j=\mathbf 0\)。
- 秩:线性无关列的最大个数。等于列数称列满秩,此时不存在非零 \(\mathbf c\) 使 \(\mathbf A\mathbf c=\mathbf 0\),且 \(\mathbf A'\mathbf A\) 非奇异(因为 \(\mathbf c'\mathbf A'\mathbf A\mathbf c=\|\mathbf A\mathbf c\|^2>0\))。\(n\times n\) 且秩为 \(n\) ⇒ 非奇异。
- 迹:对角元之和。\(\mathrm{tr}(\mathbf A)=\mathrm{tr}(\mathbf A')\),\(\mathrm{tr}(\mathbf A+\mathbf B)=\mathrm{tr}\mathbf A+\mathrm{tr}\mathbf B\),\(\mathrm{tr}(\mathbf A\mathbf B)=\mathrm{tr}(\mathbf B\mathbf A)\),\(\mathrm{tr}(\mathbf B\mathbf A\mathbf B^{-1})=\mathrm{tr}(\mathbf A)\),\(\mathbf c'\mathbf B\mathbf c=\mathrm{tr}(\mathbf B\mathbf c\mathbf c')\)。最后一条在附录 19.7 推导 MSPE 时要用。
- 矩阵平方根:对称正定 \(\mathbf V\) 存在 \(\mathbf F\) 使 \(\mathbf F'\mathbf F=\mathbf V\);存在但不唯一(如 Cholesky 因子、对称平方根 \(\mathbf Q\boldsymbol\Lambda^{1/2}\mathbf Q'\))。\(\mathbf F\) 可逆,且 \(\mathbf F'^{-1}\mathbf V\mathbf F^{-1}=\mathbf I_n\)。(另一种常见写法是 \(\mathbf F\mathbf V^{-1}\mathbf F'=\mathbf I_n\),由 \(\mathbf V^{-1}=\mathbf F^{-1}\mathbf F'^{-1}\) 可知二者等价。)GLS 用的就是它。
- 特征值与特征向量:\(\mathbf A\mathbf q=\lambda\mathbf q\),\(\mathbf q'\mathbf q=1\)。\(n\) 阶矩阵有 \(n\) 个特征值(可重复)。对称正定 \(\mathbf V\) 的特征值都是正实数、特征向量为实,且有谱分解 \(\mathbf V=\mathbf Q\boldsymbol\Lambda\mathbf Q'\),\(\mathbf Q'\mathbf Q=\mathbf I_n\)。\(\mathrm{tr}(\mathbf V)=\sum\lambda_i\),即迹等于特征值之和(原书此处误写为「特征向量之和」)。
- 幂等矩阵:\(\mathbf C\mathbf C=\mathbf C\)。对称幂等矩阵半正定,有 \(r=\mathrm{rank}(\mathbf C)\) 个特征值为 1、\(n-r\) 个为 0(习题 19.10)。证明:\(\mathbf C\mathbf q=\lambda\mathbf q\) ⇒ \(\mathbf C\mathbf C\mathbf q=\lambda^2\mathbf q=\lambda\mathbf q\) ⇒ \(\lambda\in\{0,1\}\)。
附录 19.2 多元分布
- 均值向量与协方差矩阵:\(E(\mathbf V)=\boldsymbol\mu_V\),
\[\boldsymbol\Sigma_V=E[(\mathbf V-\boldsymbol\mu_V)(\mathbf V-\boldsymbol\mu_V)'],\tag{19.72}\]对角为方差,非对角为协方差。
- 多元正态密度:
\[f(\mathbf V)=\frac1{\sqrt{(2\pi)^m\det(\boldsymbol\Sigma_V)}}\exp\left[-\frac12(\mathbf V-\boldsymbol\mu_V)'\boldsymbol\Sigma_V^{-1}(\mathbf V-\boldsymbol\mu_V)\right],\tag{19.73}\]记作 \(N(\boldsymbol\mu_V,\boldsymbol\Sigma_V)\)。联合正态且不相关(协方差矩阵块对角)⇒ 独立。\(V_i\) i.i.d. \(N(0,\sigma^2)\) 时 \(\boldsymbol\Sigma_V=\sigma^2\mathbf I_m\),密度是一元正态密度之积。
- 线性组合与二次型:\(\mathbf V\sim N(\boldsymbol\mu_V,\boldsymbol\Sigma_V)\),\(\mathbf A,\mathbf B,\mathbf d\) 非随机:
- \(\mathbf d+\mathbf A\mathbf V\sim N(\mathbf d+\mathbf A\boldsymbol\mu_V,\mathbf A\boldsymbol\Sigma_V\mathbf A')\);(19.74)
- \(\mathrm{cov}(\mathbf A\mathbf V,\mathbf B\mathbf V)=\mathbf A\boldsymbol\Sigma_V\mathbf B'\);(19.75)
- 若 \(\mathbf A\boldsymbol\Sigma_V\mathbf B'=\mathbf 0\),则 \(\mathbf A\mathbf V\) 与 \(\mathbf B\mathbf V\) 独立;(19.76)
- \((\mathbf V-\boldsymbol\mu_V)'\boldsymbol\Sigma_V^{-1}(\mathbf V-\boldsymbol\mu_V)\sim\chi^2_m\);(19.77)
- \(\mathbf U\sim N(\mathbf 0,\mathbf I_m)\),\(\mathbf C\) 对称幂等 ⇒ \(\mathbf U'\mathbf C\mathbf U\sim\chi^2_r\),\(r=\mathrm{rank}(\mathbf C)\)。(19.78)
(19.78) 的证明思路(习题 19.11):谱分解 \(\mathbf C=\mathbf Q\boldsymbol\Lambda\mathbf Q'\),\(\boldsymbol\Lambda\) 对角元为 \(r\) 个 1、\(n-r\) 个 0;\(\mathbf W=\mathbf Q'\mathbf U\sim N(\mathbf 0,\mathbf I)\);于是 \(\mathbf U'\mathbf C\mathbf U=\mathbf W'\boldsymbol\Lambda\mathbf W\) 是 \(r\) 个独立标准正态的平方和。(19.77) 是它的推论:取 \(\mathbf F\) 使 \(\mathbf F\boldsymbol\Sigma_V\mathbf F'=\mathbf I\),标准化后用 \(\mathbf C=\mathbf I_m\)。
附录 19.3 \(\hat{\boldsymbol\beta}\) 渐近分布的推导
分母:\(\mathbf X'\mathbf X/n=\frac1n\sum\mathbf X_i\mathbf X_i'\) 的 \((j,l)\) 元是 \(\frac1n\sum X_{ji}X_{li}\)。\(\mathbf X_i\) i.i.d.;由四阶矩有限和 Cauchy–Schwarz,\(X_{ji}X_{li}\) 有有限二阶矩;由 LLN,\(\to E(X_{ji}X_{li})\)。故 \(\mathbf X'\mathbf X/n\xrightarrow{p}\mathbf Q_X\)。
分子:\(\mathbf X'\mathbf U/\sqrt n=\frac1{\sqrt n}\sum\mathbf V_i\),\(\mathbf V_i=\mathbf X_iu_i\)。由假设 1 和迭代期望律,\(E(\mathbf V_i)=E[\mathbf X_iE(u_i\mid\mathbf X_i)]=\mathbf 0\);\(\mathbf V_i\) i.i.d.;对任意非随机 \(\mathbf c\),
合并:由 (19.15)、分母的一致性、假设 4(\(\mathbf Q_X\) 可逆)、连续映射定理(矩阵求逆在可逆点连续)和 Slutsky 定理,得 (19.12)。
附录 19.4 误差正态时检验统计量精确分布的推导
(19.35) 的证明。t 分布的定义需要三个条件:(i) 分子 \(Z\sim N(0,1)\);(ii) \(W\sim\chi^2_m\);(iii) 二者独立。注意 \(\tilde{\boldsymbol\Sigma}_{\hat\beta}=(s_{\hat u}^2/\sigma_u^2)\boldsymbol\Sigma_{\hat\beta|X}\),其中 \(\boldsymbol\Sigma_{\hat\beta|X}=\sigma_u^2(\mathbf X'\mathbf X)^{-1}\)。改写:
(19.37) 的证明。令 \(W_1=(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)'[\mathbf R(\mathbf X'\mathbf X)^{-1}\mathbf R'\sigma_u^2]^{-1}(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)\),\(W_2=(n-k-1)s_{\hat u}^2/\sigma_u^2\),则 \(\tilde F=(W_1/q)/[W_2/(n-k-1)]\)。(i) 原假设下 \(\mathbf R(\hat{\boldsymbol\beta}-\boldsymbol\beta)\sim N(\mathbf 0,\mathbf R(\mathbf X'\mathbf X)^{-1}\mathbf R'\sigma_u^2)\),由 (19.77),\(W_1\sim\chi^2_q\);(ii) 由 (19.31),\(W_2\sim\chi^2_{n-k-1}\);(iii) 由 (19.81) 独立。按 F 分布定义得证。
附录 19.5 多元高斯–马尔可夫定理的证明
设 \(\tilde{\boldsymbol\beta}=\mathbf A'\mathbf Y\) 线性条件无偏。代入 \(\mathbf Y\):\(\tilde{\boldsymbol\beta}=(\mathbf A'\mathbf X)\boldsymbol\beta+\mathbf A'\mathbf U\)。由条件 (i),\(E(\tilde{\boldsymbol\beta}\mid\mathbf X)=(\mathbf A'\mathbf X)\boldsymbol\beta\)。要对所有 \(\boldsymbol\beta\) 无偏,必须 \(\mathbf A'\mathbf X=\mathbf I_{k+1}\)。于是 \(\tilde{\boldsymbol\beta}=\boldsymbol\beta+\mathbf A'\mathbf U\),由条件 (ii),
OLS 对应 \(\hat{\mathbf A}=\mathbf X(\mathbf X'\mathbf X)^{-1}\)。把任意 \(\mathbf A\) 写成 \(\mathbf A=\hat{\mathbf A}+\mathbf D\)。关键一步:
证明的本质是勾股定理:任何线性无偏估计量 = OLS + 一个与 OLS「正交」的噪声项,噪声只会增加方差。
推导拆解:几个容易卡住的地方。 (1)「要对所有 \(\boldsymbol\beta\) 无偏,必须 \(\mathbf A'\mathbf X=\mathbf I\)」:\((\mathbf A'\mathbf X)\boldsymbol\beta=\boldsymbol\beta\) 对一切 \(\boldsymbol\beta\) 成立,依次取 \(\boldsymbol\beta\) 为各个单位向量,就得到 \(\mathbf A'\mathbf X\) 的每一列都等于 \(\mathbf I\) 的对应列。 (2)\(\hat{\mathbf A}'\mathbf A\) 的计算:\(\hat{\mathbf A}'=(\mathbf X'\mathbf X)^{-1}\mathbf X'\)(逆矩阵对称,转置后不变),\(\mathbf X'\mathbf A=(\mathbf A'\mathbf X)'=\mathbf I\)。OLS 自己也满足 \(\hat{\mathbf A}'\mathbf X=\mathbf I\),所以 \(\hat{\mathbf A}'\hat{\mathbf A}\) 同样等于 \((\mathbf X'\mathbf X)^{-1}\)。 (3)两式相减:\(\hat{\mathbf A}'(\mathbf A-\hat{\mathbf A})=\hat{\mathbf A}'\mathbf D=\mathbf 0\)。展开 \((\hat{\mathbf A}+\mathbf D)'(\hat{\mathbf A}+\mathbf D)\) 的四项中,两个交叉项 \(\hat{\mathbf A}'\mathbf D\) 和 \(\mathbf D'\hat{\mathbf A}\) 都为零。 (4)\(\mathbf c'\mathbf D'\mathbf D\mathbf c=(\mathbf D\mathbf c)'(\mathbf D\mathbf c)\) 是向量 \(\mathbf D\mathbf c\) 各元素的平方和,必然 \(\ge0\)。
量化实战
1. 本章内容在量化中的用途
多因子回归、风险模型、归因的实现基础。 横截面因子收益回归 \(\mathbf r_t=\mathbf X_t\mathbf f_t+\mathbf u_t\)、时间序列 beta 回归、业绩归因,都是 \(\hat{\boldsymbol\beta}=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\)。代码中用 QR 或 lstsq,不要显式求逆。
Frisch–Waugh 与因子中性化。 原书习题 19.6、19.17 的 Frisch–Waugh 定理:把回归元分成 \([\mathbf X_1,\mathbf X_2]\),则 \(\mathbf X_1\) 的系数等于「\(\mathbf M_{X_2}\mathbf Y\) 对 \(\mathbf M_{X_2}\mathbf X_1\) 回归」的系数:
白话解释:一个常被忽略的细节:公式里 \(\mathbf Y\) 和 \(\mathbf X_1\) 都乘了 \(\mathbf M_{X_2}\),但真正不可少的是对 \(\mathbf X_1\) 中性化。只中性化 \(\mathbf X_1\)、用原始 \(\mathbf Y\) 回归,系数也相同(因为 \(\mathbf X_1'\mathbf M_{X_2}\mathbf Y=(\mathbf M_{X_2}\mathbf X_1)'\mathbf Y\),\(\mathbf M\) 对称幂等),但残差和标准误会不同,因为 \(\mathbf Y\) 里能被行业市值解释的方差没被去掉,跑进了残差。反过来,只中性化 \(\mathbf Y\) 而不中性化 \(\mathbf X_1\),系数一般就不对了。实务中最稳妥的是两边都中性化,或者直接把控制变量放进同一回归。
稳健协方差与 Wald 检验。 检验多个因子收益同时为零、检验组合约束(如 \(\beta_1+\beta_2=1\))、构造组合预期收益 \(\mathbf d'\hat{\boldsymbol\beta}\) 的置信区间(别忘了协方差项)。月度因子收益往往只有几十到一两百期,HC1 可能偏小,应使用 HC3 或 t 近似;面板中按日期或股票聚类(原书习题 19.15)。
回归元相关导致系数「此消彼长」。 原书习题 19.18:同方差、两个回归元时,\(\mathrm{corr}(\hat\beta_1,\hat\beta_2)\to-\rho_{X_1,X_2}\)。价值因子与盈利因子正相关时,两者系数估计负相关:一个高估时另一个往往低估。单独看各自的 t 值会低估它们的联合显著性,应该用联合 F 检验。
样本选择偏差。 原书习题 19.16:数据缺失完全随机或只依赖 \(X\) 时 OLS 仍无偏一致;缺失依赖 \(u\)(例如只观测 \(Y\ge0\) 的样本)时有偏。量化中的幸存者偏差(只用现存股票)、只在有成交时观测价格,都属于后一类。
2. 示例一:手写矩阵 OLS、HC1/HC3、Wald 检验与 Frisch–Waugh
import numpy as np
import statsmodels.api as sm
from scipy import stats
rng = np.random.default_rng(19)
n = 500
# 截面:3 个因子暴露(value, momentum, size),size 与 value 相关;误差异方差
size = rng.standard_normal(n)
value = 0.6 * size + 0.8 * rng.standard_normal(n)
mom = rng.standard_normal(n)
X = np.c_[np.ones(n), value, mom, size]
beta = np.array([0.0, 0.30, 0.20, -0.10])
u = rng.standard_normal(n) * (0.5 + 0.5 * np.abs(size))
Y = X @ beta + u
k1 = X.shape[1]
# --- 手写矩阵 OLS ---
XtX_inv = np.linalg.inv(X.T @ X)
b = XtX_inv @ X.T @ Y
e = Y - X @ b
# 同方差协方差 s^2 (X'X)^{-1}
s2 = e @ e / (n - k1)
V_homo = s2 * XtX_inv
# HC1:(X'X)^{-1} [n/(n-k-1) sum X_i X_i' e_i^2] (X'X)^{-1}
meat = (X * e[:, None] ** 2).T @ X
V_hc1 = XtX_inv @ meat @ XtX_inv * n / (n - k1)
# HC3:残差除以 (1-h_ii)
hii = np.einsum("ij,jk,ik->i", X, XtX_inv, X)
meat3 = (X * (e / (1 - hii))[:, None] ** 2).T @ X
V_hc3 = XtX_inv @ meat3 @ XtX_inv
sm_fit = sm.OLS(Y, X).fit(cov_type="HC1")
print("b :", b.round(4))
print("SE 同方差 :", np.sqrt(np.diag(V_homo)).round(4))
print("SE HC1 :", np.sqrt(np.diag(V_hc1)).round(4), " statsmodels:", sm_fit.bse.round(4))
print("SE HC3 :", np.sqrt(np.diag(V_hc3)).round(4))
# --- 稳健 Wald F:H0: beta_value = beta_mom = 0 以及 H0: beta_value + beta_mom = 0.5 ---
def wald(R, r, V):
d = R @ b - r
F = d @ np.linalg.solve(R @ V @ R.T, d) / R.shape[0]
return F, stats.f.sf(F, R.shape[0], 1e8) # F_{q,inf}
R1 = np.array([[0, 1, 0, 0], [0, 0, 1, 0]]); r1 = np.zeros(2)
R2 = np.array([[0, 1, 1, 0]]); r2 = np.array([0.5])
print("H0: b_val=b_mom=0 F=%.1f p=%.2g" % wald(R1, r1, V_hc1))
print("H0: b_val+b_mom=0.5 F=%.2f p=%.3f" % wald(R2, r2, V_hc1))
# --- 线性组合的置信区间 d'b ± 1.96 sqrt(d'Vd):组合暴露 d=(0,1,1,0) 的预期收益 ---
d = np.array([0, 1, 1, 0])
se_d = np.sqrt(d @ V_hc1 @ d)
print(f"d'b = {d@b:.3f}, 95% CI = [{d@b-1.96*se_d:.3f}, {d@b+1.96*se_d:.3f}]")
# --- Frisch-Waugh:先把 value 对 size 中性化,再回归 ---
W = X[:, [0, 3]] # 常数 + size
M_W = np.eye(n) - W @ np.linalg.solve(W.T @ W, W.T)
value_neu = M_W @ X[:, 1]; mom_neu = M_W @ X[:, 2]; Y_neu = M_W @ Y
b_fwl = np.linalg.lstsq(np.c_[value_neu, mom_neu], Y_neu, rcond=None)[0]
print("FWL 系数 (value, mom):", b_fwl.round(6), " 全回归:", b[1:3].round(6))
print("P_X 幂等? ", np.allclose((P := X @ XtX_inv @ X.T) @ P, P), " trace(M_X) =", round(np.trace(np.eye(n) - P), 6))
输出:
b : [-0.0131 0.2895 0.284 -0.1832]
SE 同方差 : [0.0392 0.0494 0.0391 0.0506]
SE HC1 : [0.0392 0.0465 0.038 0.0707] statsmodels: [0.0392 0.0465 0.038 0.0707]
SE HC3 : [0.0394 0.047 0.0385 0.0714]
H0: b_val=b_mom=0 F=43.2 p=1.8e-19
H0: b_val+b_mom=0.5 F=1.37 p=0.243
d'b = 0.573, 95% CI = [0.450, 0.697]
FWL 系数 (value, mom): [0.289454 0.284016] 全回归: [0.289454 0.284016]
P_X 幂等? True trace(M_X) = 496.0
(为了演示公式,这里显式求了逆;生产代码应换成 lstsq 或 QR。)
解读:手写 HC1 与 statsmodels 完全一致。误差方差随 \(|size|\) 增大,所以 size 系数的稳健标准误(0.071)比同方差标准误(0.051)大 40%,用后者会高估显著性。Wald 检验拒绝「value 与 momentum 同时为零」,不拒绝「二者之和为 0.5」。Frisch–Waugh:把 value、momentum 和收益都对(常数、size)取残差后再回归,系数与全回归精确相同。\(\mathrm{tr}(\mathbf M_X)=500-4=496\),即残差自由度。
3. 示例二:同方差 t、HC1、HC3 的小样本检验水平
回归元含一个右偏变量(\(e^Z\),产生高杠杆点),检验真实为零的系数,统计名义 5% 检验的实际拒绝率。
import numpy as np
from scipy import stats
rng = np.random.default_rng(8)
def sim(n, hetero, nsim=20000, k=3):
rej = {"同方差SE+N(0,1)": 0, "同方差SE+t(n-k-1)": 0, "HC1+N(0,1)": 0, "HC3+N(0,1)": 0}
crit_t = stats.t.ppf(0.975, n - k - 1)
for _ in range(nsim):
X = np.c_[np.ones(n), rng.standard_normal((n, k))]
X[:, 1] = np.exp(X[:, 1]) # 一个右偏回归元(高杠杆点)
sd = X[:, 1] if hetero else 1.0
y = rng.standard_normal(n) * sd # 真系数全为 0
XtXi = np.linalg.inv(X.T @ X)
b = XtXi @ X.T @ y
e = y - X @ b
se_h = np.sqrt(e @ e / (n - k - 1) * XtXi[1, 1])
meat = (X * e[:, None] ** 2).T @ X
se1 = np.sqrt((XtXi @ meat @ XtXi)[1, 1] * n / (n - k - 1))
hii = np.einsum("ij,jk,ik->i", X, XtXi, X)
meat3 = (X * (e / (1 - hii))[:, None] ** 2).T @ X
se3 = np.sqrt((XtXi @ meat3 @ XtXi)[1, 1])
rej["同方差SE+N(0,1)"] += abs(b[1] / se_h) > 1.96
rej["同方差SE+t(n-k-1)"] += abs(b[1] / se_h) > crit_t
rej["HC1+N(0,1)"] += abs(b[1] / se1) > 1.96
rej["HC3+N(0,1)"] += abs(b[1] / se3) > 1.96
return {kk: float(round(v / nsim, 3)) for kk, v in rej.items()}
for n in [15, 40, 200]:
print(f"n={n:3d} 同方差正态误差:", sim(n, False))
print(f"n={n:3d} 异方差误差 :", sim(n, True))
输出:
n= 15 同方差正态误差: {'同方差SE+N(0,1)': 0.077, '同方差SE+t(n-k-1)': 0.05, 'HC1+N(0,1)': 0.171, 'HC3+N(0,1)': 0.056}
n= 15 异方差误差 : {'同方差SE+N(0,1)': 0.446, '同方差SE+t(n-k-1)': 0.401, 'HC1+N(0,1)': 0.42, 'HC3+N(0,1)': 0.139}
n= 40 同方差正态误差: {'同方差SE+N(0,1)': 0.055, '同方差SE+t(n-k-1)': 0.048, 'HC1+N(0,1)': 0.135, 'HC3+N(0,1)': 0.063}
n= 40 异方差误差 : {'同方差SE+N(0,1)': 0.528, '同方差SE+t(n-k-1)': 0.515, 'HC1+N(0,1)': 0.314, 'HC3+N(0,1)': 0.129}
n=200 同方差正态误差: {'同方差SE+N(0,1)': 0.052, '同方差SE+t(n-k-1)': 0.051, 'HC1+N(0,1)': 0.092, 'HC3+N(0,1)': 0.064}
n=200 异方差误差 : {'同方差SE+N(0,1)': 0.64, '同方差SE+t(n-k-1)': 0.638, 'HC1+N(0,1)': 0.178, 'HC3+N(0,1)': 0.09}
三点结论:
- 19.4 节的精确理论得到验证:同方差正态误差下,仅同方差标准误配 \(t_{n-k-1}\) 临界值在 \(n=15\) 时拒绝率恰好 0.050;配正态临界值则偏大(0.077)。
- 异方差时仅同方差标准误完全失效,而且样本越大越糟(\(n=200\) 时 64%),因为它收敛到错误的值。
- 高杠杆回归元下 HC1 收敛很慢:\(n=200\) 时仍有 18% 的拒绝率;HC3 好得多(9%)。Angrist–Pischke「\(n>50\) 即可」的经验在回归元分布很偏时不成立。量化中市值、成交额、波动率这类右偏变量常作为回归元,不做变换(取对数、截尾)时应优先用 HC3。
本章小结
矩阵形式 \(\mathbf Y=\mathbf X\boldsymbol\beta+\mathbf U\) 让多元回归的理论变得紧凑。OLS 解正规方程 \(\mathbf X'\mathbf X\hat{\boldsymbol\beta}=\mathbf X'\mathbf Y\),列满秩保证唯一解;一切推导从 \(\hat{\boldsymbol\beta}-\boldsymbol\beta=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf U\) 出发。前四条假设下,OLS 渐近正态,协方差为三明治 \(\mathbf Q_X^{-1}\boldsymbol\Sigma_V\mathbf Q_X^{-1}/n\),HC1 一致估计它,小样本可用 HC2/HC3。线性假设统一写成 \(\mathbf R\boldsymbol\beta=\mathbf r\),稳健 Wald F 渐近服从 \(F_{q,\infty}\),置信集是椭球。同方差正态误差下,借助投影矩阵 \(\mathbf P_X,\mathbf M_X\) 和正态二次型的卡方性质,可得 \(\hat{\boldsymbol\beta}\) 精确正态、\(s_{\hat u}^2\) 正比于 \(\chi^2_{n-k-1}\) 且二者独立,从而 t、F 精确服从 \(t_{n-k-1}\)、\(F_{q,n-k-1}\)。高斯–马尔可夫条件下 OLS 是 BLUE,证明只需把任意线性无偏估计写成 OLS 加正交扰动。
| 概念 | 公式 / 要点 |
|---|---|
| OLS | \(\hat{\boldsymbol\beta}=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\);\(\hat{\boldsymbol\beta}-\boldsymbol\beta=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf U\) |
| 渐近分布 | \(\sqrt n(\hat{\boldsymbol\beta}-\boldsymbol\beta)\xrightarrow{d}N(\mathbf 0,\mathbf Q_X^{-1}\boldsymbol\Sigma_V\mathbf Q_X^{-1})\),\(\mathbf V_i=\mathbf X_iu_i\) |
| HC1 | \((\mathbf X'\mathbf X)^{-1}\left[\frac{n}{n-k-1}\sum\mathbf X_i\mathbf X_i'\hat u_i^2\right](\mathbf X'\mathbf X)^{-1}\) |
| HC3 | 把 \(\hat u_i^2\) 换成 \(\hat u_i^2/(1-h_{ii})^2\) |
| 线性组合 CI | \(\mathbf d'\hat{\boldsymbol\beta}\pm1.96\sqrt{\mathbf d'\hat{\boldsymbol\Sigma}_{\hat\beta}\mathbf d}\) |
| 稳健 Wald F | \((\mathbf R\hat{\boldsymbol\beta}-\mathbf r)'[\mathbf R\hat{\boldsymbol\Sigma}_{\hat\beta}\mathbf R']^{-1}(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)/q\xrightarrow{d}F_{q,\infty}\) |
| 投影矩阵 | \(\mathbf P_X=\mathbf X(\mathbf X'\mathbf X)^{-1}\mathbf X'\),\(\mathbf M_X=\mathbf I-\mathbf P_X\);对称幂等,秩 \(k+1\)、\(n-k-1\) |
| 精确分布 | \(\hat{\boldsymbol\beta}\mid\mathbf X\sim N(\boldsymbol\beta,\sigma_u^2(\mathbf X'\mathbf X)^{-1})\);\(s^2\sim\frac{\sigma^2}{n-k-1}\chi^2_{n-k-1}\);二者独立 |
| 高斯–马尔可夫 | \(\mathrm{var}(\tilde{\boldsymbol\beta})-\mathrm{var}(\hat{\boldsymbol\beta})=\sigma_u^2\mathbf D'\mathbf D\succeq0\) |
| Frisch–Waugh | \(\hat{\boldsymbol\beta}_1=(\mathbf X_1'\mathbf M_{X_2}\mathbf X_1)^{-1}\mathbf X_1'\mathbf M_{X_2}\mathbf Y\) |
练习
基础
- (原书复习题 19.1)收入对性别回归,同时放入 female、male 两个虚拟变量和截距。写出 \(n=5\) 时的 \(\mathbf X\),说明其列线性相关,并给出两种修正方法。 答案要点:常数列 = female + male;去掉一个虚拟变量,或去掉截距。
- (原书习题 19.4)用矩阵公式推出单回归元的 OLS 公式,以及同方差下 \(\hat\beta_0\) 的方差。 提示:\(\mathbf X'\mathbf X=\begin{pmatrix}n&\sum X_i\\\sum X_i&\sum X_i^2\end{pmatrix}\),用 \(2\times2\) 逆矩阵公式;\(\mathrm{var}(\hat\beta_0)=\sigma_u^2\sum X_i^2/[n\sum(X_i-\bar X)^2]\)。
- (原书习题 19.1)收入对年龄的二次回归写成矩阵形式,并把「线性 vs 二次」的检验写成 \(\mathbf R\boldsymbol\beta=\mathbf r\)。 答案要点:\(\mathbf R=[0\ 0\ 1]\),\(r=0\)。
- (原书复习题 19.3)假设 1–5 成立而 6 不成立时,(19.31) 是否成立?\(E(s_{\hat u}^2)=\sigma_u^2\) 呢? 答案要点:卡方分布不成立;无偏性仍成立(只用到 \(E(\mathbf U'\mathbf M_X\mathbf U\mid\mathbf X)=\sigma_u^2\mathrm{tr}(\mathbf M_X)\))。
- 为什么组合预期收益 \(\beta_1+\beta_2\) 的标准误不能用 \(\sqrt{SE_1^2+SE_2^2}\)?什么情况下二者相同? 提示:漏了 \(2\mathrm{cov}(\hat\beta_1,\hat\beta_2)\);协方差为零时相同。
进阶
- (原书习题 19.5、19.10)证明 \(\mathbf P_X,\mathbf M_X\) 对称幂等,\(\mathrm{rank}(\mathbf M_X)=n-k-1\);证明对称幂等矩阵的特征值为 0 或 1,迹等于秩。 提示:迹的循环性;\(\lambda^2=\lambda\)。
- (原书习题 19.13)用拉格朗日乘子法推导约束最小二乘 \(\tilde{\boldsymbol\beta}\),并证明 \(SSR_{\text{约束}}-SSR_{\text{无约束}}=(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)'[\mathbf R(\mathbf X'\mathbf X)^{-1}\mathbf R']^{-1}(\mathbf R\hat{\boldsymbol\beta}-\mathbf r)\),从而 Wald F 与 SSR 形式的 F 等价。 提示:\(\mathbf Y-\mathbf X\tilde{\boldsymbol\beta}=\hat{\mathbf U}+\mathbf X(\hat{\boldsymbol\beta}-\tilde{\boldsymbol\beta})\),交叉项因 \(\mathbf X'\hat{\mathbf U}=\mathbf 0\) 消失。
- (原书习题 19.17)用分块矩阵求逆证明 Frisch–Waugh 定理。(原书习题 19.6)再用它证明面板固定效应的「虚拟变量」估计量与「去均值」估计量相同。 提示:\(\mathbf M_W\) 对实体虚拟变量就是组内去均值算子。
- (原书习题 19.18)同方差、两个回归元(含截距)时,证明 \(\mathrm{corr}(\hat\beta_1,\hat\beta_2)\to-\rho_{X_1,X_2}\)。 提示:去均值后 \(\mathbf Q\) 的逆的非对角元符号与相关系数相反。
- (原书习题 19.7、19.9)\(X\) 独立于 \((W,u)\),而 \(W\) 与 \(u\) 相关。证明 \(\hat\beta_1\) 一致、\(\hat\beta_2\) 不一致;并比较含与不含 \(W\) 时 \(\hat\beta_1\) 的渐近方差。这对「因子回归中加入控制变量」有何启示? 提示:控制变量的系数没有因果解释,但能降低残差方差、提高关注系数的精度。
原书推荐习题:19.5、19.10、19.11(投影矩阵、幂等矩阵与卡方二次型);19.6、19.17(Frisch–Waugh 与固定效应等价);19.9(条件均值独立);19.13(约束最小二乘与 Wald F 等价);19.15(聚类标准误一致性);19.16(缺失数据与样本选择);19.18(回归元相关导致系数估计负相关);19.2(由样本矩手算 OLS);复习题 19.1–19.3。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 第 19 章导言 | 第 19 章开篇 | p.714–715 |
| 矩阵记号、扩展最小二乘假设、OLS(Key Concept 19.1,式 19.1–19.11) | 19.1 | p.715–718 |
| 多元 CLT、OLS 渐近正态、稳健标准误、线性组合 CI(Key Concept 19.2,式 19.12–19.19) | 19.2 | p.718–721 |
| 联合假设检验与置信集(式 19.20–19.23) | 19.3 | p.722–723 |
| 投影矩阵与正态误差下的精确分布(式 19.24–19.37) | 19.4 | p.723–727 |
| 高斯–马尔可夫定理(Key Concept 19.3,式 19.38–19.39) | 19.5 | p.727–728 |
| 复习题与习题 | 第 19 章末 | p.743–749 |
| 附录 19.1 矩阵代数概要 | 附录 19.1 | p.749–752 |
| 附录 19.2 多元分布(式 19.72–19.78) | 附录 19.2 | p.753–754 |
| 附录 19.3 \(\hat{\boldsymbol\beta}\) 渐近分布推导(式 19.79) | 附录 19.3 | p.754 |
| 附录 19.4 精确分布的推导(式 19.80–19.81) | 附录 19.4 | p.755–756 |
| 附录 19.5 高斯–马尔可夫定理的证明(式 19.82–19.84) | 附录 19.5 | p.756–757 |
| HC3 小样本模拟、因子中性化(本教材补充) | — | — |
注:原书页码 = PDF 页码 − 1。