面板 IV (xtivreg)是什么?
面板 IV 回答的是在控制个体固定效应后,如何用工具变量处理随时间变化的内生解释变量。它同时面对面板遗漏因素和工具变量识别两个问题。
先用一句话理解
把 xtivreg 想成先把每个企业天生不变的部分拿掉,再用外生工具变量解释核心变量的变化。它不是普通 FE,也不是普通 IV,而是 FE + IV 的组合。
什么时候用
| 判断项 | 教科书式判断 |
|---|---|
| 适合用在 | 面板数据中核心解释变量随时间变化且可能内生,同时有随时间变化的工具变量。 |
| 先不要用在 | 工具变量没有组内变化,或被固定效应吸收后没有解释力。 |
| 最关键的前提 | 工具变量在固定效应口径下仍满足相关性和外生性。 |
| 读表顺序 | 先看 FE 口径,再看第一阶段、弱 IV 和二阶段系数。 |
| 论文表述边界 | 面板 IV 的效应来自工具变量诱导的组内变化,不能写成普通 OLS 关系。 |
把它和相近方法分清楚
| 容易混淆的对象 | 怎么区分 | 初学者记法 |
|---|---|---|
| 固定效应 | 控制个体不变遗漏因素。 | 不能处理时变内生性。 |
| 横截面 IV | 用工具变量处理内生性。 | 不一定控制个体固定效应。 |
| 面板 IV | 在固定效应下使用工具变量。 | 同时处理两类风险。 |
核心直觉和模型公式
固定效应下的两阶段
面板 IV 可以写成:
\[X_{it}=\pi Z_{it}+\boldsymbol{\delta}'\mathbf{W}_{it}+\mu_i+\lambda_t+v_{it}\]
\[Y_{it}=\beta\widehat{X}_{it}+\boldsymbol{\gamma}'\mathbf{W}_{it}+\mu_i+\lambda_t+\varepsilon_{it}\]
Z 必须在吸收固定效应后仍能解释 X 的变化。
公式里的符号怎么读
| 符号 | 含义 | 在本页怎么理解 |
|---|---|---|
| X_it | 内生解释变量 | 需要工具变量处理的核心变量。 |
| Z_it | 工具变量 | 在面板固定效应口径下提供外生变化。 |
| mu_i | 个体固定效应 | 控制不随时间变化的个体差异。 |
| lambda_t | 时间固定效应 | 控制共同时间冲击。 |
| X_hat | 第一阶段预测值 | 由工具变量解释出的 X 的外生部分。 |
专业使用口径
专业 xtivreg 报告要把固定效应、工具变量和第一阶段同时讲清。
| 口径 | 专业写法 |
|---|---|
| 组内变化 | 说明工具变量是否有足够 within variation。 |
| 第一阶段 | 报告固定效应口径下的相关性。 |
| 弱 IV | 补充弱工具诊断或 Anderson-Rubin。 |
| 聚类标准误 | 面板 IV 通常需要按个体聚类。 |
一步一步做:从问题到结果的五步
| 步骤 | 这一页具体做什么 | 做到什么程度才算读懂 |
|---|---|---|
| 1. 明确内生变量 | 说明 X 为什么在面板中仍可能内生。 | FE 不能解决所有时变内生性。 |
| 2. 选择工具变量 | Z 要有组内变化和外生来源。 | 时不变 Z 会被 FE 吸收。 |
| 3. 估计第一阶段 | 在同样 FE 下检验 Z→X。 | 第一阶段必须同口径。 |
| 4. 估计二阶段 | 用 X_hat 进入结果方程。 | 读 β 时要结合 IV 解释范围。 |
| 5. 做诊断 | 弱 IV、过识别、聚类和稳健性。 | 只报 xtivreg 输出不够。 |
结果怎么读:先读口径,再读数字
本页案例读表时,先记住这个口径:一阶段工具变量 = L.dfi_index;教学案例用滞后 DFI 演示 IV 流程;正式论文需要外生来源。
| 读表顺序 | 本页怎么读 | 不要这样读 |
|---|---|---|
| 先看 FE 设定 | 个体和时间固定效应是否进入。 | FE 口径决定估计来源。 |
| 再看第一阶段 | Z 在组内是否解释 X。 | 被 FE 吸收后无效的 Z 不可用。 |
| 然后看二阶段 | β 的方向和量级。 | 它是 IV 局部效应。 |
| 最后看诊断 | 弱 IV 和过识别是否支持。 | 诊断不过要降级表述。 |
初学者最容易错在哪里
| 误读 | 为什么错 |
|---|---|
| 时不变工具变量硬放 FE IV | 错。会被个体 FE 吸收。 |
| 只看二阶段星号 | 错。第一阶段和弱 IV 更关键。 |
| FE 后仍写成横截面 IV | 错。估计来自组内变化。 |
| 不聚类标准误 | 风险高。面板误差通常组内相关。 |
先看这个案例的结论
- 一阶段工具变量 = L.dfi_index;教学案例用滞后 DFI 演示 IV 流程;正式论文需要外生来源。
- 一阶段 F = 2.0575;弱工具变量诊断的核心指标。
- 2SLS 系数 = -0.0237;第二阶段使用预测 DFI。
- 这些数字来自页面里的结果表;写论文时先解释数值含义,再讨论理论含义。
变量要求和案例口径
| 字段 | 口径 |
|---|---|
| 数据 | 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 |
| 输出文件 | xtivreg_results.csv |
| 角色要求 | 因变量、核心解释变量、个体 ID、时间变量 |
| 依赖包 | 无额外 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
xtivreg $y $controls i.year ($x = L.$x), fe vce(cluster firm_id)
export delimited using "$JOB_DIR/xtivreg_results.csv", replace
实际输出表
这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。
| 指标 | 数值 | 解释 |
|---|---|---|
| 样本 | 1200 obs / 196 firms / 2015-2020 | 来自共用案例 CSV |
| 因变量 | ln(1 + patent_count) | 企业创新产出 |
| 核心解释变量 | dfi_index | 数字普惠金融指数 |
| 输出文件 | xtivreg_results.csv | empirical-wizard 对应方法产物 |
| 一阶段工具变量 | L.dfi_index | 教学案例用滞后 DFI 演示 IV 流程;正式论文需要外生来源 |
| 一阶段 F | 2.0575 | 弱工具变量诊断的核心指标 |
| 2SLS 系数 | -0.0237 | 第二阶段使用预测 DFI |
| 2SLS p 值 | 0.2853 | 与 OLS/FE 方向对照,不单独当成识别证明 |
案例图
这是一张由同一份案例数据生成的页面内诊断图。

论文里怎么写
为缓解模型设定或内生性担忧,本文补充报告面板 IV (xtivreg)。相关估计输出见 xtivreg_results.csv。该检验不替代研究设计本身,但可以说明核心结论在替代识别、标准误或稳健性口径下是否保持一致。
检查清单
- 先确认内生变量、工具变量和固定效应结构都定义清楚。
- 报告第一阶段、弱工具诊断和面板固定效应口径。
- 如果工具变量随时间变化很少,固定效应可能吃掉识别来源。