问题描述
我有一个数据集,我正在对其进行匹配,该数据集是具有重叠成员资格的重复横截面:
成员ID | 治疗 | 学习月 | 年龄 | 性别 | 风险评分 | 慢性阻塞性肺病 | 瑞士法郎 | 糖尿病 | ComplexProviderFLG |
---|---|---|---|---|---|---|---|---|---|
123 | 1 | 1 | 54 | M | 1.45 | 0 | 1 | 1 | 0 |
201 | 0 | 1 | 55 | M | 1.54 | 0 | 1 | 1 | 0 |
205 | 0 | 1 | 85 | M | .8 | 1 | 0 | 0 | 0 |
155 | 1 | 2 | 56 | M | 1.58 | 0 | 1 | 1 | 0 |
201 | 0 | 2 | 55 | M | 1.54 | 0 | 1 | 1 | 0 |
208 | 0 | 2 | 58 | M | 1.68 | 0 | 0 | 1 | 0 |
请注意会员 201 在第一个月和第二个月的横截面。因此,当我在一个 StudyMonth 上匹配时,我需要从未来横截面的潜在匹配池中删除与该横截面匹配的个体。在上面的玩具示例中,尽管 201 是第 1 个月的 123 和第 155第 2 个月,我不想他两次进入控制池。
执行 for 循环并重新运行匹配非常简单,消除先前选择的个体,然后将每个循环的结果绑定到一个最终的处理/对照组中,如下所示:
for (MatchMonth in 0:11){
WorkingMatchedCohort <- matchit(Treatment ~ Age + Sex + Riskscore +
CHF + copD + Diabetes + Depression + ComplexProviderFLG,data= filter(WorkingSet,(Treatment==0 | Treatment==1) & StudyMonth==MatchMonth))
if(exists("unionedmatches")) {
unionedmatches<-bind_rows(unionedmatches,match.data(WorkingMatchedCohort))
}else{
unionedmatches<-match.data(WorkingMatchedCohort)
}
##Flag members so that they're not reused
WorkingSet$Treatment[WorkingSet$Treatment==0 & WorkingSet$MemberID %in% unionedmatches$MemberID] <-2
}
这给了我使用 unionedmatches
在 match.data
tibble 中的组合结果。但是我将如何组合实际的 MatchIt 对象 WorkingMatchedCohort
以便我可以使用内置的 MatchIt 工具来绘制拟合优度?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)