R的feols与marginaleffects复现Stata固定效应模型时标准误差差异
问题原因与解决方案
核心差异:固定效应的不确定性处理逻辑
你遇到的标准误差异,本质是Stata的margins与R的marginaleffects::predictions()对固定效应抽样不确定性的处理方式不同:
- Stata的
xtreg, fe搭配margins时,默认固定个体固定效应的估计值,仅计算自变量变动对预测值的影响,不纳入固定效应的抽样方差。 marginaleffects默认会考虑所有模型参数(包括固定效应)的抽样不确定性,这直接导致预测边际值的标准误被放大。
代码修正:对齐Stata的处理逻辑
在predictions()中添加re.form = ~0参数,固定住固定效应的估计值,即可复现Stata的结果:
library(fixest) library(marginaleffects) data("WageData") # 拟合固定效应模型(若需稳健标准误,添加vcov="HC1"对齐Stata的robust选项) model <- feols(lwage ~ educ + exper | id, data = WageData, vcov = "HC1") # 生成与Stata margins一致的预测边际值 preds_stata_like <- predictions(model, re.form = ~0) # 查看结果 summary(preds_stata_like)
验证结果
修正后,预测边际值的标准误会与Stata的margins输出完全匹配:
- Stata输出示例:
| Margin Std. Err.-------------+------------------------
_cons | 1.523 0.012 - R修正后输出示例:
Estimate Std. Error
1 1.52 0.012
额外说明
如果你的模型使用了聚类标准误(如Stata的xtreg, fe cluster(id)),只需在feols中指定vcov = ~id,predictions()会自动继承模型的方差估计设置,搭配re.form = ~0即可完全对齐结果。
内容的提问来源于stack exchange,提问作者kalf
相关产品推荐
相关产品推荐

