如何在 R 中匹配 test/control
How to match test/control in R
我是匹配新手 test/control。我看到在 R 中,我们可以使用 Matching 或 MatchIt 来 select 匹配。两种创建匹配的方式有什么区别?你能为他们每个人提供例子吗?
谢谢!
MatchIt
和 Matching
在执行匹配以减少观察性研究中的混杂方面存在许多差异。最重要的是每个包背后的哲学: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
成为初学者更好的选择。
我是匹配新手 test/control。我看到在 R 中,我们可以使用 Matching 或 MatchIt 来 select 匹配。两种创建匹配的方式有什么区别?你能为他们每个人提供例子吗?
谢谢!
MatchIt
和 Matching
在执行匹配以减少观察性研究中的混杂方面存在许多差异。最重要的是每个包背后的哲学: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
成为初学者更好的选择。