第 09 章 基于多元回归的研究评估
学习目标
读完本章,你应当能够:
- 区分内部有效性(internal validity)与外部有效性(external validity),并说出内部有效性的两个组成部分:估计量一致、标准误正确。
- 列出让 OLS 有偏且不一致的五个威胁:遗漏变量、函数形式误设、变量误差、样本选择、联立因果,说明它们的共同根源是「回归元与误差项相关」。
- 推导经典测量误差下的衰减公式 \(\hat\beta_1\xrightarrow{p}\frac{\sigma_X^2}{\sigma_X^2+\sigma_w^2}\beta_1\),以及联立因果下 \(\mathrm{cov}(X_i,u_i)=\gamma_1\sigma_u^2/(1-\gamma_1\beta_1)\)。
- 判断缺失数据在什么情况下会造成偏误,识别金融中的幸存者偏差(survivorship bias)。
- 说明标准误在什么情况下会失效(异方差处理不当、观测间误差相关),以及对应的补救办法。
- 分清「因果估计」和「预测」两类用途对回归的不同要求,并把这套检查清单用于一项量化研究。
读前导读
这一章在解决什么问题
这一章几乎没有新方法,它是一张审计清单。你作为 CPA 做审计时,不会重新编一遍报表,而是逐项问:收入确认有没有提前?存货有没有高估?关联交易有没有遗漏?本章做的是同样的事,只是对象换成了一项回归研究:系数有没有被某种机制系统性地推高或压低?标准误是不是算小了?结论能不能搬到别的市场?
全章的主线只有一句:只要回归元 \(X\) 和误差项 \(u\) 相关,OLS 就会有偏,而且样本再大也不会消失。 遗漏变量、函数形式错误、测量误差、样本选择、反向因果,这五种威胁看起来各不相同,但都是让 \(X\) 与 \(u\) 相关的五条不同路径。你在 CFA 里学过的幸存者偏差、前视偏差、数据挖掘,都能放进这个框架里。读完本章,你应该能拿着一篇因子论文或一份回测报告,按清单逐条挑毛病。
需要先想起来的数学
1. 概率极限 \(\xrightarrow{p}\)。 \(\hat\beta_1\xrightarrow{p}c\) 读作「\(\hat\beta_1\) 依概率收敛到 \(c\)」,意思是样本量趋于无穷时,\(\hat\beta_1\) 落在 \(c\) 附近任意小区间内的概率趋于 1。直观上就是「数据无限多时估计量会停在哪里」。若停在真值 \(\beta_1\),叫一致;停在别处,差额就是大样本偏误。本章的所有偏误公式都是这种「停在哪里」的公式。见 第 00 册第 07 章 概率中的分析工具。
2. 协方差的运算规则。 \(\mathrm{cov}(aX+bY,Z)=a\,\mathrm{cov}(X,Z)+b\,\mathrm{cov}(Y,Z)\);\(\mathrm{cov}(X,X)=\mathrm{var}(X)\);常数与任何变量的协方差为 0。例:若 \(\tilde X=X+w\),\(w\) 与 \(X\) 不相关,则 \(\mathrm{cov}(\tilde X,w)=\mathrm{cov}(X,w)+\mathrm{var}(w)=0+\sigma_w^2\)。本章的两个推导(测量误差、联立因果)都只用这几条规则。见 第 00 册第 07 章。
3. 单回归斜率的概率极限。 OLS 斜率 \(\hat\beta_1=\widehat{\mathrm{cov}}(X,Y)/\widehat{\mathrm{var}}(X)\),大样本下趋于 \(\mathrm{cov}(X,Y)/\mathrm{var}(X)\)。代入 \(Y=\beta_0+\beta_1X+u\) 得 \(\beta_1+\mathrm{cov}(X,u)/\mathrm{var}(X)\)。这就是第 06 章的遗漏变量偏误公式,也是本章所有偏误推导的出发点:偏误 = \(\mathrm{cov}(X,u)/\mathrm{var}(X)\)。CFA 里 beta 等于 \(\mathrm{cov}(R_i,R_m)/\mathrm{var}(R_m)\),形式完全一样。
4. 解一元一次方程。 联立因果的推导里,未知量 \(\mathrm{cov}(X,u)\) 同时出现在等式两边,移项合并即可解出。这是纯代数,不需要更多工具。
怎么读这一章
9.2 节是核心,五大威胁加上标准误失效,每一种都要能说出「它怎样让 \(X\) 与 \(u\) 相关」,最后用 Key Concept 9.7 的表格串起来。其中 9.2.3(测量误差的衰减公式)和 9.2.5(联立因果)有推导,建议跟着讲解框手算一遍,这两个结论在第 12 章工具变量里会再用。9.2.4 的幸存者偏差专栏对金融从业者最有直接价值。9.1 节概念简单,快速读过即可。9.3 节(预测 vs 因果)篇幅短但很重要,它解释了为什么选股模型和因果研究的评价标准不同。9.4 节是案例演示,可以先看 9.4.2 的逐条清单,再回头看表格。最后的量化实战对照表值得反复看。
9.0 动机:一项回归研究什么时候可信
第 04–08 章教的是怎么做回归。本章换一个角度:拿到一项用多元回归做出的研究,怎么判断它可不可信?原书关注的是以估计因果效应(causal effect)为目标的研究,例如学生–教师比(student–teacher ratio, STR)对考试成绩的影响。
本章给出一个通用框架,核心是两把尺子。内部有效:研究对它所研究的总体和情境,得出的因果推断是对的。外部有效:这些推断能推广到别的总体和情境。前者问「在这批数据里算对了没有」,后者问「换个地方还成不成立」。
量化研究者每天都在做这件事。读一篇因子论文、审一份回测报告,本质上都是在问:这个结果在样本内是否被各种偏差污染(内部有效性)?换到别的市场、别的时期是否还成立(外部有效性)?本章的清单就是这类审查的骨架。
9.1 内部有效性与外部有效性
9.1.1 被研究总体与目标总体
区分两种有效性,需要先区分三个概念:
- 被研究总体(population studied):样本实际抽取自的实体总体,例如加州的小学学区。
- 目标总体(population of interest):研究结论要应用到的实体总体。例如一位高中校长想把加州小学学区的结论用到高中,高中就是目标总体。
- 情境(setting):制度、法律、社会、物理和经济环境。例如实验室里种有机番茄的方法能不能搬到田间。
Key Concept 9.1(内部与外部有效性) 若关于因果效应的统计推断对被研究总体成立,称分析具有内部有效性;若其推断与结论能从被研究的总体和情境推广到其他总体和情境,称具有外部有效性。
9.1.2 内部有效性的两个组成部分
- 因果效应的估计量无偏且一致。例如 \(\hat\beta_{STR}\) 应当是总体因果效应 \(\beta_{STR}\) 的无偏一致估计量。
- 假设检验有预期的显著性水平,置信区间有预期的置信水平。例如 \(\hat\beta_{STR}\pm1.96\,SE(\hat\beta_{STR})\) 在重复抽样下应以 95% 的概率覆盖真值。
对 OLS 研究来说,第一条要求 OLS 估计量一致,第二条要求标准误算对。让这些要求失败的原因叫内部有效性威胁,每一种威胁都会破坏第 06 章 Key Concept 6.4 中的某条最小二乘假设。
9.1.3 外部有效性的威胁
外部有效性的威胁来自被研究总体/情境与目标总体/情境之间的差异。
- 总体差异:例如化学品毒性实验在小鼠身上做,却用来制定人类健康法规。更一般地,真实因果效应可能因总体的选取方式、总体特征、地域或研究过时而不同。
- 情境差异:即使总体相同,情境不同也可能无法推广。例如某所大学反酗酒广告的效果,可能推广不到法律处罚不同的另一所大学。制度环境、法律、物理环境的差异都属于此类。
回到班级规模:加州小学学区的结论推广到大学显然不可信;推广到美国其他州的小学学区则较可信,因为学生、课程和组织方式大体相似。
如何评估外部有效性:必须用对两边总体与情境的具体知识做判断。若有针对不同但相关总体的多项研究,可以互相比较:结论相似就支持外部有效性,无法解释的差异就令人怀疑(9.4 节比较马萨诸塞州与加州就是这么做的)。系统比较同一主题大量研究的做法叫元分析(meta-analysis),它有自己的难题:怎样区分好研究和坏研究、因变量不同时怎样比较、是否给大样本研究更大权重。原书还提到用 p-curve 方法解读已发表研究的 p 值(Simonsohn, Nelson & Simmons, 2014)。外部有效性最好在研究设计阶段就加以保障,相关内容超出本书范围(参见 Shadish, Cook & Campbell, 2002)。
9.2 多元回归内部有效性的五大威胁
本节列举 OLS 即使在大样本中也有偏的五个原因。先给结论:五者的共同根源都是回归元与总体回归误差项相关,即第一条最小二乘假设 \(E(u_i\mid X_i)=0\) 失败。由于偏误不随样本增大而消失,OLS 不一致。本节最后单独讨论让标准误失效的情形。
9.2.1 遗漏变量偏误
回顾第 06 章:一个变量既决定 \(Y\),又与某个已纳入的回归元相关,把它漏掉就产生遗漏变量偏误(omitted variable bias)。怎么处理取决于有没有能控制它的变量。
有数据或有充分的控制变量时,直接把遗漏变量放进回归;或者放入一组控制变量,只要它们足够充分,能实现条件均值独立(conditional mean independence):
此时关注变量的系数就没有偏误(控制变量本身的系数仍没有因果解释)。
白话解释:条件均值独立的意思是:一旦知道了控制变量 \(W\),再知道 \(X\) 也不能帮你猜误差 \(u\) 的平均值。换句话说,在 \(W\) 相同的一群个体里,\(X\) 的高低「如同随机分配」。 金融例子:想估计「分析师覆盖数 \(X\) 对股票收益的效应」,覆盖数和公司规模高度相关,而规模本身又影响收益(遗漏变量藏在 \(u\) 里)。若把市值作为 \(W\) 放进回归,要求的是:在市值相近的股票中,覆盖数多少与其他未观测因素无关。注意它不要求 \(u\) 与 \(W\) 无关,所以 \(W\) 的系数会吸收遗漏变量的作用,不能当作「市值的因果效应」来解读。
加变量的成本与收益:漏掉变量会产生偏误;但加入一个总体系数为 0 的变量,会降低其他系数估计的精度。所以加不加变量,是关注系数的偏误–方差权衡。原书给出四步法:
Key Concept 9.2(我应在回归中加入更多变量吗?)
- 明确关键的关注系数(班级规模例中就是 STR 的系数)。
- 跑回归之前,用经济理论和专业知识做先验推理(a priori reasoning),找出最可能的遗漏变量偏误来源,得到一个基准设定(base specification)和一张「可疑」控制变量清单。
- 把可疑控制变量逐个加入基准设定。若其系数显著,或关注系数明显变化,就保留并修改基准设定;否则可以剔除。
- 用表格如实列出多个设定的结果,做到「完全披露」(full disclosure),让怀疑者自己判断。
第 07、08 章的表 7.1、表 8.3 就是这种完全披露的范例:本可以只报告最后一列,却把所有设定都列出来。
没有充分的控制变量时,还有三条路,各自依赖不同类型的数据:
- 面板数据(panel data):同一实体在多个时期被观测。只要遗漏变量不随时间变化,就能把它控制住(第 10 章)。
- 工具变量回归(instrumental variables regression):借助一个新变量——工具变量(第 12 章)。
- 随机对照实验(randomized controlled experiment):原书第 13 章。
9.2.2 函数形式误设
若总体回归函数是非线性的,估计的却是线性回归,OLS 就有偏。这本质上也是遗漏变量偏误——被漏掉的是刻画非线性的项。例如总体回归是二次多项式,漏掉平方项就会产生偏误。
Key Concept 9.3(函数形式误设) 估计的回归函数形式与总体回归函数形式不同时,某变量偏效应的估计量一般有偏。常可通过对数据和拟合曲线作图发现,并换用不同函数形式纠正。
因变量连续时用第 08 章的非线性方法;因变量是二元或离散时情况更复杂,见第 11 章。
9.2.3 测量误差与变量误差偏误
如果不小心把五年级学生的成绩对十年级的 STR 回归,两者相关但并非同一变量,系数就会有偏。这种由自变量测量误差造成的偏误叫变量误差偏误(errors-in-variables bias),它在大样本中也不消失。来源很多:问卷受访者记错或故意误报(如 Current Population Survey 中的去年收入),行政记录录入错误等。
一般推导。设真实回归元 \(X_i\) 被测为 \(\tilde X_i\)。把总体回归 \(Y_i=\beta_0+\beta_1X_i+u_i\) 改写成 \(\tilde X_i\) 的形式:
新误差 \(v_i\) 里含有测量误差。只要 \(\tilde X_i-X_i\) 与 \(\tilde X_i\) 相关,回归元就与误差相关,\(\hat\beta_1\) 有偏且不一致。偏误的方向和大小取决于测量误差的具体性质。
经典测量误差模型(classical measurement error model):\(\tilde X_i=X_i+w_i\),其中 \(w_i\) 均值为 0、方差为 \(\sigma_w^2\),且与 \(X_i\)、\(u_i\) 都不相关。此时
推导:\(v_i=-\beta_1w_i+u_i\)。由于 \(\mathrm{cov}(\tilde X_i,w_i)=\mathrm{cov}(X_i+w_i,w_i)=\sigma_w^2\),有 \(\mathrm{cov}(\tilde X_i,v_i)=-\beta_1\sigma_w^2\)。代入遗漏变量偏误公式(式 6.1)\(\hat\beta_1\xrightarrow{p}\beta_1+\mathrm{cov}(\tilde X_i,v_i)/\sigma_{\tilde X}^2\),并用 \(\sigma_{\tilde X}^2=\sigma_X^2+\sigma_w^2\):
比值 \(\sigma_X^2/(\sigma_X^2+\sigma_w^2)\) 小于 1,所以 \(\hat\beta_1\) 即使在大样本中也偏向 0,文献中称为衰减偏误(attenuation bias)。两个极端:测量误差大到几乎不含 \(X\) 的信息时,\(\hat\beta_1\to0\);没有测量误差时,\(\hat\beta_1\to\beta_1\)。这个比值就是测得变量中「信号方差占总方差」的比例,也叫信度比(reliability ratio)。
推导拆解:把正文的推导拆成四步,每一步只用协方差规则。 第一步,求新误差。\(v_i=\beta_1(X_i-\tilde X_i)+u_i\),而 \(X_i-\tilde X_i=-w_i\),所以 \(v_i=-\beta_1w_i+u_i\)。 第二步,求 \(\mathrm{cov}(\tilde X_i,v_i)\)。按线性展开:\(\mathrm{cov}(X_i+w_i,\,-\beta_1w_i+u_i)=-\beta_1\mathrm{cov}(X_i,w_i)+\mathrm{cov}(X_i,u_i)-\beta_1\mathrm{var}(w_i)+\mathrm{cov}(w_i,u_i)\)。按经典模型假设,第一、二、四项都是 0,剩下 \(-\beta_1\sigma_w^2\)。 第三步,求 \(\mathrm{var}(\tilde X_i)\)。\(X_i\) 与 \(w_i\) 不相关,方差直接相加:\(\sigma_X^2+\sigma_w^2\)。 第四步,代入「偏误 = 协方差 / 方差」:\(\beta_1+\frac{-\beta_1\sigma_w^2}{\sigma_X^2+\sigma_w^2}\),通分得 (9.2)。 数值例子:真实 beta 截面标准差 0.3(方差 0.09),每只股票 beta 的估计误差方差 0.075,信度比 \(0.09/0.165\approx0.55\)。真实风险溢价若为每月 0.6%,用估计 beta 做截面回归只能得到约 0.33%。本章量化实战的模拟正是这组数字。 直觉:噪声让 \(\tilde X\) 的横向散布变宽,但 \(Y\) 并不跟着噪声变,于是散点图被「横向拉平」,拟合直线变缓。
经典模型不是唯一可能,原书还讨论了两种情形:
- 「最佳猜测」模型(best guess model):受访者报告的是给定其信息时对真值的条件期望,\(\tilde X_i=E(X_i\mid\text{信息})\)。此时测量误差与报告值不相关,\(E[(\tilde X_i-X_i)\tilde X_i]=0\)——若相关,这个相关本身就能用来改进猜测,那 \(\tilde X_i\) 就不是最佳猜测了。若受访者的信息与 \(u_i\) 不相关,\(\hat\beta_1\) 一致,只是 \(\mathrm{var}(v_i)>\mathrm{var}(u_i)\),方差变大(习题 9.12)。
白话解释:经典误差与最佳猜测误差的区别在于「噪声加在哪一边」。经典误差是 \(\tilde X=X+\text{噪声}\),噪声和报告值相关;最佳猜测是 \(X=\tilde X+\text{噪声}\),噪声和报告值不相关。前者让 \(\tilde X\) 的散布比真值更宽,导致衰减;后者让 \(\tilde X\) 的散布比真值更窄(猜测值比真值「收敛」),斜率不受影响。 金融例子:分析师的一致预期如果是对未来盈利的条件期望(理性预期),用它作回归元就接近最佳猜测模型;而用 60 个月数据估出的 beta 是「真值 + 抽样误差」,属于经典模型。
- 故意误报:若所有人只报告 90% 的收入,\(\tilde X_i=0.9X_i\),则 \(Y\) 对 \(\tilde X\) 的斜率为 \(\beta_1/0.9\),向上偏约 10%。
Key Concept 9.4(变量误差偏误) 自变量测量不准时,OLS 产生变量误差偏误,其大小取决于测量误差的性质,大样本中也存在。若测量值等于真值加一个均值为 0、独立分布的误差,单回归元 OLS 偏向 0,概率极限见式 (9.2)。
\(Y\) 的测量误差效果不同。若 \(\tilde Y_i=Y_i+w_i\),\(w_i\) 与 \(X_i\) 独立,估计模型 \(\tilde Y_i=\beta_0+\beta_1X_i+v_i\) 中 \(v_i=u_i+w_i\),仍有 \(E(v_i\mid X_i)=0\),所以 \(\hat\beta_1\) 无偏,只是方差增大。一般地,给定回归元条件均值为 0 的 \(Y\) 测量误差不会使 OLS 有偏。
补救:最好是拿到准确的 \(X\)。否则可以(a)用工具变量回归,工具要与真实 \(X_i\) 相关、与测量误差无关(第 12 章);(b)建立测量误差模型并据此修正,例如经典模型下若能估计 \(\sigma_w^2/\sigma_X^2\),就可用式 (9.2) 把估计值除以信度比。后者需要对测量误差的专门知识。
9.2.4 缺失数据与样本选择
缺失数据是否威胁内部有效性,取决于数据为什么缺失:
- 完全随机缺失(missing completely at random):缺失与 \(X\)、\(Y\) 都无关。只减少样本量,不引入偏误。
- 基于 \(X\) 的缺失:例如只用 STR > 20 的学区。不能对 STR ≤ 20 下结论,但对 STR > 20 学区的分析不会有偏。
- 与 \(Y\) 有关(在 \(X\) 之外)的选择过程:选择机制可能使误差与回归元相关,由此产生的偏误叫样本选择偏误(sample selection bias)。经典例子是 1936 年美国总统选举民调:随机抽取有电话的汽车车主,而当年有车有电话者更倾向共和党,抽样方式与因变量(支持谁)相关,结果大错。
Key Concept 9.5(样本选择偏误) 当选择过程影响数据的可得性、且该过程与因变量相关(在依赖回归元之外)时,产生样本选择偏误。它使回归元与误差项相关,OLS 有偏且不一致。
样本选择偏误最好在研究设计阶段避免:想估计本科生的平均身高,要对全体本科生随机抽样,而不是站在篮球馆门口抽。一旦数据已带有样本选择,前面学过的方法都消除不了它;专门的样本选择模型(如 Heckman 两步法)部分建立在第 11 章的技术上,见第 11 章附录内容的介绍。
原书专栏:股票共同基金能跑赢市场吗? 检验办法之一是看过去一年的高收益基金未来是否继续跑赢。但有些数据库只收录当前仍在售基金的历史数据,表现最差的基金因清盘或被合并而消失了。样本按因变量(收益)的取值被筛选,这就是样本选择偏误。十年间全部基金(含已消亡基金)的平均收益,会低于期末仍存续基金的平均收益,只研究存续基金会高估业绩。金融经济学家称之为幸存者偏差。纳入已消亡基金之后,计量证据表明:主动管理的股票基金平均不能跑赢市场,且过去的好业绩不能预测未来的好业绩(Carhart, 1997;Malkiel, 2016 第 7 章;对冲基金中的幸存者偏差见 Aggarwal & Jorion, 2010)。
9.2.5 联立因果
此前一直假设因果从 \(X\) 指向 \(Y\)。若同时存在 \(Y\to X\),即联立因果(simultaneous causality),OLS 会把两个方向的效应混在一起。
例:若政府专门补贴成绩差的学区雇教师,则小班提高成绩(\(X\to Y\)),低成绩又导致 STR 降低(\(Y\to X\))。某个遗漏因素让成绩偏低(\(u_i<0\)),政府计划又让 STR 降低,所以 STR 与 \(u_i\) 正相关。
用两个方程刻画:
直观上,\(u_i>0\) 抬高 \(Y_i\);若 \(\gamma_1\neq0\),高 \(Y_i\) 又通过 (9.4) 改变 \(X_i\),于是 \(X_i\) 与 \(u_i\) 相关。设 \(\mathrm{cov}(u_i,v_i)=0\):
解出
只要 \(\gamma_1\neq0\),它就不为 0。因为可以用两个联立方程表示,这种偏误也叫联立方程偏误(simultaneous equations bias)。
推导拆解: 第一步,对 (9.4) 两边取与 \(u_i\) 的协方差。常数 \(\gamma_0\) 贡献 0,\(\mathrm{cov}(v_i,u_i)=0\) 按假设,于是 \(\mathrm{cov}(X_i,u_i)=\gamma_1\mathrm{cov}(Y_i,u_i)\)。 第二步,对 (9.3) 同样处理:\(\mathrm{cov}(Y_i,u_i)=\beta_1\mathrm{cov}(X_i,u_i)+\mathrm{var}(u_i)=\beta_1\mathrm{cov}(X_i,u_i)+\sigma_u^2\)。 第三步,把第二步代入第一步。记 \(c=\mathrm{cov}(X_i,u_i)\),得 \(c=\gamma_1\beta_1c+\gamma_1\sigma_u^2\),移项 \(c(1-\gamma_1\beta_1)=\gamma_1\sigma_u^2\),解出 \(c\)。 符号直觉:\(Y\to X\) 的反馈若为正(\(\gamma_1>0\))且 \(\gamma_1\beta_1<1\),则 \(X\) 与 \(u\) 正相关,OLS 斜率被推高。正文的补贴例子正是如此:成绩低 → 政府补贴教师 → STR 低,即 \(Y\) 低时 \(X\) 也低,\(\gamma_1>0\);而真实 \(\beta_1<0\),所以 \(1-\gamma_1\beta_1>1\),\(\mathrm{cov}(X,u)>0\),与正文结论一致。后果是 OLS 估计的 \(\hat\beta_1\) 被往正方向推,小班的效果被低估(绝对值偏小,甚至可能变号)。 金融直觉:估计「订单流对价格的冲击」时,买单推高价格(\(X\to Y\)),但动量交易者看到价格上涨又追买(\(Y\to X\))。OLS 会把追涨带来的那部分相关性也算成「冲击」,高估价格冲击系数。
Key Concept 9.6(联立因果偏误) 在 \(Y\) 对 \(X\) 的回归中,若除 \(X\to Y\) 外还存在 \(Y\to X\) 的因果链,反向因果使 \(X\) 与误差相关,产生联立因果偏误。
补救办法是工具变量回归(第 12 章),或者设计能切断反向通道的随机对照实验。
9.2.6 OLS 标准误的不一致
即使 OLS 估计量一致,标准误错了也会让检验的实际水平偏离名义水平,「95%」置信区间实际上覆盖不到 95%。两个主要原因:
- 异方差处理不当:有些软件出于历史原因默认报告仅同方差(homoskedasticity-only)标准误。误差异方差时它们不可靠。补救:用异方差稳健标准误,并用稳健方差构造 F 统计量。
- 观测间误差相关:随机抽样保证误差在观测间独立;但抽样有时只是部分随机。最常见的是同一实体的跨时重复观测:构成误差的遗漏变量若有持续性,误差就序列相关(serial correlation),面板数据和时间序列数据都会出现。按地理单位抽样时,相邻观测的误差也会相关。
观测间相关不会使 OLS 有偏,但违反了 i.i.d. 抽样假设,使常规标准误(不论仅同方差还是异方差稳健)都不对。补救是换用对相关稳健的标准误:面板数据用第 10 章的聚类标准误,时间序列用 HAC 标准误(本册第 16 章;第 06 册第 02b 章也有讨论)。
白话解释:为什么误差正相关会让常规标准误偏小?常规公式默认 \(n\) 个观测各自提供一份独立信息。若误差正相关,相邻观测在说「同一件事」,有效信息量少于 \(n\)。 极端例子就是练习 5:每条数据复制一遍,\(n\) 翻倍,但信息一点没增加,常规 SE 却缩小 \(\sqrt2\) 倍。量化里最常见的版本是用重叠的 12 个月收益做月度回归:相邻两个观测共享 11 个月,样本「看起来」有 240 个,实际独立信息只相当于 20 个左右。不修正标准误,t 值会虚高到 3 以上,而真实显著性可能很弱。 再看一个公式感受:等权平均 \(n\) 个方差为 \(\sigma^2\)、两两相关系数为 \(\rho\) 的变量,方差是 \(\frac{\sigma^2}{n}[1+(n-1)\rho]\)。\(\rho=0\) 时是熟悉的 \(\sigma^2/n\);\(\rho>0\) 时多出一项,\(n\) 很大时方差趋于 \(\rho\sigma^2\),再加样本也降不下去。这和组合分散化里「系统性风险分散不掉」是同一个公式。
9.2.7 一张检查清单
Key Concept 9.7(多元回归研究内部有效性的威胁)
威胁 后果 补救方向 遗漏变量 \(\hat\beta\) 有偏、不一致 纳入变量或充分控制;面板固定效应;IV;随机实验 函数形式误设 有偏、不一致 作图,换非线性设定(第 08 章),二元 \(Y\) 见第 11 章 变量误差 经典情形下衰减向 0 更好的测量;IV;用信度比修正 样本选择 有偏、不一致 设计阶段避免;样本选择模型 联立因果 有偏、不一致 IV;随机实验 异方差用了仅同方差 SE 推断无效 异方差稳健 SE 观测间误差相关 推断无效 聚类 SE、HAC SE 把这张清单逐条套在一项研究上,是评估内部有效性的系统方法。
9.3 回归用于预测时的有效性
用回归做预测时,外部有效性至关重要,而系数是否是因果效应的无偏估计则不重要。
回顾第 04 章开头的两个人:学监想知道缩小班级能提高多少分(因果问题);一位父亲要搬到一个成绩未公开的学区,只想要该学区成绩的可靠预测(预测问题)。后者不需要任何因果效应,只需要回归方程能准确预测目标学区。
可靠预测有三个要求:
- 估计数据与待预测观测来自同一分布。这就是附录 6.4「预测用的第一条最小二乘假设」,也是预测语境下外部有效性的数学表述。
- 预测变量的选择。做因果估计时选控制变量是为了降低遗漏变量偏误;做预测时,只要能显著解释 \(Y\) 的变动就有用,无论有没有因果解释。时间序列中还可以利用序列相关预测未来,即预报(forecast)。
- 估计量本身。预测变量很多(甚至多于样本量)时,岭回归、Lasso 等收缩估计量的样本外表现可能优于 OLS(原书第 14 章)。
这一节对量化的意义很直接:大多数 alpha 研究是预测问题,第 1 条要求就是「样本内外同分布」,它在市场体制切换时最容易被打破。
金融直觉:一个选股模型里放「分析师覆盖数」,即使它只是规模和流动性的代理、没有任何因果作用,只要它稳定地帮助预测收益,预测模型就可以用它。但如果你要回答「公司主动吸引更多分析师覆盖,股价会不会涨」,这就是因果问题,必须处理遗漏变量和反向因果。 两类问题的检验方式也不同:预测看样本外误差(如样本外 \(R^2\)、IC),因果看估计量是否一致、置信区间是否可信。一个样本外表现很好的模型,系数仍然可以完全没有因果含义;反过来,一个因果估计很干净的系数,对预测的帮助也可能很小。
9.4 案例:加州与马萨诸塞州的班级规模研究
9.4.1 外部有效性:换一个州再做一遍
原书用 1998 年马萨诸塞州 220 个公立学区四年级学生的标准化考试数据,与第 04–08 章的加州数据比较。两州变量定义相同或几乎相同。
表 9.1 两州数据摘要统计
| 变量 | 加州均值 | 加州标准差 | 马州均值 | 马州标准差 |
|---|---|---|---|---|
| 考试成绩 | 654.1 | 19.1 | 709.8 | 15.1 |
| 学生–教师比 | 19.6 | 1.9 | 17.3 | 2.3 |
| 英语学习者比例 | 15.8% | 18.3% | 1.1% | 2.9% |
| 享受补贴午餐比例 | 44.7% | 27.1% | 15.3% | 15.1% |
| 学区平均收入 | $15,317 | $7,226 | $18,747 | $5,808 |
| 观测数 | 420 | 220 | ||
| 年份 | 1999 | 1998 |
两州考试不同,分数不能直接比。成绩与收入的散点图形状相似:收入低时陡、收入高时平。马州三次设定的 \(R^2\) 略高于对数设定(0.486 vs 0.455),而加州线性–对数最好,非线性的大致模式一致。
表 9.2 马州多元回归结果(因变量为四年级综合成绩,220 个学区,括号内为异方差稳健标准误;节选)
| 回归元 | (1) | (2) | (3) | (4) | (5) | (6) |
|---|---|---|---|---|---|---|
| STR | −1.72 (0.50) | −0.69 (0.27) | −0.64 (0.27) | 12.4 (14.0) | −1.02 (0.37) | −0.67 (0.27) |
| STR²、STR³ | 有 | |||||
| 英语学习者% | −0.411 (0.306) | −0.437 (0.303) | −0.434 (0.300) | |||
| HiEL、HiEL×STR | 有 | |||||
| 免费午餐% | −0.521 (0.077) | −0.582 (0.097) | −0.587 (0.104) | −0.709 (0.091) | −0.653 (0.072) | |
| 收入设定 | ln(收入) | 三次 | 三次 | 三次 | 三次 | |
| F:STR²、STR³=0 | 0.45 (0.641) | |||||
| F:HiEL、HiEL×STR=0 | 1.58 (0.208) | |||||
| \(\bar R^2\) | 0.063 | 0.670 | 0.676 | 0.675 | 0.675 | 0.674 |
解读:加入控制变量后 STR 系数从 −1.72 降为 −0.64,降幅约 60%(加州为 68%);仍在 5% 水平显著(加州为 1%,因为加州样本几乎大一倍);与英语学习者的交互不显著;与加州不同的是,马州没有证据表明 STR 与成绩的关系是非线性的(p = 0.641)。列 (3) 对 (4)–(6) 的设定变化不敏感,被选为基准。
标准化以便比较。分数单位不同,就把「系数 / 成绩标准差」作为可比的效应量:标准化成绩回归中的斜率等于原斜率除以成绩标准差。
表 9.3 STR 减少 2 的效应
| 设定 | \(\hat\beta_{STR}\) | 成绩标准差 | 效应(分) | 效应(标准差单位) |
|---|---|---|---|---|
| 加州 线性 | −0.73 (0.26) | 19.1 | 1.46 (0.52) | 0.076 (0.027) [0.024, 0.130] |
| 加州 三次,STR 20→18 | – | 19.1 | 2.93 (0.70) | 0.153 (0.037) |
| 加州 三次,STR 22→20 | – | 19.1 | 1.90 (0.69) | 0.099 (0.036) |
| 马州 线性 | −0.64 (0.27) | 15.1 | 1.28 (0.54) | 0.085 (0.036) [0.015, 0.154] |
计算示例:加州 \(-0.73\times(-2)=1.46\) 分,\(1.46/19.1=0.076\) 个标准差,标准误 \(0.26\times2/19.1=0.027\)。
白话解释:除以成绩标准差,是把「分数」换成「标准差个数」这把通用尺子,原理同 Sharpe 比率把超额收益除以波动率、z-score 把原始值减均值除以标准差。两州考试满分和难度不同,原始分数不可比,但「提高了多少个标准差」可以比。标准误也同比例缩放,是因为除以一个常数(这里把样本标准差当作已知常数)时,随机变量的标准差同样除以这个常数。
两州结论实质相同:马州 95% 置信区间包含加州线性设定的区间。效应虽然显著但很小——加州中位数学区与第 75 百分位学区相差 12.2 分即 0.64 个标准差,STR 减 2 只能走完这段距离的十分之一多一点。两州结果一致,说明加州结论至少对美国其他小学学区是外部有效的。
9.4.2 内部有效性:逐条过清单
- 遗漏变量:已控制学生特征、家庭经济特征和学区富裕度。若这些控制充分,STR 在控制变量相同的学区间就「如同随机分配」。但仍可能有遗漏:例如好教师被小班学校吸引,教师质量与 STR 相关又影响成绩;又如 STR 低的学区家庭可能更重视课外辅导。根本解法是随机实验(田纳西 STAR 项目)。
- 函数形式:探索了多种非线性设定,结论不敏感。
- 变量误差:学区平均 STR 是对实际班级规模的粗略度量(学生流动),可能使效应偏向 0;学区收入取自 1990 年普查,与 1998/1999 年的其他数据错位,也可能测量不准。
- 样本选择:覆盖满足最低规模的全部学区,没有理由担心。
- 联立因果:两州考试期间都没有按成绩分配经费的机制,不太可能存在。
- 标准误:全部用异方差稳健标准误;但样本是全州所有学区,可能存在地理相关,相应的修正公式较复杂,原书未展开。
结论:控制家庭经济背景、学生特征、学区富裕度并建模非线性后,STR 每减少 2,成绩预计提高约 0.08 个标准差——统计显著但相当小。主要剩余威胁是遗漏变量。学监要拿这个估计去权衡教师工资、教室等成本。
量化实战
本章清单在量化里的对应
本章的五大威胁几乎一一对应量化研究中最常见的坑:
| 本章概念 | 量化中的典型表现 |
|---|---|
| 样本选择 / 幸存者偏差 | 用「当前成分股」回测历史;只用存续基金评价经理;忽略退市、ST、被并购股票 |
| 与 \(Y\) 相关的数据缺失 | 财务数据回填(restatement)、用公告日之后才可得的数据(前视偏差,look-ahead bias) |
| 变量误差 | 因子暴露(beta、估计的盈利预期)本身是带噪声的估计值,第二步截面回归的风险溢价被衰减 |
| 联立因果 | 订单流与价格、成交量与波动、资金流与基金业绩互为因果,直接 OLS 估计价格冲击有偏 |
| 函数形式 | 因子与收益的关系在极端分位上非线性(如动量崩溃、低价股效应) |
| 观测间误差相关 | 收益面板的同日截面相关、重叠持有期收益的序列相关,导致 t 值虚高(第 10 章聚类标准误、第 16 章 HAC 标准误) |
| 预测 vs 因果 | 选股模型是预测问题,看样本外表现;解释「为什么有效」、做情景分析需要因果思维 |
| 外部有效性 | 美股发现的因子迁移到 A 股,要考虑涨跌停、T+1、投资者结构等「情境差异」 |
处理幸存者偏差的原则:股票池必须是时点(point-in-time)成分,即每个历史日期只用当日实际可交易的股票,包括后来退市的;财务数据必须按公告日对齐。处理变量误差的经典做法是 Fama–MacBeth 研究中把个股按估计的 beta 分组,用组合的 beta 做第二步回归:组内平均使测量误差方差缩小,信度比接近 1;更系统的修正包括 Shanken (1992) 标准误修正,以及用不同子样本估计的 beta 互为工具变量(第 12 章)。
示例:幸存者偏差与 beta 测量误差的衰减
下面的模拟做两件事。第一,3000 只基金的真实超额收益均值都是 0,净值跌破 0.7 就清盘,比较「全部基金」与「仅存续基金」的平均收益。第二,4000 只股票的真实 beta 已知,用 60 个月数据估计 beta 后做第二步截面回归,验证式 (9.2) 的衰减,并演示分组法如何缓解。
import numpy as np
import pandas as pd
import statsmodels.api as sm
rng = np.random.default_rng(42)
# ---------- 1. 幸存者偏差:所有基金真实 alpha = 0 ----------
n_funds, T = 3000, 120 # 3000 只基金,10 年月度
ret = rng.normal(0.0, 0.04, size=(n_funds, T)) # 超额收益,均值 0
nav = np.cumprod(1 + ret, axis=1)
# 规则:净值跌破 0.7 的基金当月清盘,此后不再有数据
dead = (nav < 0.7)
first_dead = np.where(dead.any(axis=1), dead.argmax(axis=1), T)
alive_mask = np.arange(T)[None, :] <= first_dead[:, None] # 含清盘当月
survivor = first_dead == T
all_mean = ret[alive_mask].mean() # 含已清盘基金的全部月度观测
surv_mean = ret[survivor].mean() # 只看存续基金
print(f"存续基金比例 : {survivor.mean():.3f}")
print(f"全部基金月均超额收益 : {all_mean*1e4:7.2f} bp")
print(f"仅存续基金月均超额 : {surv_mean*1e4:7.2f} bp (年化约 {surv_mean*12*100:.2f}%)")
# ---------- 2. 变量误差:用估计的 beta 做第二步截面回归 ----------
N, T2 = 4000, 60
beta_true = rng.normal(1.0, 0.3, N)
lam = 0.006 # 真实市场风险溢价 0.6%/月
mkt = rng.normal(lam, 0.045, T2) # 市场超额收益
eps = rng.normal(0, 0.10, (T2, N)) # 特质波动 10%/月
R = mkt[:, None] * beta_true[None, :] + eps # 个股超额收益 (T2 x N)
# 第一步:逐股时间序列回归估计 beta
Xm = sm.add_constant(mkt)
beta_hat = np.linalg.lstsq(Xm, R, rcond=None)[0][1]
w = beta_hat - beta_true
ratio = beta_true.var() / (beta_true.var() + w.var())
print(f"\nbeta 真实截面方差 {beta_true.var():.4f}, 估计误差方差 {w.var():.4f}")
print(f"理论衰减系数 sigma_X^2/(sigma_X^2+sigma_w^2) = {ratio:.3f}")
# 第二步:把样本平均收益对 beta 做截面回归(同一样本,演示衰减)
Rbar = R.mean(axis=0)
def slope(x, y):
return sm.OLS(np.asarray(y), sm.add_constant(np.asarray(x))).fit().params[1]
print(f"用真实 beta 的斜率 : {slope(beta_true, Rbar)*100:.3f}% (样本内市场均值 {mkt.mean()*100:.3f}%)")
print(f"用估计 beta 的斜率 : {slope(beta_hat, Rbar)*100:.3f}% (理论值约 {ratio*slope(beta_true, Rbar)*100:.3f}%)")
# 组合法:按估计 beta 排序分 20 组,组内平均降低测量误差
# 关键:排序用前一段数据估计的 beta,避免排序误差与收益相关
half = T2 // 2
b_pre = np.linalg.lstsq(sm.add_constant(mkt[:half]), R[:half], rcond=None)[0][1]
grp = pd.qcut(b_pre, 20, labels=False)
df = pd.DataFrame({"g": grp, "Rbar": R[half:].mean(axis=0),
"b_post": np.linalg.lstsq(sm.add_constant(mkt[half:]), R[half:], rcond=None)[0][1],
"b_true": beta_true})
P = df.groupby("g").mean()
print(f"20 组组合: 组 beta 噪声方差 {np.var(P.b_post-P.b_true):.5f}, 组间真实 beta 方差 {P.b_true.var(ddof=0):.4f}")
print(f"组合层面斜率(后半段) : {slope(P.b_post, P.Rbar)*100:.3f}% (后半段市场均值 {mkt[half:].mean()*100:.3f}%)")
关键输出:
存续基金比例 : 0.531
全部基金月均超额收益 : -0.42 bp
仅存续基金月均超额 : 23.95 bp (年化约 2.87%)
beta 真实截面方差 0.0910, 估计误差方差 0.0745
理论衰减系数 sigma_X^2/(sigma_X^2+sigma_w^2) = 0.550
用真实 beta 的斜率 : 0.417% (样本内市场均值 0.401%)
用估计 beta 的斜率 : 0.249% (理论值约 0.229%)
20 组组合: 组 beta 噪声方差 0.00041, 组间真实 beta 方差 0.0269
组合层面斜率(后半段) : 0.648% (后半段市场均值 0.655%)
读法:
- 没有任何基金有真实 alpha,全部基金的平均超额收益约为 0;但只看存续的 53% 基金,平均每年「跑赢」约 2.9%。这完全是筛选造成的。代码里一个细节值得注意:清盘当月的收益必须计入,否则「全部基金」的样本也会因剔除了最差的那一个月而上偏。
- 单只股票 60 个月估计的 beta 噪声很大,信度比只有 0.55,第二步回归的风险溢价被压缩到真实值的一半左右,与式 (9.2) 的预测一致(两者的差异是抽样误差)。注意真实斜率等于样本内市场的实际均值,而不是总体的 0.6%:短样本下风险溢价本身也估不准。
- 用前半段 beta 分 20 组、在后半段做组合层面的回归,组 beta 的噪声方差降到 0.0004,信度比约 0.985,衰减几乎消失。代价是只有 20 个观测,截面信息减少。用前半段排序、后半段估计,是为了避免「按带噪 beta 排序」本身造成的偏差。
本章小结
评估一项回归研究要用两把尺子。内部有效性要求估计量一致、标准误正确;外部有效性要求被研究的总体和情境与目标足够相似。OLS 的五大内部有效性威胁——遗漏变量、函数形式误设、变量误差、样本选择、联立因果——都源于回归元与误差项相关,大样本也救不了。经典测量误差让系数衰减向 0;与因变量相关的样本选择(金融里的幸存者偏差)让结果系统性偏乐观;联立因果让 OLS 混合两个方向的效应。标准误方面,异方差要用稳健标准误,观测间相关要用聚类或 HAC 标准误。预测用途不要求因果解释,但要求样本内外同分布。
| 概念 | 公式 / 要点 |
|---|---|
| 内部有效性 | 估计量一致 + 标准误正确 |
| 外部有效性 | 被研究总体/情境 ≈ 目标总体/情境 |
| 遗漏变量偏误 | \(\hat\beta_1\xrightarrow{p}\beta_1+\mathrm{cov}(X,u)/\sigma_X^2\);条件均值独立 \(E(u\mid X,W)=E(u\mid W)\) 可消除 |
| 经典测量误差 | \(\tilde X=X+w\),\(\hat\beta_1\xrightarrow{p}\dfrac{\sigma_X^2}{\sigma_X^2+\sigma_w^2}\beta_1\) |
| \(Y\) 的测量误差 | 与 \(X\) 独立时不致偏,只增大方差 |
| 样本选择偏误 | 选择机制与 \(Y\) 相关 → 有偏;完全随机或基于 \(X\) 的缺失不致偏 |
| 联立因果 | \(\mathrm{cov}(X,u)=\gamma_1\sigma_u^2/(1-\gamma_1\beta_1)\) |
| 标准误 | 异方差 → 稳健 SE;观测间相关 → 聚类/HAC SE |
| 预测三要求 | 同分布;预测变量看解释力;变量多时考虑收缩估计 |
练习
基础
- 一项研究能否内部有效但外部无效?能否外部有效但内部无效?各举一个量化研究的例子。 提示:前者如在 2010–2019 年美股上严谨检验的因子,迁移到涨跌停制度下的 A 股失效;后者在逻辑上不成立——内部无效的结论谈不上推广。
- 「误差项异方差时 OLS 估计总是有偏」,这句话对吗?「若 \(Y\) 与误差项相关,OLS 不内部有效」呢?(原书习题 9.7) 答案要点:第一句错,异方差只影响标准误;第二句错,\(Y\) 本来就含 \(u\),要紧的是 \(X\) 与 \(u\) 是否相关。
- 某数据库只收录目前仍在交易的股票。用它估计「过去 12 个月跌幅最大的股票未来一年收益」会有什么偏差?方向如何? 提示:跌幅最大的股票中最终退市的那部分被剔除,留下的是「熬过来」的,反转效应被高估。
- 学区平均收入取自 1990 年普查,而成绩是 1999 年的。说明这是哪一类威胁,偏误大致方向如何? 提示:变量误差;若近似经典误差,收入系数向 0 衰减。
- 每个观测被重复录入两次(\(n\) 从 50 变成 100)。回归系数、标准误、\(R^2\) 如何变化?违反了哪条假设?(原书习题 9.6) 答案要点:系数和 \(R^2\) 不变,标准误约缩小 \(\sqrt2\) 倍,违反独立抽样。这与重叠收益人为放大样本量是同一类问题。
进阶
- (原书习题 9.5)需求 \(Q=\beta_0+\beta_1P+u\),供给 \(Q=\gamma_0+\gamma_1P+v\),\(u,v\) 不相关,\(\beta_1<0<\gamma_1\)。求 \(Q\) 对 \(P\) 回归斜率的概率极限,并判断它比需求斜率偏大还是偏小。 答案要点:\(P=(\gamma_0-\beta_0+v-u)/(\beta_1-\gamma_1)\),斜率 \(\to\dfrac{\beta_1\sigma_v^2+\gamma_1\sigma_u^2}{\sigma_u^2+\sigma_v^2}\),是两条曲线斜率的加权平均,大于 \(\beta_1\)。只有 \(\sigma_u^2=0\)(需求不动、供给移动)时才得到需求斜率。这正是第 12 章 IV 的出发点。
- (原书习题 9.13)\(n\) 个观测中有 20% 的 \(X\) 被随机打乱(与 \(Y\) 无关)。证明 \(E(\hat\beta_1)\approx0.8\beta_1\),构造一个修正估计量,并与只用 80% 正确观测的估计比较方差。 提示:被打乱的观测对 \(\mathrm{cov}(X,Y)\) 贡献为 0;修正为 \(\hat\beta_1/0.8\),但方差放大为原来的 \(1/0.64\)。
- 在本章代码中把估计窗口从 60 个月改为 240 个月,信度比和第二步斜率如何变化?若特质波动从 10% 降到 5% 呢?用式 (9.2) 解释。 提示:\(\sigma_w^2\approx\sigma_\varepsilon^2/(T\sigma_m^2)\),\(T\) 增大或 \(\sigma_\varepsilon\) 减小都使信度比上升。
- 你用「上月分析师预期上调幅度」预测收益,发现系数显著。但该数据供应商会在季报公布后补录遗漏的预期修正。指出这属于哪一类威胁,并设计一个检查办法。 提示:数据可得性与结果相关(前视/回填),属样本选择/数据生成过程问题;用带时间戳的点时数据重跑,比较结果。
- (原书习题 9.3)用在职女性数据估计「孩子越多工资越高」,可能是什么造成的? 提示:不工作的女性缺失;孩子多的女性只有潜在工资高的才会外出工作,选择与因变量相关(Heckman 1974)。
原书推荐习题:9.5(必做,联立方程偏误的经典推导);9.2、9.12、9.13(\(Y\) 的测量误差、最佳猜测误差、错配数据造成的 \(0.8\beta_1\));9.3(Heckman 样本选择);9.6(重复数据与独立抽样);复习题 9.4、9.6;实证题 E9.1(用清单系统评估收入回归)。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 章首导言 | 第 9 章开篇 | p.331 |
| 内部与外部有效性(Key Concept 9.1) | 9.1 | p.331–333 |
| 遗漏变量偏误与加变量的权衡(Key Concept 9.2) | 9.2 | p.334–336 |
| 函数形式误设(Key Concept 9.3) | 9.2 | p.336 |
| 测量误差与变量误差偏误(Key Concept 9.4,式 9.1–9.2) | 9.2 | p.336–339 |
| 缺失数据与样本选择(Key Concept 9.5),共同基金专栏 | 9.2 | p.339–341 |
| 联立因果(Key Concept 9.6,式 9.3–9.4) | 9.2 | p.341–343 |
| 标准误不一致的来源(Key Concept 9.7) | 9.2 | p.343–344 |
| 预测用途的有效性 | 9.3 | p.344–345 |
| 加州与马州比较(表 9.1–9.3) | 9.4 | p.345–354 |
| 结论、小结 | 9.5 | p.354–355 |
| 习题 | 第 9 章末 | p.356–360 |
| 马州数据说明 | 附录 9.1 | p.360 |
注:原书页码 = PDF 页码 − 1。