R:使用MatchIt进行倾向得分匹配。如何为不同的协变量指定所需的匹配精度?

时间:2018-05-04 18:40:15

标签: r nearest-neighbor

我对R很新,尤其是倾向得分的匹配方法。我的数据集包括两组不同的人,他们是否受到治疗 - 不幸的是,他们在年龄和疾病持续时间方面也存在显着差异,因此我希望与他们相匹配。

到目前为止,这是我的代码:

set.seed(2208)
mod_match <- matchit(TR ~ age + disease_duration + sex + partner + work + academic,
                     data = Data_nomiss, 
                     method = "nearest",
                     caliper = .025)
summary(mod_match)

此代码工作正常,但我想知道是否有可能加重协变量对匹配准确性的重要性?对我来说,至关重要的是,这些群体尽可能接近年龄和疾病持续时间(数字),而其他变量(因素)也应该匹配,但就我的目的而言,可能与第一个相比有所不同。 2。

在寻找我的问题的解决方案时,我遇到了这个人的要求,他的问题基本相同http://r.789695.n4.nabble.com/matchit-can-I-weight-the-parameters-td4633907.html

在这种情况下,建议组合最近邻和精确匹配,但转移到我的数据集,这会导致我的样本不成比例地减少。最后,我想要的是某种定制的匹配过程,重点关注年龄和疾病持续时间,同时也涉及最后三个变量,但是以较弱的方式。

有没有人碰巧知道如何实现这一目标?我很高兴收到有关此事的任何提示,感谢您的时间!

1 个答案:

答案 0 :(得分:3)

不幸的是,MatchIt不提供此功能。有两种方法可以做到这一点,而不是使用MatchIt,但它们略微提高了。请注意,两者都没有使用倾向得分。倾向得分匹配的点是匹配单个数字,即倾向得分,这使得匹配程序对原始协变量视而不见,需要平衡。

第一种方法是使用包Matching并将自己的权重矩阵包含在Weight.matrix的{​​{1}}中。您可以在体重矩阵中增加年龄和疾病持续时间。

第二种方法是使用包Match()进行基数匹配,这允许您指定平衡约束,并且它将使用优化来查找满足这些约束的最大样本。在designmatch中,在bmatch()参数中输入您感兴趣的协变量,这也允许您为每个变量包含特定的平衡约束。您可以要求对年龄和疾病持续时间进行更严格的平衡限制。

相关问题