Matchit R-如何运行1个对照:2个处理单元的比率?( 40个处理对象的20个对照) ratio =对于允许它的方法,在k:1匹配中,每个处理单元应该匹配多少个控制单元。0.5是不可能的,我怎么才能应用它?
发布于 2021-06-06 04:21:42
我认为这是不可能的,因为它没有意义。你的问题暗示了被处理的单元可以配对,但前提是之前的步骤中被处理的单元彼此匹配,这不是MatchIt
设计的一部分(从实验设计的角度来看,也没有真正的意义)。
或者,或者你有两对完全匹配的处理案例,在这种情况下,试图同时使用它们并不能真正获得任何分析优势。如果是这样的话,我会将配对减少到单个观察值,并进行1:1匹配。
发布于 2021-06-09 09:44:27
这实际上是一个比看起来难得多的问题。使用最近邻匹配肯定无法做到这一点。理论上,使用最优匹配应该是可能的,例如,直接使用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
是您的处理变量,而X1
和X2
是您尝试匹配的变量,则可以运行以下代码:
m <- matchit(A ~ X1 + X2, dataa = data, method = "cardinality",
estimand = "ATC", ratio = 2, tols = .01)
如果一个解决方案是可能的,它将被产生。如果不是,您将不得不放宽容差(即,增加tols
),直到它是。你可以去跑步
summary(m, un = FALSE)
这将产生余额和剩余样本大小的汇总。如果不是所有的处理单元都匹配,则继续增加tols
,直到它们匹配为止。
https://stackoverflow.com/questions/67853246
复制相似问题