library(MatchIt)
df <- data.frame(lalonde)
m.out1 <- matchit(treat ~ age + race + educ, data = lalonde,
method = "exact")
m.data1<-match.data(m.out1)
我想知道在使用MatchIt软件包运行精确匹配后,如何获得相同大小的对照和治疗样本。理想情况下,如果一个治疗单位与多个对照匹配,我想随机选择一个对照。我的真实的数据集不是lalonde。它实际上是一个非常大的数据集。因此,我可能有许多与治疗单位相关的控件,我想为每个治疗单位随机绘制一个控件。
2条答案
按热度按时间vhmi4jdf1#
为了精确匹配,您可以使用此代码。
如果您重新运行代码,您将看到ID略有变化,如果数据集更大,它们可能会做得更清楚。
要修复控制单元的随机性,您可以使用
set.seed()
。要确定性地处理关系,请使用ties=FALSE
(参见?Match
帮助页)。z9smfwbn2#
最简单的方法是使用精确匹配约束进行1:1最近邻匹配:
如果你正在进行粗化的精确匹配,有一个内置的选项可以通过设置
k2k = TRUE
来请求:设置
cutpoints = 0
请求精确匹配(无粗化)。