3:1用R中的MatchIt匹配,匹配到的控件数不等于3倍的例数

3:1 matching with MatchIt in R. The number of matched control is not equal to 3 times the number of cases

你好,我在 R

中使用 MatchIt

我总共有 116 个不匹配的治疗病例和 462 个不匹配的未治疗病例

使用命令

mod_match_logit = matchit(f.build("treatement_yes_or_no", covariates), 
method = "nearest", distance = "logit", data = df, caliper = 0.05, ratio = 3)

然后我得到了 91 个匹配的治疗病例和 248 个匹配的未治疗病例的结果。我不明白的是,通过 3:1 匹配,我应该有 91*3 = 273 个匹配的未治疗病例(而不是 248 个)。默认情况下,命令 replaceMatchIt 中设置为 F,因此它无法为我解释差异。我错过了什么?

在没有看到数据的情况下,我只是猜测,但这很可能是由于您的卡尺设置所致。

Match将卡尺定义为"the number of standard deviations of the distance measure within which to draw control units (default = 0, no caliper matching)"(p.26)

因此,我的猜测是您在治疗组中有一些单位具有高倾向得分,无法与未治疗组中的单位匹配(至少在您指定的 0.05 个标准偏差内)。您没有在匹配数据集中获得 273 个主题的原因是因为您的 MatchIt 调用中的 caliper = 0.05 设置。一些倾向得分较高但仍与至少一个未治疗的受试者匹配的受试者无法与第二个或第三个受试者匹配,因为它们超出了 0.05 卡尺规格。 也许增加卡尺会保留更多治疗对象,但根据文献中记录的最佳实践,我不会超过 0.25。

根据您的研究设计,您可以考虑使用其他匹配方法。例如,您可以使用除欧几里得之外的距离,例如马哈拉诺比斯,这是 MatchIt 中的一个选项。或者,您也可以使用 'optmatch' 库中的最佳完全匹配或最佳配对匹配,但您也可以通过 MatchIt 函数调用它们。还有许多其他方法,但可以从 MatchIt 库中轻松访问这些方法。文献确实建议尝试几种不同的方法,然后检查平衡,只要您不 "cherry-pick" 给您带来最大效果的方法。换句话说 select 您的匹配集基于协变量平衡,而不是您研究中的结果变量。倾向得分匹配绝对是一门艺术,但这就是我认为它如此有趣的原因!