微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 R 中的 Matchit 以 1:5 的比例仅获取完全匹配的案例

如何解决使用 R 中的 Matchit 以 1:5 的比例仅获取完全匹配的案例

我以 1:5 的比例匹配了我的两个组,并注意到我的两个结果组没有 1:5 的比例,类似于这里发布的这个问题:

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

我进行过这样的比赛:

    match_out <- matchit(as.formula(paste0("treat~",covar)),data = data,replace = FALSE,caliper = .2,ratio = 5,method = "nearest") 

我的输出是这样的:

> match_out 

Call: 
matchit(formula = as.formula(paste0("treat~",method = "nearest",caliper = 0.2,ratio = 5)

Sample sizes:
          Control Treated
All          7594      13
Matched        42      10
Unmatched    7552       3
discarded       0       0


> match_out$match.matrix
     1      2      3      4      5     
14   "3891" NA     NA     NA     NA    
300  "5160" "2282" "2634" "6349" NA    
578  "5343" "5486" "4433" "2026" "249" 
997  "1121" "3928" "6464" "5015" "1863"
1534 NA     NA     NA     NA     NA    
1787 "7517" "7053" "5187" "4157" "919" 
4016 "525"  "5514" NA     NA     NA    
4082 "5548" "2951" "7282" "3378" "2642"
4894 "1009" "6386" "946"  "1819" "1727"
5812 NA     NA     NA     NA     NA    
5954 "7298" "6898" "1503" "7004" "7110"
6825 NA     NA     NA     NA     NA    
7389 "4286" "3044" "985"  "1471" "3591"

我的理解是正确的,我的输出现在包含了至少一个匹配发生的所有情况。

现在我想知道,是否有一种(简单的)方法来获得每 1 个治疗具有 5 个完全匹配的控制(在我的情况下为 7 个)。

解决方法

要限制为恰好有 5 个匹配项的单位,您只需在 na.omit() 输出上运行 match.matrix。这将生成一个矩阵,其中仅包含所有 5 个匹配项的处理单元和控制单元。从那里您可以对 match.data() 输出进行子集化以获得您需要的输出,例如,

m_data <- match.data(match_out,data = data)

mm <- na.omit(match_out$match.matrix)

m_data <- m_data[rownames(m_data) %in% rownames(mm) |
                   rownames(m_data) %in% mm,]

然后您可以在 m_data 中运行您的效果估计。请注意,您提出的建议不是一个好主意;你不必要地丢弃了没有明显好处的单位。

,

只是回答我自己的问题:似乎您可以通过在函数中添加:method = "optimal" 来强制进行完整的 1:5 匹配。 在此处阅读更多信息:https://cran.r-project.org/web/packages/MatchIt/vignettes/matching-methods.html#optimal-pair-matching-method-optimal

然而,这会降低匹配的成功率。有人知道从原始输出中只选择那些 1:5 案例的方法吗?

编辑:正如诺亚所指出的,可以强制进行 1:5 匹配,但这将忽略卡尺。请参阅此处的文档:https://rdrr.io/cran/MatchIt/man/method_optimal.html 我认为它有点隐藏,但你可以在标题“参数”下看到它说:“参数替换、卡尺和 m.order 被忽略并警告。”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。