前置条件与学习依赖 / PREREQUISITES
① 数学 / 统计基础
面板数据固定效应、内生性与工具变量(先学 05 IV/2SLS)、广义矩估计 GMM 的矩条件与 Hansen J 检验思想。
② 经济学理论前置
动态经济行为的理论基础:投资的加速数模型(capital adjustment)、消费的持久收入假说、企业融资约束(FHP 1988 投资-现金流敏感性)。
③ 软件 / 计算前置
Stata 17+(外部命令:xtabond2estabond2estout)。Python linearmodels 包也支持 panel.GMM
④ 站内前置页面
04 基准回归(固定效应)+ 05 内生性与 IV(2SLS、过度识别)。
⑤ 难度分级
| 矩条件多、诊断检验多,初学者极易误读 AR(2) / Hansen 结果。

01 动态面板与 Nickell 偏误

当经济行为存在"惯性"或"调整成本"时,因变量的滞后项自然出现在回归右边:

Eq. 1.1 — 动态面板模型
$$ y_{it} = \rho\, y_{i,t-1} + \mathbf{x}_{it}'\boldsymbol{\beta} + \mu_i + \varepsilon_{it}, \quad |\rho| < 1 $$

其中 $\mu_i$ 是不可观测的个体固定效应。问题来了:$y_{i,t-1}$ 与 $\mu_i$ 机械相关——$y_{i,t-1}$ 包含 $\mu_i$,所以即使 $\varepsilon_{it}$ 完全独立同分布,混合 OLS 或固定效应 OLS 对 $\rho$ 的估计都是不一致的。这就是 Nickell 偏误(Nickell bias, 1981)。偏误方向在短面板($T$ 小、$N$ 大)尤其严重:FE 估计量把 $\rho$ 往负方向拉。

什么时候需要动态面板 GMM?

只要模型里出现 $y_{i,t-1}$ 且 $T$ 不大(典型企业面板 $T=10$–$20$、$N=1000$–$10000$),就必须用 GMM。如果 $T$ 很大($T>30$),Nickell 偏误可以忽略,FE OLS 就够了。典型应用:投资-现金流敏感性(Fazzari-Hubbard-Petersen 1988)、研发平滑、资本结构动态调整、货币政策反应函数。

02 差分 GMM:Arellano-Bond (1991)

Arellano-Bond (1991) 的思路:先对模型一阶差分,消掉固定效应 $\mu_i$

Eq. 2.1 — 差分后模型
$$ \Delta y_{it} = \rho\, \Delta y_{i,t-1} + \Delta \mathbf{x}_{it}'\boldsymbol{\beta} + \Delta \varepsilon_{it} $$

差分后,$\Delta y_{i,t-1} = y_{i,t-1} - y_{i,t-2}$ 与 $\Delta \varepsilon_{it} = \varepsilon_{it} - \varepsilon_{i,t-1}$ 中的 $\varepsilon_{i,t-1}$ 机械相关。但如果 $\varepsilon_{it}$ 本身不存在序列相关,那么 $y_{i,t-2}, y_{i,t-3}, \dots$ 都是 $\Delta y_{i,t-1}$ 的有效工具变量——它们与 $\Delta y_{i,t-1}$ 相关(通过 $y_{i,t-2}$),但与 $\Delta \varepsilon_{it}$ 不相关。这就是差分 GMM 的矩条件:

Eq. 2.2 — 差分 GMM 的矩条件
$$ E\big[ y_{i,t-s} \cdot \Delta \varepsilon_{it} \big] = 0, \quad t = 3,\dots,T,\ s \ge 2 $$

每个时期 $t$ 都有一批工具变量($y_{i,t-2}, y_{i,t-3}, \dots$),所以差分 GMM 的工具变量个数随 $T$ 二次增长。

03 系统 GMM:Blundell-Bond (1998)

差分 GMM 有一个致命弱点:当 $\rho$ 接近 1(序列很持久)时,$y_{i,t-2}$ 对 $\Delta y_{i,t-1}$ 的工具变量强度很弱——工具变量弱,估计就偏向 OLS 那边。Blundell-Bond (1998) 系统 GMM 在差分方程之外,再增加一组水平方程的矩条件:

Eq. 3.1 — 系统 GMM 新增的水平矩条件
$$ E\big[ \Delta y_{i,t-1} \cdot (\mu_i + \varepsilon_{it}) \big] = 0 $$

这要求 $\Delta y_{i,t-1}$ 与固定效应 $\mu_i$ 不相关——在 $y_{it}$ 初始条件稳定(stationarity)假设下成立。系统 GMM 同时利用差分和水平两个方程,工具变量强度比差分 GMM 强很多。

差分 GMM vs 系统 GMM 怎么选?

实务默认用系统 GMM。只有当 $y_{it}$ 明显非平稳(如 GDP、人口)或水平矩条件被审稿人质疑时,才退回差分 GMM。判断标准:如果差分 GMM 估计的 $\hat{\rho}$ 明显低于固定效应估计值(甚至为负),说明工具变量太弱,应该用系统 GMM。

