Matchit R-如何运行1个控制:2个处理单元的比例?(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
是您的治疗变量,而X1
和X2
是您试图匹配的变量,则可以运行以下代码:
m <- matchit(A ~ X1 + X2, dataa = data, method = "cardinality",
estimand = "ATC", ratio = 2, tols = .01)
如果解决方案是可能的,它就会产生。如果没有,你将不得不放松公差(即增加tols
(,直到它是。你可以运行
summary(m, un = FALSE)
这将产生余额和剩余样本量的汇总。如果不是所有治疗单位都匹配,那么继续增加tols
,直到匹配为止。