微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Matchit R - 如何运行 1 CONTROL: 2 TREATED 单位的比例?

如何解决Matchit R - 如何运行 1 CONTROL: 2 TREATED 单位的比例?

Matchit R - 如何运行比例为 1 CONTROL: 2 TREATED 单位? (40 个治疗对象的 20 个对照) 比率 = 对于允许它的方法,在 k:1 匹配中,每个处理单元应该匹配多少控制单元。 0.5 是不可能的 我该如何申请?

解决方法

我认为这是不可能的,因为它没有意义。您的问题意味着处理过的单位可以配对,但这以处理过的单位彼此匹配的先前步骤为前提,这不是 MatchIt 旨在做的事情的一部分(并且从无论如何都是实验设计的观点)。

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

,

这实际上是一个比看起来更难的问题。绝对没有办法用最近邻匹配来做到这一点。理论上,优化匹配应该是可能的,例如,直接使用 method = "full"optmatch 包。不幸的是,在我的实验中,我无法让 optmatch 做你想做的事。理想情况下,您应该能够运行

fullmatch(.,min.controls = 1/2,max.controls = 1/2,mean.controls = 1/2)

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

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

m <- matchit(A ~ X1 + X2,dataa = data,method = "cardinality",estimand = "ATC",ratio = 2,tols = .01)

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

summary(m,un = FALSE)

这将生成余额和剩余样本大小的摘要。如果不是所有处理过的单位都匹配,则继续增加 tols,直到匹配为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。