量化交易中文教材

第 12 章 工具变量回归

学习目标

读完本章,你应当能够:

  1. 说明工具变量(instrumental variables, IV)回归解决什么问题,陈述有效工具的两个条件:相关性与外生性。
  2. 执行两阶段最小二乘(two stage least squares, TSLS),推导单工具时 \(\hat\beta_1^{TSLS}=s_{ZY}/s_{ZX}\) 及其一致性和大样本方差,知道为什么不能直接用第二阶段 OLS 的标准误。
  3. 掌握一般 IV 模型的术语:内生回归元、被包含的外生变量、恰好识别、过度识别、识别不足。
  4. 用第一阶段 F 统计量检查弱工具,理解弱工具下 TSLS 偏向 OLS、推断失效,知道 Anderson–Rubin 置信集的思路。
  5. 用 J 统计量检验过度识别约束,并清楚它能说明什么、不能说明什么。
  6. 识别量化中的 IV 场景:价格冲击估计、因子 beta 的变量误差修正、资产定价中的 GMM 与 Hansen J 检验、利用制度断点的因果研究。

读前导读

这一章在解决什么问题

第 09 章列出了 OLS 失效的几种原因,第 10 章用面板数据解决了其中一种(不随时间变化的遗漏变量)。这一章给出一种更通用的办法,可以同时处理遗漏变量、测量误差和反向因果:找一个只通过 \(X\) 影响 \(Y\) 的外部变量 \(Z\),只用 \(X\) 中被 \(Z\) 推动的那部分变化来估计效应。

最典型的场景是供求。你想估计股票的价格冲击:买入 1% 的流通股,价格涨多少?直接拿收益对订单流回归不行,因为价格上涨也会吸引追涨的买单,两者互为因果。解法是找一种「被迫的、与信息无关」的买卖,例如共同基金因投资者申购赎回而被动调仓。这种流量会推动价格(相关性),但它不是因为基金经理看好这只股票(外生性)。只用这部分流量引起的价格变化,就能得到干净的价格冲击估计。这就是工具变量。

本章的数学本身不难,核心公式只有一个:\(\hat\beta=\widehat{\mathrm{cov}}(Z,Y)/\widehat{\mathrm{cov}}(Z,X)\)。真正的难点在于判断:工具够不够强(弱工具会让结果重新偏向 OLS),工具是不是真的外生(这一点统计上基本无法证明,只能靠对业务的理解来论证)。

需要先想起来的数学

1. 协方差的线性性质。 \(\mathrm{cov}(Z,a+bX+u)=b\,\mathrm{cov}(Z,X)+\mathrm{cov}(Z,u)\)。本章的一致性推导只用这一条。例:若 \(\mathrm{cov}(Z,X)=2\),\(\mathrm{cov}(Z,u)=0\),\(b=0.5\),则 \(\mathrm{cov}(Z,Y)=1\),比值 \(1/2=0.5\) 恰好还原出 \(b\)。见 第 00 册第 07 章 概率中的分析工具。

2. 概率极限与「比值的极限」。 若分子 \(\xrightarrow{p}a\)、分母 \(\xrightarrow{p}b\neq0\),则比值 \(\xrightarrow{p}a/b\)。关键在 \(b\neq0\):分母趋于 0 时这个结论失效,这正是弱工具问题的数学根源。见 第 00 册第 07 章。

3. F 统计量与 \(t^2\)。 只检验一个系数时 \(F=t^2\)。例:\(t=3.2\) 时 \(F=10.24\)。本章判断弱工具用的「第一阶段 F > 10」,在单工具时就是第一阶段系数的 \(|t|>3.16\)。

4. 卡方分布 \(\chi^2_q\)。 \(q\) 个独立标准正态变量的平方和,均值为 \(q\)。\(\chi^2_1\) 的 5% 临界值 3.84(即 \(1.96^2\)),\(\chi^2_2\) 为 5.99。J 检验用它。

