fixest对象中2SLS回归第一阶段F统计量的存储位置咨询
从fixest的2SLS回归对象中直接提取第一阶段F统计量
问题描述
运行以下2SLS回归代码后,无法从回归对象twosls中直接找到第一阶段F统计量(原本以为会存在于twosls$iv_first_stage),虽然可以通过summary(twosls)或fitstat(twosls, ~ivf)查看,但希望直接从对象中提取该统计量:
library(fixest) twosls <- feols(Sepal.Length ~ Petal.Length | Species ~ Petal.Width, data = iris) summary(twosls) fitstat(twosls, ~ivf)
summary()输出示例:
...
F-test (1st stage), Speciesversicolor: stat = 13.4, p = 3.545e-4, on 1 and 147 DoF.
F-test (1st stage), Speciesvirginica : stat = 28.3, p = 3.735e-7, on 1 and 147 DoF.
...
fitstat()输出示例:
F-test (1st stage), Speciesversicolor: stat = 13.4, p = 3.545e-4, on 1 and 147 DoF.
F-test (1st stage), Speciesvirginica : stat = 28.3, p = 3.735e-7, on 1 and 147 DoF.
解决方法
方法1:直接从fitstat()返回值提取
fitstat(twosls, ~ivf)会返回一个包含第一阶段F统计量的数据框,可直接提取统计量、p值等信息:
# 获取第一阶段F统计量的数据框 iv_fit_stats <- fitstat(twosls, ~ivf) # 提取统计量数值 iv_fit_stats$stat # 提取对应的p值 iv_fit_stats$p
方法2:从第一阶段回归对象计算
2SLS的第一阶段回归模型实际存储在twosls$iv_first_stage列表中(每个元素对应一个内生变量的第一阶段回归),可遍历列表对每个模型单独计算F统计量:
# 遍历第一阶段回归模型,提取F统计量 sapply(twosls$iv_first_stage, function(model) fitstat(model, ~fstat)$stat)
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