04 三大诊断检验:AR / Hansen / 工具变量个数

动态面板 GMM 的输出表里,最关键的三件事:

检验原假设 H0期望结果坏结果说明
AR(1)差分残差无一阶自相关通常 p<0.05(拒绝)——这是正常的,因为 $\Delta\varepsilon$ 机械 MA(1)AR(1) 不显著反而奇怪
AR(2)差分残差无二阶自相关p > 0.10(不拒绝)——说明原始 $\varepsilon_{it}$ 无自相关,工具变量有效AR(2) 显著 → 矩条件失效,需额外滞后工具
Hansen J所有工具变量外生(过度识别约束成立)p > 0.10(不拒绝)Hansen 显著 → 工具变量有内生,模型设定错
Diff-in-Hansen系统 GMM 水平矩条件有效p > 0.10显著 → 系统 GMM 不该用,退回差分 GMM
工具变量数 / N工具数应 < N(个体数)工具数 > N → Hansen 检验功效丧失,p 自动虚高
⚠ Roodman (2009) 警告:工具变量太多是 GMM 的头号坑

动态面板 GMM 的工具变量个数随 $T$ 二次增长。$T=15$、$N=500$ 时,不加限制地用所有滞后项会产生 100+ 个工具——过度识别约束检验(Hansen)会变得几乎必然接受(p≈1.0),完全失去诊断能力。规范做法:
gmmstyle(lag limits) 限制滞后阶数(如最多用 $t-2$ 到 $t-4$,而不是 $t-2$ 到 $t-T$);
② 用 collapse 把同一变量不同滞后合并成一个工具;
③ 报告工具变量总数,并保证 工具数 < N

05 完整 Stata 代码(xtabond2)

下面这段代码完整演示:(1) 模拟企业动态面板数据(投资依赖滞后投资、现金流、Q);(2) 混合 OLS / FE / 差分 GMM / 系统 GMM 四种估计量对比;(3) AR / Hansen 诊断。

stata · dynamic_panel_gmm.do
* ============================================================
* 动态面板 GMM 完整演示
* 场景:企业投资 I/K 依赖滞后 I/K、现金流 CF/K、Tobin's Q
* 数据:N=500 企业 × T=15 年
* ============================================================
clear all
set seed 20240102
set obs 7500
gen firm = ceil(_n/15)
bysort firm: gen year = 2000 + _n

* --- 1. 模拟动态面板 ---
* 个体固定效应 mu_i
gen mu_i = rnormal(0, 0.5) in 1/500
bysort firm: replace mu_i = mu_i[1]

* 严格外生变量:CF/K, Q
gen cf = rnormal(0.1, 0.05)
gen q  = rnormal(1.5, 0.5)

