You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

feols固定效应回归用delta方法估计最优N速率及标准误

fixest回归对象适配Delta方法的实现方案

问题原因

car包的deltaMethod默认适配R基础回归类(如lm、glm),直接传入feols对象会触发两类报错:

  • 函数内部调用vcov()时传入了fixest不支持的complete参数,触发参数无效警告
  • 函数无法自动识别feols的系数结构:一方面feols控制高维固定效应时会吸收截距项,不会输出截距系数;另一方面feols的系数命名直接沿用自变量名,和默认的b0/b1/b2命名规则不匹配,最终出现找不到对象的报错。

最优实现方案(无需依赖car包)

fixest包本身内置了完全适配feols对象的delta_method()函数,会自动继承回归时指定的异方差稳健标准误,系数直接使用模型中的自变量名引用,无需手动做参数映射,计算效率和feols原生逻辑一致,完全适配大样本、高维固定效应场景。
对应代码如下:

# 直接调用fixest内置delta方法计算最优N投入及标准误
optimal_n_res <- delta_method(
  yield,
  # 直接用模型中的变量名引用对应系数:N是一次项系数,N_square是二次项系数
  "(4 - N)/(2*N_square)"
)

# 输出结果,包含点估计、标准误、z值、p值、95%置信区间
print(optimal_n_res)

兼容car包deltaMethod的实现方案

如果需要使用car包的deltaMethod功能,不要直接传入feols模型对象,手动提取系数向量和方差协方差矩阵传入即可,注意参数名要和feols输出的系数顺序一一对应:

library(car)
# 提取feols回归的非固定效应系数,顺序为N、N_square、P、K、S
est_coef <- coef(yield)
# 提取回归时已计算的异方差稳健方差协方差矩阵
est_vcov <- vcov(yield)

# 手动传入系数和vcov调用deltaMethod
car_res <- deltaMethod(
  est_coef,
  g = "(4 - b1)/(2*b2)",
  vcov. = est_vcov,
  # 按系数顺序命名:共5个非固定效应系数,N对应b1,N_square对应b2
  parameterNames = c("b1", "b2", "b3", "b4", "b5")
)

print(car_res)

注意:之前代码中设置parameterNames= paste("b", 0:2, sep="")本身存在错误,feols输出的系数中不存在被固定效应吸收的截距项b0,且非固定效应系数共5个,仅设置3个参数名会导致位置映射完全错乱。

两种方案得到的最优N投入点估计、标准误结果完全一致,优先使用fixest内置方法,避免额外的参数适配问题。

内容的提问来源于stack exchange,提问作者Erin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:36:19