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
fe固定效应first把第一阶段系数表打印出来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
三、还是显示“.”的急救措施
去掉 singleton 面板
egen n = count(y), by(id)
drop if n < 2
检查共线
_rmcoll z controls, forcedrop
用 reghdfe等价跑 IV
reghdfe y (x = z), absorb(id) vce(cluster id) first
reghdfe 对“缺观测”更宽容,F 值通常能正常显示。
一句话
xtivreg 本身不给出第一阶段 F 是“功能缺失”而非报错;装 xtivreg2 加 , fe first ffirst 即可立即看到 F 值与 Stock-Yogo 临界值,弱工具问题一次解决。


雷达卡


京公网安备 11010802022788号







