我正在使用R中的Brilliant sensemakr包(Cinelli,C.,&Ferwerda,J.,&黑兹尔利特,C.(2020年)."sensemakr:R和Stata中OLS的敏感性分析工具.")对一系列模型进行敏感性分析.我有两个型号,如下所示:

library(fixest)
library(sensemakr)

model1 <- lm(data = mtcars, mpg ~ vs + cyl + qsec + factor(hp))

model2 <- feols(data = mtcars, fml = mpg ~ vs + cyl + qsec | hp)

一个模型使用基本的lm回归,另一个模型使用fixest来有效地计算多个固定效应.

sensemakr(model = model1,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)

sensemakr(model = model2,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)

第一个sensemaker函数运行良好,但第二个函数失败,并出现以下错误:

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

这个错误我很清楚,所以如果fixest个对象无法使用,我可以理解.然而,我发现的包文档表明它可以与最修复的对象(例如herehere)一起使用.

sensemakr可以用于feols个型号吗?这种能力是否被削弱了?或者是否必须以某种方式修改这些函数才能使fixest对象与它一起工作?我需要更改sensemakr函数的参数吗?

推荐答案

处理feols模型似乎是作者正在实现的一项新功能(不在CRAN"v0.1.4"版本中).我try 安装"开发版本",但在运行您的示例时遇到了错误,所以我Forking 了github repo并进行了小更改(您可以在https://github.com/jpmam1/sensemakr处看到更改).如果您安装此版本,该软件包似乎可以按照预期/预期处理feols模型:

# install.packages("fixest")
library(fixest)
devtools::install_github("jpmam1/sensemakr")
#> Downloading GitHub repo jpmam1/sensemakr@HEAD
#> ── R CMD build ─────────────────────────────────────────────────────────────────
#> * checking for file ‘/private/var/folders/gf/3p_ynkts411bs238rtw3y0b40000gn/T/RtmpsM5Zl2/remotes53d5525b31/jpmam1-sensemakr-47f9fe5/DESCRIPTION’ ... OK
#> * preparing ‘sensemakr’:
#> * checking DESCRIPTION meta-information ... OK
#> * checking for LF line-endings in source and make files and shell scripts
#> * checking for empty or unneeded directories
#> * building ‘sensemakr_0.1.5.tar.gz’
library(sensemakr)
#> See details in:
#> Carlos Cinelli and Chad Hazlett (2020). Making Sense of Sensitivity: Extending Omitted Variable Bias. Journal of the Royal Statistical Society, Series B (Statistical Methodology).


model1 <- lm(data = mtcars, mpg ~ vs + cyl + qsec + factor(hp))

model2 <- feols(data = mtcars, fml = mpg ~ vs + cyl + qsec | hp)

sensemakr(model = model1,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)
#> Sensitivity Analysis to Unobserved Confounding
#> 
#> Model Formula: mpg ~ vs + cyl + qsec + factor(hp)
#> 
#> Null hypothesis: q = 1 and reduce = TRUE 
#> 
#> Unadjusted Estimates of ' vs ':
#>   Coef. estimate: -1.86687 
#>   Standard Error: 4.7876 
#>   t-value: -0.38994 
#> 
#> Sensitivity Statistics:
#>   Partial R2 of treatment with outcome: 0.02126 
#>   Robustness Value, q = 1 : 0.13692 
#>   Robustness Value, q = 1 alpha = 0.05 : 0 
#> 
#> For more information, check summary.

sensemakr(model = model2,
          treatment = "vs",
          benchmark = "cyl",
          kd = 0.5)
#> Note for fixest: using 'iid' standard errors. Support for robust standard errors coming soon.
#> Sensitivity Analysis to Unobserved Confounding
#> 
#> Model Formula: mpg ~ vs + cyl + qsec | hp
#> 
#> Null hypothesis: q = 1 and reduce = TRUE 
#> 
#> Unadjusted Estimates of ' vs ':
#>   Coef. estimate: -1.86687 
#>   Standard Error: 4.7876 
#>   t-value: -0.38994 
#> 
#> Sensitivity Statistics:
#>   Partial R2 of treatment with outcome: 0.02126 
#>   Robustness Value, q = 1 : 0.13692 
#>   Robustness Value, q = 1 alpha = 0.05 : 0 
#> 
#> For more information, check summary.

创建于2024年4月22日,共有reprex v2.1.0

注释"对稳健标准错误的支持即将推出."表明作者仍在努力解决这一问题;大概对feols模型的支持将包含在下一个CRAN版本中.

R相关问答推荐

如何替换R中数据集列中的各种字符串

计算R中的威布尔分布的EDF

gt()从gt为相同内容的单元格 colored颜色 不同?

将非重复序列高效转换为长格式

R-更新面内部的栅格值

在R函数中使用加号

根据纬度和距离连接两个数据集

从R中发出的咕噜声中的BUG?

将全局环境变量的名称分配给列表中的所有元素

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

如何提取R中其他字符串和数字之间的字符串?

`-`是否也用于数据帧,有时使用引用调用?

如果条件匹配,则使用Mariate粘贴列名

需要一个函数来在第一行创建一个新变量,然后用新变量替换一个不同的变量(对于多行)

抽样变换-REXP与RWEIBUR

如何获取R chromote中的当前URL?

了解nchar在列表上的意外行为

R dplyr::带有名称注入(LHS of:=)的函数,稍后在:=的RHS上引用

根据向量对列表元素进行排序

删除r中每个因素级别的最后2行