一句话先给结论:
“加了 year 就不显著”99% 不是模型错了,而是 year 固定效应把核心解释变量的 时间维度变异“洗掉”了。先按下面的思路做 3 分钟诊断,再决定是保留双固、改用单固还是换 GMM。
① 3 分钟诊断流程
操作 | 命令(Stata) | 看什么 | 典型结果与解读 |
(1) 看变异来源 | xtsum x | 组内/组间方差占比 | 若“组间”占比>80%,加 year 后显著性必掉 |
(2) 画时间趋势 | twoway scatter y year, connect(L) | y 与 x 是否同涨同跌 | 若两条线几乎平行 → year 吸收了共同趋势 |
(3) VIF 检查 | estat vif | 最大 VIF | >10 说明 year 与 x 高度共线,需降维 |
② 四条解决路径(按优先级)
方案 | 适用情景 | 代码模板 | 论文写法 |
A. 保留双固,承认经济解释 | 理论上 year 必须控制(如政策冲击逐年不同) | xtreg y x i.year, fe cluster(id) | “表3(2)显示,在控制年度不可观测冲击后,x 系数不再显著,表明该效应主要由跨年度差异驱动。” |
B. 改用 单固(仅个体) | 经济逻辑:时间冲击对 y 影响极小 | xtreg y x, fe cluster(id) | “Hausman 检验支持个体固定效应,而 LR 联合年度系数不显著 (p=0.21),故采用单固模型。” |
C. 年度聚类而非年度虚拟 | 样本年份多,虚拟变量耗自由度 | reghdfe y x, absorb(id) vce(cluster year) | “为节约自由度,采用年度聚类稳健标准误替代年度哑元。” |
D. 动态 GMM | 怀疑 x 滞后项或反向因果 | xtabond2 y L.y x, gmm(L.y) iv(x) two | “Arellano-Bond AR(2) p=0.41,接受无自相关,GMM 结果保持显著。” |
③ 2 行代码快速判断能否删 year
stata
quietly xtreg y x i.year, fe
testparm i.year // joint test year dummies
p>0.1 → year 联合不显著,可删掉转单固。
p<0.1 → 保留 year,接受解释力被稀释的结果。
④ 一句话写进论文
“当双向固定效应模型纳入年度虚拟变量后,核心解释变量的系数不再显著(β=0.03,p=0.21),联合年度系数检验表明年度冲击显著(p<0.01),提示该效应主要由跨年度宏观因素驱动,而非纯粹个体层面机制。”


雷达卡


京公网安备 11010802022788号







