首页 > 解决方案 > Sekhon 从 R 中的 Matching 包中获取匹配的数据集

问题描述

我使用了 Sekhon 的匹配包,我的问题是获取匹配的数据集。该文档没有解释如何进行倾向得分匹配,它只解释了我没有使用的 genMatch。

标签: rstandardseffectsconfidence-interval

解决方案


如果您在没有替换的情况下完成了匹配(即,replace = FALSE)并且没有关系(即,ties = FALSE),这很简单。如果dat是您的数据集并且M是调用的输出Match(),您可以运行

matched <- dat[c(M$index.treated, M$index.control),]

并且匹配的数据集将存储在 object 中matched。您可以通过运行恢复配对成员身份

matched$pair <- factor(rep(M$index.treated, 2))

当与替换或关系匹配时,它会变得更加复杂,因为某些单元与另一组中的多个单元匹配。您可以使用相同的代码来提取匹配的单位,但单位会出现多次,因此需要加权。权重存在于 中M$weights,并且每一对都有一个,因此需要重复权重(即weights <- rep(M$weights, 2))以获得新数据集中每个单元的权重。

如果你只是想获得匹配数据集的匹配权重,不管如何匹配,丢弃对成员资格,你可以使用包get.w()中的函数cobalt,它提取权重,原始数据集中的每个单元一个,如下:

 weights <- get.w(M)

length(weights)应该相等nrow(dat)


推荐阅读