首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matchit R-如何运行1个对照:2个处理单元的比率?

Matchit R-如何运行1个对照:2个处理单元的比率?
EN

Stack Overflow用户
提问于 2021-06-06 03:28:12
回答 2查看 65关注 0票数 0

Matchit R-如何运行1个对照:2个处理单元的比率?( 40个处理对象的20个对照) ratio =对于允许它的方法,在k:1匹配中,每个处理单元应该匹配多少个控制单元。0.5是不可能的,我怎么才能应用它?

EN

回答 2

Stack Overflow用户

发布于 2021-06-06 04:21:42

我认为这是不可能的,因为它没有意义。你的问题暗示了被处理的单元可以配对,但前提是之前的步骤中被处理的单元彼此匹配,这不是MatchIt设计的一部分(从实验设计的角度来看,也没有真正的意义)。

或者,或者你有两对完全匹配的处理案例,在这种情况下,试图同时使用它们并不能真正获得任何分析优势。如果是这样的话,我会将配对减少到单个观察值,并进行1:1匹配。

票数 0
EN

Stack Overflow用户

发布于 2021-06-09 09:44:27

这实际上是一个比看起来难得多的问题。使用最近邻匹配肯定无法做到这一点。理论上,使用最优匹配应该是可能的,例如,直接使用method = "full"optmatch包。不幸的是,在我的实验中,我无法让optmatch执行您想要的操作。理想情况下,您应该能够运行

代码语言:javascript
代码运行次数:0
运行
复制
fullmatch(., min.controls = 1/2, max.controls = 1/2, mean.controls = 1/2)

但这实际上并没有产生预期的结果。也许你可以联系opmatch的作者解决这个问题,因为这是一个有趣的问题,他们的包应该能够解决这个问题。

您还可以使用另一种称为基数匹配的方法,该方法将在下一版本的MatchIt中实现,但可以在使用devtools::install_github("ngreifer/MatchIt")的开发版本中进行访问。基数匹配使用优化来选择满足用户设置的样本大小约束和平衡约束的单元子集。在这种情况下,采样大小约束是处理单元的数量是控制单元数量的两倍。您需要设置平衡约束,这是处理组和对照组之间允许的最大不平衡(以标准化的平均差异单位表示)。如果A是您的处理变量,而X1X2是您尝试匹配的变量,则可以运行以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
m <- matchit(A ~ X1 + X2, dataa = data, method = "cardinality", 
             estimand = "ATC", ratio = 2, tols = .01)

如果一个解决方案是可能的,它将被产生。如果不是,您将不得不放宽容差(即,增加tols),直到它是。你可以去跑步

代码语言:javascript
代码运行次数:0
运行
复制
summary(m, un = FALSE)

这将产生余额和剩余样本大小的汇总。如果不是所有的处理单元都匹配,则继续增加tols,直到它们匹配为止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67853246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档