5. 矩阵记号(只需认识)。 \(\mathbf X'\) 表示转置,\((\cdot)^{-1}\) 表示逆矩阵,\(P_Z\) 是「投影矩阵」,作用是把任何变量替换成它对 \(Z\) 回归的拟合值。看到矩阵公式时,知道它就是多变量版的「协方差除以协方差」即可。见 第 00 册第 06 章 线性代数速成。

怎么读这一章

12.1 节是核心,必须弄懂:两个条件(相关性、外生性),两阶段的含义,\(s_{ZY}/s_{ZX}\) 为什么一致,以及 Wright 的供求例子。12.2 节把模型推广到多变量,重点是术语(内生、外生、恰好识别、过度识别)和 12.2.4 的标准误陷阱。12.3 节非常重要,弱工具和 J 检验是实证中最常被质疑的地方。12.4 是案例,看表 12.1 和「怎么办」那段的判断过程即可。12.5 节讲工具从哪里来,建议读,尤其是 LATE 的解释。12.6 节技术细节第一次可以只读 12.6.1(推导很短)和 12.6.3 中 AR 检验的思路,其余等需要时再看。


12.0 动机:当回归元本身与误差相关

第 09 章列出了让回归元与误差相关的几种情形:遗漏变量、变量误差、联立因果。遗漏变量有数据时可以直接放进回归,面板数据能处理不随时间变化的遗漏变量;但联立因果这类问题,多元回归和固定效应都无能为力。

工具变量回归是回归元 \(X\) 与误差 \(u\) 相关时获得一致估计的一般方法。它的思路是把 \(X\) 的变动拆成两部分:一部分(不论什么原因)与 \(u\) 相关,这是问题所在;另一部分与 \(u\) 无关。若能分离出后者,就只用这部分变动来估计 \(\beta_1\),丢掉让 OLS 有偏的那部分。分离靠的是一个或多个额外变量,叫工具变量或工具(instruments)。


12.1 单回归元、单工具的 IV 估计量

12.1.1 模型与两个条件

\[Y_i=\beta_0+\beta_1X_i+u_i,\quad i=1,\dots,n,\tag{12.1}\]

\(\beta_1\) 是 \(X\) 对 \(Y\) 的因果效应,\(u_i\) 代表遗漏因素。与误差相关的变量称为内生变量(endogenous variable),不相关的称为外生变量(exogenous variable)。这对术语来自多方程模型:内生变量在模型内部决定,外生变量在模型外部决定。

有效工具 \(Z\) 必须满足:

  1. 工具相关性(instrument relevance):\(\mathrm{corr}(Z_i,X_i)\neq0\);
  2. 工具外生性(instrument exogeneity):\(\mathrm{corr}(Z_i,u_i)=0\)。

相关的工具,其变动与 \(X\) 的变动相关;外生的工具,其捕获的那部分 \(X\) 变动就是外生的。外生性常被表述为排除约束(exclusion restriction):\(Z\) 只通过 \(X\) 影响 \(Y\),没有其他通道。

12.1.2 两阶段最小二乘

第一阶段:用总体回归把 \(X\) 分成两部分,

\[X_i=\pi_0+\pi_1Z_i+v_i.\tag{12.2}\]

\(\pi_0+\pi_1Z_i\) 是 \(X\) 中能被 \(Z\) 预测的部分,因为 \(Z\) 外生,它与 \(u_i\) 无关;\(v_i\) 是可能与 \(u_i\) 相关的「问题成分」。\(\pi\) 未知,所以用 OLS 估计 (12.2),得到预测值 \(\hat X_i=\hat\pi_0+\hat\pi_1Z_i\)。

第二阶段:把 \(Y_i\) 对 \(\hat X_i\) 做 OLS,得到 \(\hat\beta_0^{TSLS}\)、\(\hat\beta_1^{TSLS}\)。

白话解释:把 \(X\) 想成一锅混合物,里面有「干净的」部分和「被污染的」部分。第一阶段用 \(Z\) 做过滤器:\(Z\) 本身是干净的,所以 \(X\) 中能被 \(Z\) 解释的那部分(\(\hat X\))也是干净的;剩下的 \(v\) 可能被污染,扔掉。第二阶段只用干净的 \(\hat X\) 去解释 \(Y\)。 代价是扔掉了 \(X\) 的大部分变动,可用信息变少,所以 IV 估计的标准误通常比 OLS 大得多。这是用「无偏」换「精度」。 金融直觉:价格冲击的例子里,\(X\) 是订单流,其中混有「知情交易者因为知道好消息而买入」的部分(与收益方程的误差 \(u\) 相关)和「基金因申购被动买入」的部分(与 \(u\) 无关)。第一阶段用申购流量 \(Z\) 预测订单流,只保留被动的部分;第二阶段问:这部分被动买入让价格涨了多少?

12.1.3 为什么有效:两个例子

例 1:Philip Wright 的黄油需求。20 世纪 20 年代,进口关税是美国主要税收来源,制定动植物油关税需要知道供给和需求弹性。需求方程为

\[\ln(Q_i^{butter})=\beta_0+\beta_1\ln(P_i^{butter})+u_i,\tag{12.3}\]

\(\beta_1\) 是需求弹性,\(u_i\) 代表收入、偏好等。Wright 有 1912–1922 年的年度数量与价格数据,但他意识到:每一年的价格和数量都是当年供给曲线与需求曲线的交点,两条曲线都在被价格以外的因素推动。把这些交点画出来再拟合一条直线,既不是需求曲线,也不是供给曲线。

解法是找一个只移动供给、不移动需求的变量。若需求曲线不动、只有供给曲线移动,所有均衡点就落在同一条需求曲线上,把它「描」出来。Wright 想到了天气:奶业产区降雨偏少会损害放牧,在给定价格下减少黄油产量(相关性);而奶业区的降雨不应直接影响人们对黄油的需求(外生性)。

例 2:地震与班级规模(假想)。暑期地震迫使部分加州学校关闭维修,离震中越近的学区需要合并学生,班级暂时变大。「到震中的距离」与班级规模相关;若它与影响成绩的其他因素无关,就是外生的,可以绕开遗漏变量偏误估计班级规模的效应。

原书专栏:IV 是何时发明的? IV 估计量最早出现在 Philip G. Wright 1928 年著作 The Tariff on Animal and Vegetable Oils 的附录 B 中,被称为「引入外部因素的方法」。后来发现这是他与儿子、著名遗传学家 Sewall Wright 的合作成果(Stock & Trebbi, 2003)。类似的思想可追溯到 19 世纪伦敦的 John Snow:两家供水公司分别在排污口上游和下游取水,Snow 认为两家公司服务的家庭除水质外相似,供水公司相当于「接触不洁水」的工具变量,由此论证霍乱经水传播。

12.1.4 TSLS 估计量的公式与性质

单工具单回归元时(推导见 12.6.1 节):

\[\hat\beta_1^{TSLS}=\frac{s_{ZY}}{s_{ZX}},\tag{12.4}\]

即 \(Z\) 与 \(Y\) 的样本协方差除以 \(Z\) 与 \(X\) 的样本协方差。

一致性:由 (12.1),

\[\mathrm{cov}(Z_i,Y_i)=\beta_1\mathrm{cov}(Z_i,X_i)+\mathrm{cov}(Z_i,u_i).\tag{12.5}\]

外生性使第二项为 0,相关性使 \(\mathrm{cov}(Z_i,X_i)\neq0\),所以

\[\beta_1=\frac{\mathrm{cov}(Z_i,Y_i)}{\mathrm{cov}(Z_i,X_i)}.\tag{12.6}\]

样本协方差一致,故 \(\hat\beta_1^{TSLS}\xrightarrow{p}\beta_1\)。

推导拆解: 第一步,(12.5) 是对 (12.1) 两边同时取与 \(Z_i\) 的协方差:常数 \(\beta_0\) 与任何变量的协方差为 0;\(\beta_1\) 是常数可以提出来;误差项单独成一项。 第二步,外生性让 \(\mathrm{cov}(Z_i,u_i)=0\),于是 \(\mathrm{cov}(Z,Y)=\beta_1\mathrm{cov}(Z,X)\)。 第三步,相关性保证 \(\mathrm{cov}(Z,X)\neq0\),可以两边相除,得 (12.6)。 第四步,样本协方差依概率收敛到总体协方差,比值也收敛到比值(分母非零)。 对比 OLS:OLS 是 \(\mathrm{cov}(X,Y)/\mathrm{var}(X)=\beta_1+\mathrm{cov}(X,u)/\mathrm{var}(X)\),第二项不为 0 就有偏。IV 把「\(X\) 与自己的协方差」换成「\(Z\) 与 \(X\) 的协方差」,把「\(X\) 与 \(u\) 的协方差」换成「\(Z\) 与 \(u\) 的协方差」,后者为 0,偏误就消失了。 一个直观的读法:\(\mathrm{cov}(Z,Y)/\mathrm{var}(Z)\) 是「\(Z\) 变一单位,\(Y\) 变多少」,\(\mathrm{cov}(Z,X)/\mathrm{var}(Z)\) 是「\(Z\) 变一单位,\(X\) 变多少」。两者相除就是「\(X\) 变一单位,\(Y\) 变多少」,前提是 \(Z\) 只能通过 \(X\) 影响 \(Y\)。例如申购流量每增加 1 单位,订单流增加 0.8 单位、收益增加 0.4%,则价格冲击是 \(0.4\%/0.8=0.5\%\) 每单位订单流。

大样本正态:TSLS 是样本均值的函数,中心极限定理给出 \(\hat\beta_1^{TSLS}\approx N(\beta_1,\sigma^2_{\hat\beta_1^{TSLS}})\),

\[\sigma^2_{\hat\beta_1^{TSLS}}=\frac1n\frac{\mathrm{var}[(Z_i-\mu_Z)u_i]}{[\mathrm{cov}(Z_i,X_i)]^2}.\tag{12.8}\]

分母是 \(Z\) 与 \(X\) 协方差的平方:工具越相关,方差越小。用样本量替换总体量即得标准误,95% 置信区间为 \(\hat\beta_1^{TSLS}\pm1.96\,SE\)。

白话解释:同方差时 (12.8) 可以化简为 \(\frac{\sigma_u^2}{n\,\sigma_X^2\,\rho_{ZX}^2}\),其中 \(\rho_{ZX}\) 是 \(Z\) 与 \(X\) 的相关系数。与 OLS 方差 \(\frac{\sigma_u^2}{n\,\sigma_X^2}\) 相比,只多了一个 \(1/\rho_{ZX}^2\)。于是 IV 相当于把有效样本量从 \(n\) 缩小到 \(n\rho_{ZX}^2\)。 数值感受:\(\rho_{ZX}=0.3\) 时,1000 个观测的 IV 只相当于 90 个观测的 OLS,标准误放大 \(1/0.3\approx3.3\) 倍。这就是正文说「相关性的作用类似于样本量」的确切含义。

12.1.5 应用:香烟需求

若想通过加税让香烟消费减少 20%,价格要涨多少?取决于需求弹性:弹性为 −1 时涨 20%,为 −0.5 时要涨 40%。和黄油一样,供需相互作用使对数数量对对数价格的 OLS 回归不能一致估计需求弹性。

数据:美国本土 48 州 1985–1995 年,这里先用 1995 年截面。工具 \(SalesTax_i\) 是香烟税中来自一般销售税的部分(每包实际美元)。

  • 相关性:销售税越高,税后价格越高。
  • 外生性:各州销售税率不同,主要是因为它们为公共开支选择的税种组合不同,由政治因素驱动,与香烟需求无关。暂作工作假设。

第一阶段:

\[\widehat{\ln(P_i^{cigarettes})}=\underset{(0.03)}{4.62}+\underset{(0.005)}{0.031}\,SalesTax_i,\quad R^2=47\%.\tag{12.9}\]

第二阶段,报告时直接写成以 \(\ln P\) 为回归元并给出 TSLS 稳健标准误:

\[\widehat{\ln(Q_i^{cigarettes})}=\underset{(1.53)}{9.72}-\underset{(0.32)}{1.08}\ln(P_i^{cigarettes}).\tag{12.11}\]

价格上涨 1%,消费减少 1.08%。但还不能当真:收入可能是遗漏变量——高收入州更依赖所得税而少依赖销售税,而收入影响香烟需求。这样销售税就与误差相关了。需要把收入作为控制变量,这就需要一般 IV 模型。


12.2 一般 IV 回归模型

12.2.1 四类变量与识别

一般模型有四类变量:因变量 \(Y\);可能与误差相关的内生回归元 \(X\);被包含的外生变量(included exogenous variables)或控制变量 \(W\);工具变量 \(Z\)。

设工具个数为 \(m\),内生回归元个数为 \(k\):

  • \(m=k\):恰好识别(exactly identified);
  • \(m>k\):过度识别(overidentified);
  • \(m<k\):识别不足(underidentified),无法用 IV 估计。

Key Concept 12.1(一般 IV 回归模型)

\[Y_i=\beta_0+\beta_1X_{1i}+\cdots+\beta_kX_{ki}+\beta_{k+1}W_{1i}+\cdots+\beta_{k+r}W_{ri}+u_i,\tag{12.12}\]
\(X_{1i},\dots,X_{ki}\) 为 \(k\) 个内生回归元,\(W_{1i},\dots,W_{ri}\) 为 \(r\) 个被包含的外生变量或控制变量,\(Z_{1i},\dots,Z_{mi}\) 为 \(m\) 个工具。估计需要 \(m\ge k\)。

\(W\) 的两种角色:它可以真是外生的(\(E(u_i\mid W_i)=0\));也可以只是控制变量,纳入它是为了让工具与误差不相关。后者的条件是条件均值独立 \(E(u_i\mid Z_i,W_i)=E(u_i\mid W_i)\)。香烟例子中纳入收入就是这个作用。和 OLS 中一样,控制变量的系数没有因果解释(12.6.4 节)。

12.2.2 一般 TSLS

Key Concept 12.2(两阶段最小二乘)

  1. 第一阶段:把每个内生回归元 \(X_{ji}\) 对全部工具 \(Z_{1i},\dots,Z_{mi}\) 和全部被包含外生变量 \(W_{1i},\dots,W_{ri}\)(含截距)做 OLS,得到预测值 \(\hat X_{ji}\)。
  2. 第二阶段:把 \(Y_i\) 对 \(\hat X_{1i},\dots,\hat X_{ki}\) 和 \(W_{1i},\dots,W_{ri}\)(含截距)做 OLS,所得系数即 TSLS 估计量。

第一阶段方程叫 \(X\) 的约简式(reduced form)方程:它把内生变量表示为全部外生变量的函数。第一阶段必须包含全部 \(W\):如果漏掉,第一阶段的残差会与第二阶段的 \(W\) 相关,导致不一致。

矩阵形式(补充):记 \(\mathbf X\) 为全部第二阶段回归元(内生变量、\(W\)、常数),\(\mathbf Z\) 为全部外生变量(工具、\(W\)、常数),\(P_Z=\mathbf Z(\mathbf Z'\mathbf Z)^{-1}\mathbf Z'\),则

\[\hat\beta^{TSLS}=(\mathbf X'P_Z\mathbf X)^{-1}\mathbf X'P_Z\mathbf Y.\]

白话解释:先回忆 OLS 的矩阵形式 \(\hat\beta=(\mathbf X'\mathbf X)^{-1}\mathbf X'\mathbf Y\),它是「\(X\) 与 \(Y\) 的协方差」除以「\(X\) 的方差」的多变量版本。\(P_Z\mathbf X\) 就是 \(\mathbf X\) 每一列对 \(\mathbf Z\) 回归后的拟合值,即第一阶段的 \(\hat{\mathbf X}\)。\(P_Z\) 有两个性质:对称(\(P_Z'=P_Z\))、做两次等于做一次(\(P_ZP_Z=P_Z\),拟合值再拟合一次还是它自己)。利用这两点,\(\mathbf X'P_Z\mathbf X=(P_Z\mathbf X)'(P_Z\mathbf X)=\hat{\mathbf X}'\hat{\mathbf X}\),于是公式就是 \((\hat{\mathbf X}'\hat{\mathbf X})^{-1}\hat{\mathbf X}'\mathbf Y\):把 \(\mathbf Y\) 对 \(\hat{\mathbf X}\) 做 OLS,正是第二阶段。

12.2.3 有效性条件与 IV 回归假设

Key Concept 12.3(有效工具的两个条件)

  1. 相关性:令 \(\hat X^*_{ji}\) 为 \(X_{ji}\) 对 \(Z\) 和 \(W\) 的总体回归预测值,则 \((\hat X^*_{1i},\dots,\hat X^*_{ki},W_{1i},\dots,W_{ri},1)\) 不完全多重共线。只有一个 \(X\) 时,等价于在 \(X\) 对 \(Z\)、\(W\) 的总体回归中至少一个 \(Z\) 的系数非零。
  2. 外生性:\(\mathrm{corr}(Z_{1i},u_i)=0,\dots,\mathrm{corr}(Z_{mi},u_i)=0\)。

多个内生变量时,相关性条件的直观含义是:工具必须提供足够多关于各个内生变量外生变动的信息,才能区分它们各自对 \(Y\) 的效应。

Key Concept 12.4(IV 回归假设)

  1. \(E(u_i\mid W_{1i},\dots,W_{ri})=0\);
  2. \((X_i,W_i,Z_i,Y_i)\) 为 i.i.d. 抽取;
  3. \(X\)、\(W\)、\(Z\)、\(Y\) 有非零有限四阶矩;
  4. Key Concept 12.3 的两个条件成立。

在这些假设下,TSLS 一致且大样本正态(一般情形的证明在原书第 19 章,即本册第 19b 章)。

12.2.4 TSLS 标准误的两个陷阱

  1. 第二阶段 OLS 报告的标准误是错的。手工跑两步 OLS 时,第二步软件用残差 \(Y_i-\hat\beta_0-\hat\beta_1\hat X_i\) 估计误差方差,但正确的残差是 \(Y_i-\hat\beta_0-\hat\beta_1X_i\)——用真实的 \(X\)。前者包含了 \(\hat\beta_1(X_i-\hat X_i)\) 这一项,不是 \(u_i\) 的一致估计(习题 12.3)。点估计没问题,标准误不对。所以要用软件专门的 TSLS 命令,或自己按正确残差计算。

    推导拆解:第二步软件用的残差是 \(Y_i-\hat\beta_0-\hat\beta_1\hat X_i\)。把 \(Y_i=\beta_0+\beta_1X_i+u_i\) 代入,并用 \(X_i=\hat X_i+\hat v_i\)(实际值 = 拟合值 + 第一阶段残差):

    \[Y_i-\hat\beta_0-\hat\beta_1\hat X_i\approx u_i+\beta_1(X_i-\hat X_i)=u_i+\beta_1\hat v_i.\]
    多出来的 \(\beta_1\hat v_i\) 不随样本增大而消失,它把第一阶段没解释掉的 \(X\) 变动也算进了误差。工具越弱,\(\hat v_i\) 越大,这个错误越严重。量化实战示例 1 中,错误 SE 是正确值的两倍(0.030 对 0.015)。

    白话解释:注意方向不是固定的:\(u_i\) 与 \(\hat v_i\) 可能相关,错误的 SE 可能偏大也可能偏小。原则只有一条:不要手工两步再读第二步的 SE。

  2. 要用异方差稳健标准误,理由与 OLS 相同。

12.2.5 应用:加入收入和第二个工具

把州人均实际收入的对数 \(\ln(Inc_i)\) 作为被包含外生变量:

\[\widehat{\ln(Q_i)}=\underset{(1.26)}{9.43}-\underset{(0.37)}{1.14}\ln(P_i)+\underset{(0.31)}{0.21}\ln(Inc_i).\tag{12.15}\]

各州还对香烟征收专门税 \(CigTax_i\),它同样抬高价格。用两个工具(销售税和专门税)、一个内生变量,\(m=2>k=1\),过度识别:

\[\widehat{\ln(Q_i)}=\underset{(0.96)}{9.89}-\underset{(0.25)}{1.28}\ln(P_i)+\underset{(0.25)}{0.28}\ln(Inc_i).\tag{12.16}\]

价格弹性的标准误从 0.37 降到 0.25,因为两个工具解释了更多的价格变动。但这些估计可信与否,取决于两种税是否都是有效工具。


12.3 检验工具的有效性

无效的工具产生无意义的结果。下面分别讨论两个条件。

12.3.1 相关性与弱工具

相关性的作用类似于样本量:工具越相关,IV 可用的信息越多,估计越精确,正态近似也越好。弱工具(weak instruments)是几乎不能解释 \(X\) 变动的工具。例如用「州到卷烟厂的距离」做工具:距离越远运费越高,但香烟很轻,运费只占价格很小一部分,解释力很弱。

为什么弱工具是问题:工具弱时,即使样本很大,TSLS 的抽样分布也不是正态的,TSLS 会严重偏向 OLS,\(\pm1.96\) 个标准误的置信区间覆盖真值的频率可能远低于 95%。

极端情形最能说明问题(推导见 12.6.3 节)。若工具完全不相关,\(\mathrm{cov}(Z_i,X_i)=0\),则 \(s_{ZX}\xrightarrow{p}0\),一致性论证中的分母为 0。此时中心极限定理同时作用于分子和分母,TSLS 的大样本分布是两个相关的正态随机变量之比,并且以 OLS 的概率极限为中心。弱工具介于完全不相关与强工具之间,分布同样非正态。

经验法则:单内生回归元时,计算第一阶段回归中「全部工具系数为 0」的 F 统计量,即第一阶段 F 统计量(first-stage F-statistic)。

Key Concept 12.5(弱工具的经验法则) 单内生回归元时,第一阶段 F 小于 10 表明工具弱。此时 TSLS 即使在大样本中也有偏,TSLS 的 \(t\) 统计量和置信区间不可靠。

为什么是 10?工具多时,TSLS 偏误近似为

\[E(\hat\beta_1^{TSLS})-\beta_1\approx\frac{\beta_1^{OLS}-\beta_1}{E(F)-1},\]

\(\beta_1^{OLS}\) 是 OLS 的概率极限。\(E(F)=10\) 时,TSLS 偏误约为 OLS 偏误的 \(1/9\),略高于 10%,许多应用可以接受。

白话解释:为什么弱工具会把 TSLS 拉回 OLS?第一阶段用 \(Z\) 去拟合 \(X\) 时,即使 \(Z\) 与 \(X\) 在总体中毫无关系,样本里也总会碰巧拟合出一点东西。这部分「碰巧拟合出来的」\(\hat X\) 实际来自 \(X\) 中的随机部分,也包括被污染的 \(v\)。工具越弱,真信号越少,\(\hat X\) 中这种噪声占比越高,第二阶段就越像在用 \(X\) 本身做回归,于是结果向 OLS 靠拢。 公式读法:分母 \(E(F)-1\) 衡量「真信号」有多强(\(F\) 的期望在工具完全无关时约为 1,多出来的部分才是真信号)。\(E(F)=2\) 时偏误等于 OLS 偏误的全部;\(E(F)=51\) 时只有 2%。示例 2 中平均 F 为 1.6 时 TSLS 中位数 1.49,已偏向 OLS(1.8)一大半,与公式的量级一致。Stock & Yogo (2005) 给出了不依赖「工具很多」近似的正式检验:原假设为工具弱(TSLS 偏误超过 OLS 偏误的 10%),把第一阶段 F(仅同方差版本)与临界值比较;5% 水平的临界值在 9.08 到 11.52 之间,随工具个数变化,所以「与 10 比较」是很好的近似。

有弱工具怎么办:

  • 工具很多时,丢掉最弱的,用最相关的子集。标准误可能变大,但原来的标准误本来就没有意义。
  • 恰好识别时不能丢工具。此时要么寻找更强的工具(说易行难),要么继续用弱工具,但换用对弱工具稳健的推断方法(12.6.3 节的 Anderson–Rubin 或 CLR 检验)。

原书专栏:第一个 IV 回归。1926 年,Philip Wright 在给儿子的信中用 1903–1925 年的亚麻籽数据检验 IV。估计供给弹性时,他用东海岸建筑许可数作工具:新建筑增加油性漆需求,从而增加亚麻籽需求(移动需求、不移动供给)。手工算出的供给弹性是 −0.88——符号错误,他自己称之「显然荒谬」。原因是这个工具的第一阶段 F 只有 1.75,而 OLS 估计是 −0.66,弱工具让 IV 估计偏向 OLS。估计需求弹性时,他改用亚麻籽产区上中西部的降雨作工具(移动供给),第一阶段 F 为 12.8,得到需求弹性 −0.48:需求曲线向下倾斜且缺乏弹性,与当时油漆用亚麻油没有好替代品相符。

12.3.2 外生性与过度识别检验

若工具不外生,TSLS 不一致:

\[\hat\beta_1^{TSLS}\xrightarrow{p}\beta_1+\frac{\mathrm{cov}(Z_i,u_i)}{\mathrm{cov}(Z_i,X_i)}.\]

注意分母:工具越弱,同样程度的外生性违反造成的偏误越大。弱且略有内生性的工具最危险。

推导拆解:与一致性推导相同,只是第二步不再把 \(\mathrm{cov}(Z,u)\) 设为 0:\(\frac{\mathrm{cov}(Z,Y)}{\mathrm{cov}(Z,X)}=\frac{\beta_1\mathrm{cov}(Z,X)+\mathrm{cov}(Z,u)}{\mathrm{cov}(Z,X)}=\beta_1+\frac{\mathrm{cov}(Z,u)}{\mathrm{cov}(Z,X)}\)。 数值例子:设 \(\mathrm{cov}(Z,u)=0.01\)(很轻微的内生性)。强工具 \(\mathrm{cov}(Z,X)=0.5\) 时偏误为 0.02;弱工具 \(\mathrm{cov}(Z,X)=0.02\) 时偏误为 0.5,放大 25 倍。这就像用杠杆:分母越小,杠杆越高,一点点的外生性违反被放大成巨大的偏误。所以弱工具即使「几乎」外生也不安全。

能否用统计检验外生性? 既能也不能。

  • 恰好识别时不能。只有一个工具时只能算出一个 IV 估计,没有比较对象。评估外生性只能靠专家判断和对问题的了解,例如 Wright 对农业的了解让他相信降雨只移动供给。
  • 过度识别时可以检验「多余」工具。设一个内生变量、两个工具,可以分别用每个工具算出一个 TSLS 估计。若两个工具都外生,两个估计只因抽样误差而不同,应当接近;若差异很大,至少有一个工具有问题。

过度识别检验隐式地做这一比较:工具外生意味着它与 TSLS 残差 \(\hat u_i^{TSLS}=Y_i-(\hat\beta_0^{TSLS}+\hat\beta_1^{TSLS}X_{1i}+\cdots+\hat\beta_{k+r}^{TSLS}W_{ri})\) 近似不相关(残差用真实 \(X\) 构造)。

Key Concept 12.6(过度识别约束检验 / J 统计量) 用 OLS 估计

\[\hat u_i^{TSLS}=\delta_0+\delta_1Z_{1i}+\cdots+\delta_mZ_{mi}+\delta_{m+1}W_{1i}+\cdots+\delta_{m+r}W_{ri}+e_i,\tag{12.17}\]
令 \(F\) 为检验 \(\delta_1=\cdots=\delta_m=0\) 的仅同方差 F 统计量,\(J=mF\)。在全部工具外生的原假设下,若 \(e_i\) 同方差、工具不弱,大样本中 \(J\sim\chi^2_{m-k}\)。

虽然检验的是 \(m\) 个约束,自由度却是 \(m-k\),因为只有 \(m-k\) 个过度识别约束可以检验;\(m=k\) 时 \(J\) 恰好为 0。异方差时有修正版本(原书 19.7 节)。

白话解释:为什么自由度是 \(m-k\)?做个类比:两个方程解两个未知数,总能恰好解出来,没有多余信息去检验「方程对不对」;三个方程解两个未知数,就多出一个方程可以用来检验一致性。这里每个工具提供一个「\(Z\) 与 \(u\) 不相关」的方程,\(k\) 个未知系数要用掉 \(k\) 个方程,剩下 \(m-k\) 个才可用于检验。恰好识别时,TSLS 会把残差与每个工具的样本相关都调成恰好为 0,辅助回归的 \(F\) 自然是 0。 金融直觉:这和用多个债券反推一条收益率曲线类似。用 3 个参数的曲线模型拟合 3 只债券,总能完全拟合,无从判断模型好坏;拟合 10 只债券,就有 7 个「多余」的价格可以检验定价误差是否显著。资产定价中的 Hansen J 检验正是这个逻辑:资产(矩条件)多于参数时,检验模型能否同时为所有资产定价。

J 检验的局限:它是在「至少有 \(k\) 个有效工具」的维持假设下检验多余工具;拒绝只说明至少有一个工具无效,不能指出是哪一个;若所有工具以同样方式失效(例如都与同一个遗漏变量相关),J 检验可能毫无察觉。


12.4 应用:香烟需求的面板估计

12.3 节的思考提示了一个外生性威胁:种植烟草的州吸烟率高,而烟草产业可能游说保持低的香烟专门税。「该州是否有大规模烟草产业」这一历史因素进入了需求方程误差,又与专门税相关。

有面板数据就可以用第 10 章的方法消除不随时间变化的州因素。这里用 1985 年到 1995 年的10 年差分:把 \(\Delta\ln Q_i\) 对 \(\Delta\ln P_i\) 和 \(\Delta\ln Inc_i\) 回归,工具是两种税的 10 年变化。

时间跨度决定弹性的含义:香烟成瘾,涨价短期内影响小;长期则可能促使一些人戒烟,更重要的是阻止一些人染上烟瘾。所以成瘾品的需求短期缺乏弹性、长期更有弹性。10 年差分估计的是长期弹性。

表 12.1 用 48 州 10 年差分估计的 TSLS(因变量 \(\ln Q_{i,1995}-\ln Q_{i,1985}\);稳健标准误;方括号为 95% 置信区间)

(1) (2) (3)
\(\Delta\ln P_i\) −0.94 (0.21) [−1.36, −0.52] −1.34 (0.23) [−1.80, −0.88] −1.20 (0.20) [−1.60, −0.81]
\(\Delta\ln Inc_i\) 0.53 (0.34) 0.43 (0.30) 0.46 (0.31)
截距 −0.12 (0.07) −0.02 (0.07) −0.05 (0.06)
工具 销售税 专门税 两者
第一阶段 F 33.7 107.2 88.6
J 检验(p 值) — — 4.93 (0.026)

工具相关吗? 列 (1) 的第一阶段:

\[\widehat{\Delta\ln P_i}=\underset{(0.03)}{0.53}-\underset{(0.22)}{0.22}\,\Delta\ln Inc_i+\underset{(0.0044)}{0.0255}\,\Delta SalesTax_i.\tag{12.18}\]

单工具时第一阶段 F 等于 \(t^2=(0.0255/0.0044)^2=33.7\)。三列都远超 10,工具不弱。

工具外生吗? 列 (1)(2) 恰好识别,无法检验。列 (3) 有 \(m-k=1\) 个过度识别约束,\(J=4.93>3.84\)(\(\chi^2_1\) 的 5% 临界值),拒绝「两个工具都外生」。原因是两个工具单独给出的估计差得太多:−0.94 对 −1.34。

怎么办? J 拒绝只说明至少一个工具无效,有三种可能:销售税外生而专门税不外生(信 (1));反过来(信 (2));两者都不外生(都不可信)。统计无法区分,只能判断。原书作者认为销售税的外生性理由更强:专门税的变化可能与香烟市场和控烟政策联动,例如吸烟不再时髦、烟民减少,反对加税的游说力量减弱,专门税随之提高——偏好变化(在 \(u\) 中)与专门税变化(工具)相关。于是采用以销售税为工具的估计 −0.94。

解读:价格上涨 1%,长期消费减少 0.94%。用 5 年差分(以销售税为工具),1985–1990 年弹性为 −0.79,1990–1995 年为 −0.68,视野越短弹性越小。文献中的估计多为 −0.3 到 −0.5,主要是短期弹性;有研究认为长期弹性约为短期的两倍。原书还提到 Adda & Cornaglia (2006) 的发现:吸烟者会通过每支吸得更用力来补偿加税。原书在本节专栏中讨论了吸烟外部性的估算困难,此处从略。


12.5 有效工具从哪里来

实践中最难的是找到既相关又外生的工具。有两种思路。

思路一:用经济理论。Wright 对农产品市场的理解让他寻找只移动供给的变量。这一思路在金融经济学中特别成功:投资者行为模型往往明确规定了预测误差与哪些信息无关(例如理性预期下,预测误差与预测时已知的所有信息正交),这直接给出一组与误差项无关的变量。这些模型常对数据和参数都是非线性的,所用的是 IV 的推广——广义矩估计(generalized method of moments, GMM)。理论的局限是它常不考虑具体数据集的细节。

思路二:寻找 \(X\) 的外生变动来源,即某种推动内生回归元变化、又与结果无关的「随机」现象,如上面的地震。三个著名例子:

  1. 制度与经济发展(Acemoglu, Johnson & Robinson, 2001)。人均 GDP 对产权保护的 OLS 回归有严重的联立因果偏误:好制度促进发展,发展也让建立好制度成为可能。他们用殖民时期潜在定居者的死亡率作工具:死亡率决定了欧洲人是建立保护产权的「新欧洲」还是攫取型国家,这些制度差异延续至今。定居者死亡率单独解释了当今制度水平的 27%;加入疟疾流行率作稳健性检验,系数变化很小;三个工具的过度识别检验未拒绝。TSLS 估计的制度效应约为 OLS 的两倍,且非洲虚拟变量和到赤道的距离不再显著。这项研究也有争议(Albouy, 2012 及作者回应)。
  2. 班级规模(Hoxby, 2000)。实际入学人数可能内生,但潜在入学人数(学区内 4 岁儿童数)主要由出生时间的随机波动决定。由于家长迁入迁出会让潜在入学人数平滑变化,她用的是潜在入学人数相对长期趋势的偏离,第一阶段 F 都超过 100。结合康涅狄格州学校面板和学校固定效应,TSLS 显示班级规模的效应很小,多数不显著。
  3. 心导管术与心脏病存活(McClellan, McNeil & Newhouse, 1994)。是否接受治疗是医患决策,与未观测的健康状况相关,OLS 有偏。工具是患者家到最近的心导管术医院的距离减去到最近任何医院的距离。他们用可观测的健康变量与距离不相关来支持外生性。基于 205,021 名 1987 年发生急性心肌梗死的 64 岁以上患者,TSLS 显示治疗效应很小、可能为 0,而 OLS 显示很大的正效应。

IV 估计的是谁的效应? 心导管术例子揭示了一个重要解释:TSLS 用的是「预测的治疗」,其变动来自工具。所以 IV 估计的不是典型患者的效应,而是治疗决策受距离影响的那部分患者的效应。若效应因人而异,IV 估计就是这部分人的平均效应——后来文献称为局部平均处理效应(LATE),原书第 13 章讨论。这也给出寻找工具的一般策略:找一个影响「接受处理的概率」、但除此之外与结果无关的变量。

金融直觉:用「指数纳入」作工具估计机构持股对股价的效应时,IV 估计反映的是刚好处在指数边界附近、因纳入而被动增持的那些股票的效应。它不一定能推广到大盘蓝筹,也不一定适用于主动基金因看好而增持的情形。读 IV 研究时,要问一句「这个工具影响的是谁」,才能判断结论适用的范围。这正是第 09 章外部有效性问题在 IV 中的具体表现。


12.6 技术细节(原书附录 12.2–12.6)

12.6.1 式 (12.4) 的推导

第二阶段是 \(Y\) 对 \(\hat X\) 的 OLS,所以 \(\hat\beta_1^{TSLS}=s_{\hat XY}/s^2_{\hat X}\)。由 \(\hat X_i=\hat\pi_0+\hat\pi_1Z_i\) 得 \(s_{\hat XY}=\hat\pi_1s_{ZY}\),\(s^2_{\hat X}=\hat\pi_1^2s_Z^2\),于是 \(\hat\beta_1^{TSLS}=s_{ZY}/(\hat\pi_1s_Z^2)\)。再代入 \(\hat\pi_1=s_{ZX}/s_Z^2\) 即得 \(s_{ZY}/s_{ZX}\)。

二元工具:Wald 估计量(习题 12.4)。\(Z\) 只取 0 和 1 时,

\[\hat\beta_1^{TSLS}=\frac{\bar Y_{Z=1}-\bar Y_{Z=0}}{\bar X_{Z=1}-\bar X_{Z=0}},\]

即「工具引起的 \(Y\) 的差异」除以「工具引起的 \(X\) 的差异」。这是事件型自然实验最直观的 IV 形式。

12.6.2 大样本分布

由 (12.1),\(s_{ZY}=\beta_1s_{ZX}+\frac1{n-1}\sum(Z_i-\bar Z)u_i\),于是

\[\hat\beta_1^{TSLS}=\beta_1+\frac{\frac1n\sum_i(Z_i-\bar Z)u_i}{\frac1n\sum_i(Z_i-\bar Z)(X_i-\bar X)}.\tag{12.20}\]

与 OLS 的式 (4.28) 结构相同,只是分子中 \(X\) 换成了 \(Z\),分母是 \(Z\) 与 \(X\) 的协方差。令 \(q_i=(Z_i-\mu_Z)u_i\):外生性使 \(E(q_i)=0\),中心极限定理使 \(\bar q\) 近似正态;分母依概率收敛到 \(\mathrm{cov}(Z_i,X_i)\neq0\)。合起来就是式 (12.8)。

12.6.3 工具无效时的分布;弱工具下的推断

工具不相关时,令 \(r_i=(Z_i-\mu_Z)(X_i-\mu_X)\),\(E(r_i)=0\),中心极限定理也作用于分母:

\[\hat\beta_1^{TSLS}\cong\beta_1+\frac{\bar q}{\bar r}=\beta_1+\frac{\sigma_q}{\sigma_r}\cdot\frac{\bar q/\sigma_{\bar q}}{\bar r/\sigma_{\bar r}},\tag{12.21}\]

右边是两个相关的标准正态变量之比,所以 TSLS 即使在大样本中也非正态,并以 OLS 的概率极限为中心。恰好识别时这种比值分布甚至没有有限的均值,所以模拟研究常用中位数衡量偏误。

Anderson–Rubin (AR) 检验。检验 \(H_0:\beta_1=\beta_{1,0}\):

  1. 构造 \(Y_i^*=Y_i-\beta_{1,0}X_i\);
  2. 把 \(Y_i^*\) 对 \(W\) 和 \(Z\) 回归,AR 统计量是检验 \(Z\) 系数全为 0 的 F 统计量。

在原假设下 \(Y^*_i=\beta_0+\beta_2W+u_i\),若工具外生,\(Z\) 与 \(u\) 无关,所以检验水平正确。它从不用到相关性,无论工具强、弱还是不相关都有效。把所有不被拒绝的 \(\beta_{1,0}\) 收集起来就是 95% 置信集。AR 置信集可能是有界区间,也可能是两段无界区间的并,甚至整条实线——后者恰恰是在诚实地告诉你「工具太弱,数据无法给出信息」。

白话解释:AR 的思路叫「检验反转」(test inversion):不是先估计一个点再加减 1.96 个标准误,而是逐个试候选值 \(\beta_{1,0}\),问「如果真值是它,数据看起来正常吗」,把所有「看起来正常」的候选值收集起来作为置信集。 判断标准很直观:如果 \(\beta_{1,0}\) 是真值,\(Y-\beta_{1,0}X\) 就只剩 \(u\)(加上 \(W\) 的部分),外生的 \(Z\) 应当解释不了它。若 \(Z\) 显著解释了它,说明这个候选值错了。 金融上的类比是隐含波动率:不是直接「估计」波动率,而是试不同的波动率值,看哪个能让模型价格与市场价格一致。AR 置信集同样是「与数据一致的所有参数值」。

条件似然比(CLR)检验(Moreira, 2003):单内生回归元时的首选,临界值依赖一个度量工具强度的统计量;工具强时等价于 TSLS 的 \(t\) 检验,工具弱时仍有很好的势。不易推广到多个内生回归元,此时用 AR。AR 的缺点是工具强且过度识别时势低于 TSLS。

工具弱时,置信集比点估计更有意义;若工具完全不相关,没有额外约束就不可能得到 \(\beta_1\) 的无偏估计。

12.6.4 IV 中的控制变量

考虑 \(Y_i=\beta_0+\beta_1X_i+\beta_2W_i+u_i\),把 IV 假设 1 换成条件均值独立:

\[E(u_i\mid W_i,Z_i)=E(u_i\mid W_i).\tag{12.23}\]

设 \(E(u_i\mid W_i)=\gamma_0+\gamma_1W_i\),定义 \(\varepsilon_i=u_i-E(u_i\mid W_i,Z_i)\),则

\[Y_i=\underbrace{(\beta_0+\gamma_0)}_{\delta_0}+\beta_1X_i+\underbrace{(\beta_2+\gamma_1)}_{\delta_1}W_i+\varepsilon_i,\tag{12.25}\]

且 \(E(\varepsilon_i\mid W_i,Z_i)=0\)。所以 IV 的全部方法都适用于 (12.25):TSLS 一致估计 \(\beta_1\),但 \(W\) 的系数估计的是 \(\delta_1=\beta_2+\gamma_1\),没有因果解释。香烟例子中,若收入增长与教育提高相关、教育减少吸烟(\(\gamma_1<0\)),表 12.1 的收入系数会低估收入弹性;但只要 (12.23) 成立,价格弹性的估计仍然一致。


量化实战

IV 在量化中的典型场景

  • 价格冲击与交易成本。订单流推动价格,价格变动又引来追涨杀跌的订单流,二者联立决定——这正是 Wright 的黄油问题。直接把收益对订单流回归,会混合「交易推动价格」与「价格吸引交易」两种效应。文献用外生的流量作工具或准实验,例如共同基金因申赎被迫进行的交易(Lou, 2012 等资金流驱动交易的研究)、指数纳入/剔除带来的被动调仓;需求系统资产定价(Koijen & Yogo)以及 Gabaix & Koijen 关于市场价格弹性的研究,也都依赖工具变量识别需求曲线的斜率。估计冲击成本模型时,这类识别决定了模型的参数是否可信。
  • 因子 beta 的变量误差。第 09 章指出估计的 beta 会让风险溢价衰减。IV 提供了一种修正:用不同子样本估计的 beta 作工具,例如用奇数月估计的 beta 作偶数月 beta 的工具,两者的测量误差互相独立,但都与真实 beta 相关(Jegadeesh 等, 2019 系统发展了这一方法)。
  • GMM 与资产定价检验。12.5 节「预测误差与已知信息正交」在资产定价里就是欧拉方程 \(E[m_{t+1}R_{t+1}-1\mid I_t]=0\):\(I_t\) 中的任何变量(滞后收益、股息率等)都是工具。Hansen (1982) 的 GMM 估计随机贴现因子的参数,Hansen J 检验就是本章 J 统计量的推广,是检验资产定价模型的标准工具。
  • 利用制度断点的因果研究。分析师覆盖、机构持股、指数成分对流动性和收益的因果效应,常利用券商合并导致的分析师覆盖外生减少、Russell 1000/2000 分界附近的指数归属变化等作为工具或准实验。
  • 弱工具的教训。用少数宏观事件或稀疏的冲击作工具时,第一阶段往往很弱。Wright 的 −0.88 是最好的警示。量化报告中应当给出第一阶段 F,必要时报告 AR 置信集。
  • 纯预测问题一般不需要 IV。选股模型追求的是样本外预测,不需要因果识别(第 09 章 9.3 节)。但在解释因子机制、评估政策或事件冲击、估计交易成本函数等需要因果结论的环节,IV 很关键。

示例 1:价格冲击的 TSLS、错误的第二阶段标准误与 J 检验

模拟 2000 个股票-日观测。收益方程 \(r=\lambda\,OF+u\),真值 \(\lambda=0.5\);订单流对当期收益有反馈(追涨),所以 \(OF\) 与 \(u\) 相关。\(Z_1\) 是基金申赎带来的被动流量(外生),\(Z_2\) 是一个与新闻冲击相关的「关注度」变量(不外生)。

import numpy as np
import statsmodels.api as sm
from scipy import stats

rng = np.random.default_rng(12)
n = 2000
# ---- 价格冲击的联立模型(股票-日)----
# 收益方程(关注): r  = lam * OF + u        u: 新闻/信息冲击
# 订单流方程     : OF = 0.8 * r + 1.0*Z1 + 0.5*Z2 + v   追涨交易使 OF 对 r 反应
# Z1: 基金申赎被动带来的流量(外生);Z2: 散户关注度(与新闻 u 相关 -> 不外生)
lam = 0.5
u = rng.normal(0, 1, n); v = rng.normal(0, 1, n)
Z1 = rng.normal(0, 1, n)
Z2 = 0.4 * u + rng.normal(0, 1, n)
OF = (0.8 * u + 1.0 * Z1 + 0.5 * Z2 + v) / (1 - 0.8 * lam)   # 解联立方程得约简式
r = lam * OF + u

def tsls(y, X, Z):
    """y: (n,), X: 回归元(含常数与内生变量), Z: 工具(含常数与外生变量)。返回系数、稳健SE、残差"""
    PzX = Z @ np.linalg.lstsq(Z, X, rcond=None)[0]        # 第一阶段拟合值 X_hat
    b = np.linalg.solve(PzX.T @ X, PzX.T @ y)
    e = y - X @ b                                          # 正确残差:用真实 X
    A = np.linalg.inv(PzX.T @ PzX)
    V = A @ (PzX.T * e**2) @ PzX @ A                       # 异方差稳健
    return b, np.sqrt(np.diag(V)), e, PzX

const = np.ones(n)
X = np.column_stack([const, OF])
ols = sm.OLS(r, X).fit(cov_type="HC1")
print(f"OLS 价格冲击      : {ols.params[1]:.3f} (SE {ols.bse[1]:.3f})   真值 {lam}")

# 1) 单工具:Z1;先看第一阶段 F
fs = sm.OLS(OF, np.column_stack([const, Z1])).fit(cov_type="HC1")
print(f"第一阶段 F(Z1)    : {fs.tvalues[1]**2:.1f}")
b1, se1, e1, Xhat = tsls(r, X, np.column_stack([const, Z1]))
print(f"TSLS(Z1)          : {b1[1]:.3f} (稳健SE {se1[1]:.3f})")
print(f"s_ZY / s_ZX       : {np.cov(Z1, r)[0,1] / np.cov(Z1, OF)[0,1]:.3f}")

# 手工两步 OLS:系数相同,但第二步报告的 SE 用了错误残差 y - Xhat*b
naive = sm.OLS(r, Xhat).fit(cov_type="HC1")
print(f"手工第二步 OLS    : {naive.params[1]:.3f} (第二步SE {naive.bse[1]:.3f}  <- 错误)")

# 2) 两个工具:Z1 有效,Z2 无效;过度识别 J 检验
Zall = np.column_stack([const, Z1, Z2])
b2, se2, e2, _ = tsls(r, X, Zall)
aux = sm.OLS(e2, Zall).fit()                               # 残差对全部工具回归
F = aux.f_test("x1 = 0, x2 = 0").fvalue                    # 仅同方差 F
m, k = 2, 1
J = m * float(np.squeeze(F))
print(f"TSLS(Z1,Z2)       : {b2[1]:.3f} (SE {se2[1]:.3f}),  J = {J:.2f}, p = {stats.chi2.sf(J, m-k):.4f}")
b3, se3, _, _ = tsls(r, X, np.column_stack([const, Z2]))
print(f"TSLS(仅Z2)        : {b3[1]:.3f} (SE {se3[1]:.3f})  <- 工具内生,不一致")

输出:

OLS 价格冲击      : 0.688 (SE 0.006)   真值 0.5
第一阶段 F(Z1)    : 748.1
TSLS(Z1)          : 0.481 (稳健SE 0.015)
s_ZY / s_ZX       : 0.481
手工第二步 OLS    : 0.481 (第二步SE 0.030  <- 错误)
TSLS(Z1,Z2)       : 0.607 (SE 0.009),  J = 259.88, p = 0.0000
TSLS(仅Z2)        : 0.772 (SE 0.015)  <- 工具内生,不一致

读法:OLS 把追涨交易的反馈也算进了价格冲击,高估了近 40%,而且标准误很小,给人「非常精确」的错觉。用外生流量 \(Z_1\) 做 TSLS,估计回到真值附近,且与 \(s_{ZY}/s_{ZX}\) 完全相同。手工两步法的点估计一样,但第二步报告的标准误(0.030)是错的,正确值是 0.015。加入无效工具 \(Z_2\) 后估计被拉偏到 0.607,J 检验强烈拒绝;只用 \(Z_2\) 则得到 0.772,比 OLS 还差。注意:如果手上只有 \(Z_2\) 一个工具,J 检验根本无法计算,问题无从察觉。

示例 2:弱工具的蒙特卡洛,以及用 IV 修正 beta 的衰减

第一部分:\(n=200\),真值 \(\beta=1\),\(\mathrm{corr}(u,v)=0.8\),OLS 的概率极限约为 1.8。改变第一阶段系数 \(\pi\),观察 TSLS 中位数、名义 95% 置信区间的实际覆盖率,以及 AR 检验在真值处的接受率。第二部分:用奇数月 beta 作偶数月 beta 的工具,修正第 09 章的变量误差。

import numpy as np
from scipy import stats

rng = np.random.default_rng(3)
# ---------- 1. 弱工具:TSLS 偏向 OLS、置信区间覆盖不足;AR 检验不受影响 ----------
n, beta, rho, R = 200, 1.0, 0.8, 4000
crit_F = stats.f.ppf(0.95, 1, n - 2)
def one_rep(pi):
    Z = rng.normal(0, 1, n)
    u = rng.normal(0, 1, n)
    v = rho * u + np.sqrt(1 - rho**2) * rng.normal(0, 1, n)   # corr(u, v) = 0.8 -> X 内生
    X = pi * Z + v
    Y = beta * X + u
    Zc, Xc, Yc = Z - Z.mean(), X - X.mean(), Y - Y.mean()
    b_ols = Xc @ Yc / (Xc @ Xc)
    b_iv = Zc @ Yc / (Zc @ Xc)                       # s_ZY / s_ZX
    # 第一阶段 F(单工具 = t^2,同方差版本)
    pi_hat = Zc @ Xc / (Zc @ Zc); ev = Xc - pi_hat * Zc
    F1 = pi_hat**2 / (ev @ ev / (n - 2) / (Zc @ Zc))
    # TSLS 稳健 SE(式 12.8 的样本版本)
    e = Yc - b_iv * Xc
    se_iv = np.sqrt(np.sum((Zc * e)**2)) / abs(Zc @ Xc)
    cover_tsls = abs(b_iv - beta) / se_iv < 1.96
    # Anderson-Rubin:Y - beta0*X 对 Z 回归,检验 Z 系数为 0(这里 beta0 取真值)
    ys = Yc - beta * Xc
    g = Zc @ ys / (Zc @ Zc); es = ys - g * Zc
    AR = g**2 / (es @ es / (n - 2) / (Zc @ Zc))
    cover_ar = AR < crit_F
    return b_ols, b_iv, F1, cover_tsls, cover_ar

print(f"{'pi':>5s} {'平均F':>7s} {'OLS中位':>8s} {'TSLS中位':>9s} {'TSLS覆盖':>9s} {'AR覆盖':>7s}")
for pi in [0.05, 0.10, 0.25, 0.50]:
    res = np.array([one_rep(pi) for _ in range(R)])
    print(f"{pi:5.2f} {res[:,2].mean():7.1f} {np.median(res[:,0]):8.3f} {np.median(res[:,1]):9.3f} "
          f"{res[:,3].mean():9.3f} {res[:,4].mean():7.3f}")

# ---------- 2. 用 IV 修正 beta 的变量误差(奇偶月互为工具)----------
N, T, lam = 3000, 120, 0.006
beta_true = rng.normal(1.0, 0.3, N)
mkt = rng.normal(lam, 0.045, T)
Rm = mkt[:, None] * beta_true[None, :] + rng.normal(0, 0.10, (T, N))
def est_beta(idx):
    m = mkt[idx] - mkt[idx].mean()
    return m @ (Rm[idx] - Rm[idx].mean(axis=0)) / (m @ m)
b_even, b_odd = est_beta(np.arange(0, T, 2)), est_beta(np.arange(1, T, 2))
Rbar = Rm.mean(axis=0)
c = lambda a, b: np.cov(a, b)[0, 1]
print(f"\n样本内市场均值(真实斜率) {mkt.mean()*100:.3f}%")
print(f"OLS: 平均收益对 b_even  {c(b_even, Rbar)/np.var(b_even, ddof=1)*100:.3f}%  (衰减)")
print(f"IV : 以 b_odd 为工具     {c(b_odd, Rbar)/c(b_odd, b_even)*100:.3f}%")

输出:

   pi     平均F    OLS中位    TSLS中位    TSLS覆盖    AR覆盖
 0.05     1.6    1.797     1.487     0.866   0.944
 0.10     2.9    1.792     1.125     0.895   0.951
 0.25    13.5    1.754     0.996     0.930   0.950
 0.50    51.0    1.640     1.000     0.951   0.956

样本内市场均值(真实斜率) 1.064%
OLS: 平均收益对 b_even  0.533%  (衰减)
IV : 以 b_odd 为工具     1.156%

读法:

  • 平均第一阶段 F 为 1.6 时,TSLS 中位数 1.49,已从真值 1 向 OLS 的 1.8 偏去一大半;名义 95% 的置信区间只覆盖了 87%。F 升到 13.5 后,中位数回到 1.0,覆盖率接近 95%。「F > 10」的经验法则在这里得到验证。这里用中位数而不是均值,是因为恰好识别时 TSLS 没有有限均值(12.6.3 节)。
  • AR 检验在所有情形下的覆盖率都在 95% 左右,与工具强弱无关。代价是工具弱时 AR 置信集会很宽,甚至无界。
  • 第二部分中,单用偶数月 beta 的截面回归把风险溢价衰减了一半(0.53% 对 1.06%);以奇数月 beta 为工具,估计回到 1.16%,与真实值相差在抽样误差范围内。IV 消除了偏误,但方差更大,这是 IV 的一般代价。

本章小结

工具变量回归在回归元与误差相关时估计因果效应。有效工具既要与内生回归元相关,又要与误差无关。TSLS 在第一阶段把每个内生变量对全部工具和外生变量回归,在第二阶段用预测值代替内生变量;单工具时它等于 \(s_{ZY}/s_{ZX}\),二元工具时等于 Wald 估计量。推断要用专门的 TSLS 标准误(残差用真实 \(X\)),并采用异方差稳健形式。工具数必须不少于内生变量数。工具弱时 TSLS 偏向 OLS、分布非正态、置信区间覆盖不足,单内生变量时用第一阶段 F > 10 判断,弱时改用 Anderson–Rubin 或 CLR 推断。工具不外生时 TSLS 不一致;过度识别时可用 J 检验多余工具,但核心的外生性假设无法检验,只能靠对问题的理解。好工具来自经济理论或外生的「自然实验」,IV 估计的是受工具影响那部分个体的效应。

概念 公式 / 要点
有效工具 相关:\(\mathrm{corr}(Z,X)\neq0\);外生:\(\mathrm{corr}(Z,u)=0\)
单工具 TSLS \(\hat\beta_1^{TSLS}=s_{ZY}/s_{ZX}\);二元 \(Z\) 时为 Wald 估计量
大样本方差 \(\frac1n\mathrm{var}[(Z-\mu_Z)u]/[\mathrm{cov}(Z,X)]^2\)
矩阵形式 \((\mathbf X'P_Z\mathbf X)^{-1}\mathbf X'P_Z\mathbf Y\)
识别 \(m=k\) 恰好,\(m>k\) 过度,\(m<k\) 不足
第二阶段 SE 错误;残差应为 \(Y-\mathbf X\hat\beta\)
弱工具 第一阶段 F < 10;偏误 ≈ OLS 偏误 / \((E(F)-1)\);Stock–Yogo 临界值 9.08–11.52
工具内生 \(\hat\beta_1\xrightarrow{p}\beta_1+\mathrm{cov}(Z,u)/\mathrm{cov}(Z,X)\)
J 检验 \(J=mF\sim\chi^2_{m-k}\);恰好识别时 \(J=0\)
AR 检验 \(Y-\beta_{1,0}X\) 对 \(Z,W\) 回归,检验 \(Z\) 系数为 0;对弱工具稳健
IV 中的控制变量 条件均值独立 \(E(u\mid W,Z)=E(u\mid W)\);\(W\) 系数无因果解释

练习

基础

  1. 黄油需求方程 (12.3) 中,\(\ln P\) 与误差正相关还是负相关?OLS 估计的需求弹性偏大还是偏小?(原书复习题 12.1) 答案要点:正需求冲击同时抬高价格,正相关;OLS 斜率偏大(偏向 0 或正值),需求弹性的绝对值被低估。
  2. 如果 Acemoglu 等人用当今的疟疾流行率作工具,它满足相关性吗?外生性呢?(原书复习题 12.3) 提示:可能相关;但疟疾直接影响当今劳动生产率,违反排除约束。
  3. 解释为什么最小二乘假设成立时 \(Z_i=X_i\) 是有效工具,且 IV 估计量等于 OLS。(原书习题 12.2) 提示:\(s_{XY}/s_{XX}\) 就是 OLS 斜率。
  4. 指出以下情形违反了哪条 IV 假设:(a) \(Z\) 独立于 \((Y,X,W)\);(b) \(Z=W\);(c) \(W_i\equiv1\);(d) \(Z=X\) 且 \(X\) 内生。(原书习题 12.5) 答案要点:(a) 不相关;(b) 第二阶段完全共线;(c) 与常数完全共线;(d) 不外生。
  5. 单工具时第一阶段系数 \(t=4.2\),第一阶段 F 是多少?工具算弱吗? 提示:\(F=t^2=17.6>10\),不算弱。

进阶

  1. (原书习题 12.4)\(Z\) 是二元变量时,证明 \(\hat\beta^{TSLS}=(\bar Y_1-\bar Y_0)/(\bar X_1-\bar X_0)\)。 提示:\(s_{ZY}=\frac{n_1n_0}{n(n-1)}(\bar Y_1-\bar Y_0)\),\(s_{ZX}\) 同理,比值消去公共因子。
  2. (原书习题 12.3)证明用 \(Y_i-\hat\beta_0-\hat\beta_1\hat X_i\) 计算的误差方差估计量不一致,用 \(Y_i-\hat\beta_0-\hat\beta_1X_i\) 的一致。 提示:前者 \(=u_i+\beta_1(X_i-\hat X_i)+\) 估计误差,多出的 \(\beta_1\hat v_i\) 不随样本增大消失。
  3. (原书习题 12.6)\(n=113\),单工具。\(X\) 与 \(Z\) 的相关系数至少多大,第一阶段 F 才超过 10? 答案要点:\(F=\frac{R^2(n-2)}{1-R^2}>10\Rightarrow R^2>10/121\),\(|r|>0.287\)。
  4. (原书习题 12.7)\(Z_1\) 来自随机抽签但较弱,\(Z_2\) 很强但外生性可疑,J = 7.5。能得出什么结论? 提示:J 拒绝说明至少一个工具无效;结合先验知识,\(Z_2\) 最可疑。但 \(Z_1\) 弱会让 J 检验本身的分布近似变差,结论应当谨慎。
  5. 在示例 1 的代码中把 \(Z_1\) 的系数从 1.0 改为 0.08,观察第一阶段 F、TSLS 估计和标准误。然后对 \(\lambda\in[-1,2]\) 网格计算 AR 统计量,画出 95% AR 置信集,与 TSLS 区间比较。 提示:F 会降到 10 以下,TSLS 向 OLS 偏移;AR 置信集变宽,可能无界。
  6. 用奇偶月 beta 互为工具时,为什么不能用同一批月份估计的两个 beta?若收益存在一阶自相关,奇偶月划分是否还能保证测量误差独立? 提示:同一批月份的估计误差相同,工具与误差相关;相邻月份的特质收益相关时,奇偶月的误差也相关,可改用间隔更大的分块。

原书推荐习题:12.4(Wald 估计量)与附录 12.2;12.3(第二阶段标准误为何错误);12.2、12.5(通过反例理解各条 IV 假设);12.8 与复习题 12.1(供需联立下的偏误方向与识别逻辑);12.6(F > 10 对应的相关系数下限);12.7(J 检验能说明什么);实证题 E12.3(弱工具与 Anderson–Rubin 置信集)、E12.1(以前两胎同性别为工具研究生育对劳动供给的影响,Angrist & Evans 1998)。


原书对照

本章内容 原书章节 PDF 页码
章首导言 第 12 章开篇 p.427
IV 模型与假设、TSLS、Wright 与班级规模例子、历史专栏 12.1 p.428–434
TSLS 抽样分布(式 12.4–12.8)、香烟需求初步应用(式 12.9–12.11) 12.1 p.434–437
一般 IV 模型、TSLS、有效性条件、IV 假设(Key Concept 12.1–12.4) 12.2 p.437–443
香烟需求续(式 12.15–12.16) 12.2 p.443–444
工具相关性与弱工具、第一个 IV 回归专栏(Key Concept 12.5) 12.3 p.444–447
工具外生性与 J 检验(Key Concept 12.6) 12.3 p.447–449
香烟需求面板应用(表 12.1,式 12.18)、吸烟外部性专栏 12.4 p.450–454
有效工具从何而来(三个例子) 12.5 p.454–459
结论、小结 12.6 p.459–461
习题 第 12 章末 p.461–467
香烟数据集 附录 12.1 p.467
式 (12.4) 推导 附录 12.2 p.467
TSLS 的大样本分布 附录 12.3 p.468–469
工具无效时的大样本分布 附录 12.4 p.469–470
弱工具下的推断(Stock–Yogo、AR、CLR) 附录 12.5 p.470–472
带控制变量的 TSLS 附录 12.6 p.472–473

注:原书页码 = PDF 页码 − 1。