xtivreg的f值缺失
xtivreg
不报告第一阶段的 F 值(或只给“.”)是因为:
- 它默认只做第二步(IV-GLS),第一阶段只用一个 quietly 的
reg
把残差存下来,不计算弱工具统计量; - 你用的是单内生变量 + 单工具变量(恰好识别),系统没有多余工具,也就无法给出 Stock-Yogo 表里的 F 临界值提示;
- 如果样本里某个 panel 出现“singleton”或“perfect collinearity”,第一阶段自由度 ≤ 0,Stata 直接跳过统计量,结果窗口就显示“.”。
一、30 秒自查清单
xtset id year
xtsum x z // 看 z 的 within-SD 是否 > 0
xtreg x z controls, fe // 先跑朴素 FE,看 F 是否出现
- 若这里 F 已经“.” → 数据侧问题(within 无变异、singleton、共线)。
- 若这里 F 正常 → 换用
xtivreg2
即可得到全套第一阶段统计量。
二、一步到位拿到 F 值
ssc install xtivreg2, replace
xtivreg2 y controls (x = z), fe first ffirst
ffirst
额外报告“First-stage F, Shea’s partial R², Stock-Yogo critical values”
输出示例:
First-stage F test = 18.37
Shea’s partial R² = 0.0821
F > 10 即通过弱工具检验;若 F < 10,考虑追加工具或改用 LIML:
xtivreg2 y controls (x = z1 z2), fe liml
三、还是显示“.”的急救措施
egen n = count(y), by(id)
drop if n < 2
_rmcoll z controls, forcedrop
reghdfe y (x = z), absorb(id) vce(cluster id) first
reghdfe
对“缺观测”更宽容,F 值通常能正常显示。
一句话
xtivreg
本身不给出第一阶段 F 是“功能缺失”而非报错;装 xtivreg2
加 , fe first ffirst
即可立即看到 F 值与 Stock-Yogo 临界值,弱工具问题一次解决。