* 动态因变量:I/K 依赖滞后 I/K(rho=0.6)+ CF + Q + mu_i + eps
gen ik = .
replace ik = 0.1 + mu_i in 1/7500
forvalues t = 2/15 {
    bysort firm: replace ik = 0.1 + 0.6*ik[_n-1] + 0.3*cf + 0.05*q + mu_i + rnormal(0,0.1) ///
        if year == 2000 + `t'
}
* 第一期
bysort firm: replace ik = 0.1 + mu_i + rnormal(0,0.1) if year==2000

xtset firm year

* --- 2. 四种估计量对比 ---
* (a) 混合 OLS(上偏)
reg L.ik cf q, robust
est store OLS

* (b) 固定效应(下偏,Nickell bias)
xtreg ik L.ik cf q i.year, fe robust
est store FE

* (c) 差分 GMM(Arellano-Bond 1991)
* ssc install xtabond2, replace
xtabond2 ik L.ik cf q i.year, ///
    gmm(L.ik, lag(2 4))        ///  工具:L.ik 的 t-2 到 t-4 滞后
    iv(cf q i.year)            ///  严格外生变量作 IV
    twostep small robust       ///  两步法 + Windmeijer 修正
    noleveleq                  ///  差分 GMM(不加水平方程)
est store DIFFGMM
estat abond                     ///  AR(1) / AR(2) 检验
estat sargan                    ///  Sargan 检验(同方差下有效)

* (d) 系统 GMM(Blundell-Bond 1998)
xtabond2 ik L.ik cf q i.year, ///
    gmm(L.ik, lag(2 4))        ///
    iv(cf q i.year)            ///
    twostep small robust       ///
    h(2)                       ///  水平方程用 lag(2) 起
est store SYSGMM
estat abond

* --- 3. 报告工具变量个数 ---
* 查看 xtabond2 输出底部:
*   Number of instruments = ??
*   AR(1) p = 0.000  (应显著)
*   AR(2) p = 0.2??  (应 > 0.10)
*   Hansen p = 0.???  (应 > 0.10)
*   工具数应 < N=500

* --- 4. 汇总对比 ---
esttab OLS FE DIFFGMM SYSGMM, ///
    b(%9.3f) se(%9.3f) star(* 0.10 ** 0.05 *** 0.01) ///
    mtitles("Pooled OLS" "FE" "Diff GMM" "Sys GMM") ///
    stats(N N_g inst ar2p hansenp, fmt(0 0 0 3 3)) ///
    title("动态面板四种估计量对比")
xtabond2 关键选项速查
  • gmm(varname, lag(#1 #2)):把 varname 当作内生变量,用其 $t-#1$ 到 $t-#2$ 滞后作为 GMM 型工具。lag(2 .) 表示从 $t-2$ 到最早可用期。
  • iv(varlist):把这些变量当作严格外生,直接作为工具。
  • twostep:两步 GMM(更有效率,但标准误需 Windmeijer 修正)。
  • robust:Windmeijer (2005) 修正标准误(必须配 twostep)。
  • collapse:把同一变量不同滞后合并成一列工具,大幅减少工具数。
  • noleveleq:只跑差分 GMM;不加则默认系统 GMM。

06 论文案例与常见错误

论文案例

English · RES
Some Tests of Specification for Panel Data: Monte Carlo Evidence and an Application to Employment Equations
Manuel Arellano & Stephen Bond · Review of Economic Studies, 1991, 58(2): 277–297
差分 GMM 的开山之作。提出用滞后项作为工具变量的矩条件,并用 AR(1)/AR(2) 序列相关检验诊断工具有效性。经典应用:英国企业雇佣方程。本页 s2 的方法学依据。
English · JoE
Initial Conditions and Moment Restrictions in Dynamic Panel Data Models
Richard Blundell & Stephen Bond · Journal of Econometrics, 1998, 87(1): 115–143
系统 GMM 的原始论文。证明当序列接近单位根时差分 GMM 工具变量极弱,引入水平方程矩条件后估计量大大改善。本页 s3 的方法学依据。
English · Stata Journal
How to Do Xtabond2: An Introduction to Difference and System GMM in Stata
David Roodman · Stata Journal, 2009, 9(1): 86–136
xtabond2 命令的官方教程。系统讲解工具变量过多问题、collapse 选项、AR/Hansen 诊断、以及差分 vs 系统 GMM 的选择。中文论文写作 GMM 部分的最佳参考。
English · NBER
Finance Constraints and Corporate Investment (Fazzari-Hubbard-Petersen 1988 经典应用)
Steven Fazzari, R. Glenn Hubbard & Bruce Petersen · Brookings Papers on Economic Activity, 1988
投资-现金流敏感性与融资约束的经典文献。后续几乎所有企业融资约束研究都用动态面板 GMM 估计投资方程,检验现金流系数在融资约束组与非约束组之间的差异。
中文 · 《经济研究》/《管理世界》
中国上市公司投资-现金流敏感性 / 研发平滑 / 资本结构动态调整
连玉君、苏治、丁志国 (2008)《统计研究》;曾爱民、魏志华 (2013)《财经研究》;《经济研究》《管理世界》2010–2020 多篇企业金融文章
中文顶刊中 GMM 的标准用法:因变量为投资率 / R&D 强度 / 资产负债率,滞后项 + 解释变量 + 年度固定效应,系统 GMM 估计,报告 AR(2) p>0.10、Hansen p>0.10、工具数 < N。这是中文实证企业金融的"标配输出表"。

常见错误

错误 1:工具变量数 > N 还报告 Hansen p≈1.0

不加 lag(2 4)collapse 限制,工具数轻易突破 200,Hansen p 永远 = 1.0——这不是"工具有效",而是 Hansen 检验被工具过多废掉了。规范做法:限制工具数到 N 的一半以下,并在表里报告工具数。

错误 2:把 AR(1) p>0.10 当成"好"

差分残差的 AR(1) 是机械存在的(MA(1) 结构),AR(1) 显著才是正常的。真正要看的是 AR(2):AR(2) p>0.10 才说明原始误差无序列相关。初学者常把 AR(1) 不显著当成模型设定正确,方向完全反了。

错误 3:Hansen 显著但不报告原因

Hansen p<0.05 说明工具变量中有内生——可能是把内生变量当成外生了(如把企业规模当成严格外生,但它与投资同时决定)。规范做法:把可疑变量移到 gmmstyle() 而非 iv(),让它用自己的滞后作工具。

错误 4:差分 GMM 估计的 ρ 接近 0 甚至为负,还硬跑差分 GMM

如果 FE 估出 ρ=0.8,差分 GMM 估出 ρ=0.2,说明差分工具太弱(Blundell-Bond 1998 的典型弱工具症状)。此时必须用系统 GMM,或报告"差分 GMM 工具弱、系统 GMM 结果为准"。

错误 5:小样本下用两步 GMM 不做 Windmeijer 修正

两步 GMM 的标准误在小样本下严重偏小。必须加 twostep robust(= Windmeijer 2005 修正)。不加修正,t 值会虚高,显著性全是假的。

进阶资料

  • Roodman (2009 Stata Journal) —— 入门 GMM 的最佳中文翻译版教程,必读。
  • Bond (2002) —— "Dynamic panel data models: a guide to researchers",区分 OLS/FE/Diff-GMM/Sys-GMM 边界的经典讲义。
  • Windmeijer (2005 JoE) —— 两步 GMM 标准误修正的原始论文。