我使用以下代码来匹配不同患者的2个队列(2800个对照,460个治疗):
set.seed(99)
m.out <- matchit(treatment ~ gender + age + VarC + diseaseDuration +
pastActivity + activity + country, data = Pat.match,
method = "nearest", ratio = 5, discard = "control",
caliper = 0.1, m.order = "smallest")
匹配后,队列减少到约1230个对照组,而400个对照组。 当我改变种子时,这些数字是相似的。然而,如果我更准确地检查(患者ID),则不同种子的总群组在约20%的患者中不同。更确切地说: set.seed(99)产生一个群组,与所得到的set.seed群组(27)的重叠率仅为80%。 这可能会对进一步的一般模型和统计分析产生巨大影响。我监督了什么吗? 问候!
答案 0 :(得分:0)
所以计算方面就是matchit可能正在做一些随机的事情,即使你没有例如指定m.order="random"
。可能是什么,通过查看源代码可能最容易找到...
统计方面实际上是交叉验证的,不是在这里,但我建议:
答案 1 :(得分:0)
有时,当单位具有相同或非常相似的倾向得分时会发生这种情况;我相信MatchIt通过随机选择的匹配来解决这个问题。我实际上不同意@ dash2你不应该改变种子直到得到你喜欢的结果。您应该根据需要多次执行匹配过程,直到达到协变量平衡。如果您的数据是平衡的并且所有处理过的单位都被保留(或者在匹配的规格中至少保留相同的数据),那么您的效果估计将不会与您的匹配集系统地发生变化。请记住,一旦你估计了你的治疗效果,你就不能回头重做你的匹配结果(这可能是@ dash2所得到的)。但在匹配阶段,这不是一个问题。