实证方法教程 / endogeneity

内生性处理

把内生性、稳健性和标准误问题说清楚

这节课解决什么用于处理内生性、弱识别、标准误、空间相关或多重检验等识别风险。
先准备哪些变量因变量 / 核心解释变量
会看到哪张表endogeneity_iv.csv
论文里怎么克制解释披露校正口径和失败/不可用状态,不把补充诊断伪装成主规格显著性。

内生性处理是什么?

内生性处理回答的是核心解释变量 X 是否可能和误差项相关。如果 X 受到反向因果、遗漏变量或测量误差影响,普通 OLS 的系数就不能直接解释为因果效应。

先用一句话理解

把内生性想成 X 和看不见的因素缠在一起。你以为 X 在影响 Y,但可能是 Y 反过来影响 X,或者某个没放进模型的因素同时推着 X 和 Y。

什么时候用

判断项教科书式判断
适合用在核心变量存在反向因果、遗漏变量、测量误差或选择偏误风险。
先不要用在没有清楚的内生性来源,只是为了让论文看起来高级。
最关键的前提工具变量或识别策略必须同时说明相关性和外生性。
读表顺序先看内生性来源,再看工具变量第一阶段和第二阶段。
论文表述边界工具变量结果只能在工具变量假设可信时解释为因果。

把它和相近方法分清楚

容易混淆的对象怎么区分初学者记法
控制变量控制可观察混杂。不能处理不可观察且与 X 相关的误差。
固定效应控制不随时间变化的不可观察因素。不能处理随时间变化的内生性。
工具变量用外生变动识别 X 的因果部分。需要相关性和排除限制。

核心直觉和模型公式

两阶段最小二乘

工具变量常见两阶段结构为:

\[X_{it}=\pi Z_{it}+\boldsymbol{\delta}'\mathbf{W}_{it}+FE+v_{it}\]
\[Y_{it}=\beta \widehat{X}_{it}+\boldsymbol{\gamma}'\mathbf{W}_{it}+FE+\varepsilon_{it}\]

第一阶段用工具变量 Z 解释 X,第二阶段只使用 X 中由 Z 带来的外生部分。

公式里的符号怎么读

符号含义在本页怎么理解
X内生解释变量可能与误差项相关的核心变量。
Z工具变量影响 X,但不应直接影响 Y。
π第一阶段相关性Z 是否足够解释 X。
X_hat预测的 X由工具变量解释出的 X 的外生部分。
βIV 估计效应在工具变量假设下的局部因果效应。

专业使用口径

专业内生性处理的重点是识别逻辑,不是简单把 OLS 换成 IV。

口径专业写法
内生性来源明确是反向因果、遗漏变量、测量误差还是选择偏误。
相关性第一阶段要有足够解释力。
外生性论证 Z 不直接影响 Y,也不通过其他路径影响 Y。
弱工具诊断报告第一阶段、弱 IV 或 Anderson-Rubin 等诊断。

一步一步做:从问题到结果的五步

步骤这一页具体做什么做到什么程度才算读懂
1. 写出内生性风险说明 OLS 为什么可能有偏。不能只说存在内生性。
2. 提出识别策略工具变量、准实验或其他外生冲击。策略要对应风险来源。
3. 检查第一阶段Z 是否显著解释 X,强度是否足够。弱工具会让 IV 推断失真。
4. 估计第二阶段用 X_hat 解释 Y。解释的是工具变量诱导的变化。
5. 做诊断和边界过识别、弱 IV、稳健性和理论排除限制。诊断不过要保守表述。

结果怎么读:先读口径,再读数字

本页案例读表时,先记住这个口径:endogeneity = diagnostic_skipped;'y'。

读表顺序本页怎么读不要这样读
先看内生性叙述风险来源是否具体。泛泛而谈不够。
再看第一阶段工具变量是否相关。第一阶段弱时第二阶段不可靠。
然后看第二阶段核心效应方向和量级。不能脱离工具变量解释范围。
最后看诊断弱 IV、过识别和稳健性是否支持。只看第二阶段星号不够。

初学者最容易错在哪里

误读为什么错
只说有内生性,不说来源错。风险必须具体。
工具变量只讲相关性不够。外生性更难也更关键。
弱工具仍强解释错。弱 IV 下常规推断可能失真。
把 IV 结果当全样本平均效应风险很高。IV 通常是局部平均处理效应。

先看这个案例的结论

  • endogeneity = diagnostic_skipped;'y'。
  • 这些数字来自页面里的结果表;写论文时先解释数值含义,再讨论理论含义。

变量要求和案例口径

字段口径
数据CSMAR 风格 A 股企业创新面板
原始样本196 家上市公司,2015-2020 年,约 1200 个公司-年观测;各方法有效样本以本页输出表 N 为准
因变量patent_count;回归页通常使用 ln(1 + patent_count)
核心解释变量dfi_index,数字普惠金融指数;部分案例输出展示的是标准化后的 dfi_index
控制变量roa、lev、size、growth、cashflow、tobinq、top1、dual、board、indep、soe、age
输出文件endogeneity_iv.csv
角色要求因变量、核心解释变量
依赖包无额外 Stata 社区包要求

实际代码

下面是本页案例里的最小 Stata 代码。它的作用是帮助你看清变量怎么进入模型、结果文件怎么生成,而不是要求你在网页里手动运行。

import delimited "$DATA_PATH", clear varnames(1) encoding(UTF-8)
gen ln_patent1 = ln(1 + patent_count)
egen firm_id = group(stkcd)
xtset firm_id year

global y ln_patent1
global count_y patent_count
global x dfi_index
global controls roa lev size growth cashflow tobinq top1 dual board indep soe age
gen post = year >= 2018
bysort firm_id: egen pre_dfi = mean(cond(year < 2018, dfi_index, .))
quietly summarize pre_dfi, detail
gen treat = pre_dfi >= r(p50)
gen did = treat * post
gen high_patent = patent_count > 2
gen running_dfi = dfi_index - 260
gen rdd_treat = running_dfi >= 0

ivregress 2sls $y $controls i.year ($x = L.$x), vce(cluster firm_id)
estat firststage
export delimited using "$JOB_DIR/endogeneity_iv.csv", replace

实际输出表

这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。

methodstatusreasonN
endogeneitydiagnostic_skipped'y'96

案例图

这是一张由同一份案例数据生成的页面内诊断图。

内生性处理 的共用案例输出图。
内生性处理 的共用案例输出图。

论文里怎么写

为缓解模型设定或内生性担忧,本文补充报告内生性处理。相关估计输出见 endogeneity_iv.csv。该检验不替代研究设计本身,但可以说明核心结论在替代识别、标准误或稳健性口径下是否保持一致。

检查清单

  • 工具变量必须同时满足相关性和外生性;第一阶段强不代表外生性成立。
  • 报告第一阶段、弱工具诊断和第二阶段,不能只贴 2SLS 主结果。
  • 如果 IV 结果和 OLS 差异很大,要解释 LATE、样本和工具变量来源。

返回教程库 · 查看共用案例