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

如何在R中使用sensemakr处理fixest包的feols模型?

sensemakr包能否兼容fixest::feols模型?

我正在使用sensemakr包(Cinelli, C., & Ferwerda, J., & Hazlett, C. (2020). “sensemakr: Sensitivity Analysis Tools for OLS in R and Stata.”)对模型做敏感性分析,构建了两个回归模型:

library(fixest)
library(sensemakr)

# 基础线性回归模型
model1 <- lm(data = mtcars, mpg ~ vs + cyl + qsec + factor(hp))

# 含固定效应的feols模型
model2 <- feols(data = mtcars, fml = mpg ~ vs + cyl + qsec | hp)

随后调用sensemakr函数进行敏感性分析:

# lm模型调用成功
sensemakr(model = model1,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)

# feols模型触发错误
sensemakr(model = model2,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)

针对model2的调用出现如下错误:

Error in UseMethod("sensemakr") : 
  no applicable method for 'sensemakr' applied to an object of class "fixest"

我理解该错误源于当前环境中没有针对fixest类对象的sensemakr方法,但查阅官方文档显示该包支持fixest对象。现咨询:

  • sensemakr是否确实支持feols模型?
  • 该兼容性功能是否已被弃用?
  • 是否需要修改代码或调整参数才能实现兼容?

问题解答

  1. sensemakr对feols模型的支持情况
    sensemakr包确实支持fixest::feols模型,但这一支持依赖于包的版本兼容性。早期版本的sensemakr可能未添加fixest适配方法,或者新版本fixest修改了对象结构,导致原有方法无法识别。

  2. 兼容性未被弃用
    目前官方文档仍明确标注支持fixest对象,说明该功能并未被弃用,问题大概率是版本不匹配或环境配置异常导致方法未加载。

  3. 可行的解决方案

  • 更新至最新版本:确保sensemakr和fixest都是当前最新版本,运行以下命令更新后重启R会话:
    install.packages(c("sensemakr", "fixest"))
    
  • 检查支持方法:使用methods("sensemakr")命令查看当前sensemakr支持的对象类,如果未显示fixest相关条目,说明包未正确安装或加载,需重新安装并确认加载成功。
  • 临时转换模型对象(应急方案):如果更新后仍无法解决,可以提取feols模型的核心回归结果,构造sensemakr可识别的等效对象。例如,利用feols模型的拟合值和自变量矩阵构建临时lm对象(注意需保证变量对应关系准确):
    # 提取feols模型的关键信息构造兼容对象
    model2_compat <- lm(mpg ~ vs + cyl + qsec, data = mtcars, weights = model2$weights)
    # 注意:此方法未保留固定效应的调整逻辑,仅为临时替代,如需严格对应需手动处理固定效应残差
    

内容的提问来源于stack exchange,提问作者flâneur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:56:14