我是R的新手,Im使用Matchit通过倾向得分来匹配患者。我的数据集包括两组患者,他们是否接受药物有所不同。除了倾向得分匹配之外,我还想精确匹配年龄,性别和家庭习惯,因为治疗的决定确实会因这些特征而异。
我的问题是我想按年龄±2岁进行精确匹配,因为我想通过增加精确匹配的灵活性(而不是使用)来增加数据集中可以匹配的治疗患者的数量任意分界线,例如带有分类年龄变量的分界线)。
下面的代码效果很好
match.1 <- matchit(exposed ~ imd2010_5 + hyp + mhealth + mm_score + GP_consult + smoke + no_pres3m + lterm_pres + pres_rate,
data=dataset_pscore2,
distance=dataset_pscore2$pscores,
method="nearest",
exact=c("gender", "pracid", "age_cat"),
discard="both",
caliper=0.25,
ratio=2)
Id就像要将确切的代码更改为类似的
exact=c("gender", "pracid", "age" *with a caliper*),
这可能吗?
答案 0 :(得分:0)
据我所知,倾向得分匹配(PSM)通常使用LOGIT回归来找到估计的倾向得分,以此避免维数诅咒。因此,进行精确匹配在PSM设置中某些协变量听起来不太可能。
我建议运行两个匹配过程:第一个对您希望精确匹配的协变量进行精确匹配。然后,在其他协变量的新匹配样本上运行PSM。
例如:
match.1 <- matchit(exposed ~ gender + pracid + age_cat,
data=dataset_pscore2,
method="exact")
matched_sample <- match.data(match.1) # Get Propensity Scores for 'matched_sample'
match.2 <- matchit(exposed ~ imd2010_5 + hyp + mhealth + mm_score + GP_consult + smoke + no_pres3m + lterm_pres + pres_rate,
data=matched_sample,
distance=matched_sample2$pscores,
method="nearest",
discard="both",
caliper=0.25,
ratio=2)