如何在 R 中匹配 test/control

How to match test/control in R

我是匹配新手 test/control。我看到在 R 中,我们可以使用 MatchingMatchIt 来 select 匹配。两种创建匹配的方式有什么区别?你能为他们每个人提供例子吗?

谢谢!

MatchItMatching 在执行匹配以减少观察性研究中的混杂方面存在许多差异。最重要的是每个包背后的哲学:MatchIt 认为匹配是一种非参数预处理形式,如 Ho et al. (2007), while Matching consider matching to be a specific estimator of a difference in means, as described in Abadie and Imbens (2006) 中所述。这种区别体现在 Matching 提供匹配后的效果估计,而 MatchIt 只提供匹配的数据集,可以提供给模型来估计治疗效果。

这两个包之间还有许多其他差异。 MatchIt 提供了多种匹配方法的接口,包括最近邻匹配、最优对匹配、最优完全匹配、(粗化)精确匹配、遗传匹配、倾​​向得分子分类和基数匹配,其中一些依赖于在其他包上(包括 Matching!)。 Matching只进行最近邻匹配和基因匹配

两个包中基因匹配的实现大致相同,因为 MatchIt 调用 Matching 中的函数来执行基因匹配。默认情况下,MatchIt 对协变量和倾向得分执行遗传匹配,而在 Matching 中,必须手动估计倾向得分并将其与协变量一起添加。还有一些其他的细微差异,通常不太相关。

最近邻匹配的实现是两个包最大的不同之处,尽管在大多数情况下可以将一个包的结果复制到另一个包。主要区别在于默认值;两个包之间的大多数功能是相同的。一个区别是 Matching 可以执行有关系的最近邻匹配,而 MatchIt 不允许有关系。对于大量连续的协变量,关系很少发生。以下是包之间的一些差异:

  • MatchIt中默认是最近邻匹配,不在倾向得分上进行替换; Matching 中的默认值是带替换的最近邻匹配,并与缩放的欧几里得距离相关
  • Matching中,匹配出现的顺序是数据的顺序;在MatchIt中,用户可以select匹配顺序(默认为倾向得分降序)
  • Matching中,替换匹配时可以选择ATE作为估计量;在MatchIt中,只有ATT和ATC可用
  • Matching 使用非常快的 C 代码来执行匹配; MatchIt 使用不太优化的 Rcpp 代码
  • Matching 允许您自定义用于加权每个协变量在匹配中的重要性的矩阵; MatchIt 允许您自己提供自定义距离矩阵

选项还有其他一些细微差别,但其他最大的差别在于界面。我发现 MatchIt 非常容易使用,特别是对于初学者来说,因为界面类似于其他 R 函数的界面,例如 lm(),而 Matching 需要更多的手动编程和 R 知识有效地使用所有选项。 MatchIt 的文档也明显更详细和广泛(注意是我写的),这可以让初学者更容易。 MatchIt 还提供了更多可视化平衡的工具。

你应该使用哪个?我说 MatchIt 如果你是初学者或想要很多选择,我说 Matching 如果你是一个想要使用特定估计器的计量经济学家 Matching 工具。在我看来,MatchIt 的界面和使用一整套匹配方法的能力,以及针对初学者的大量文档,使 MatchIt 成为初学者更好的选择。