2

我是 R 新手,我使用 matchit 通过倾向得分来匹配患者。我的数据集包括两组患者,它们的不同之处在于他们是否接受了药物。除了倾向得分匹配外,我还想精确匹配年龄、性别和家庭实践,因为治疗决定确实因这些特征而异。

我的问题是我想精确匹配年龄± 2 岁,因为我想通过增加精确匹配的灵活性(而不是使用任意切割)来增加可以在我的数据集中匹配的治疗患者的数量-off,例如使用分类年龄变量)。

下面的代码运行良好

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)

我只是想将确切的代码更改为类似

exact=c("gender", "pracid", "age" *with a caliper*),

这可能吗?

4

2 回答 2

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)

我还建议阅读MatchIt包文档。还有另一个很棒的包,叫做cem

于 2019-08-08T14:16:39.847 回答
0

您现在可以(从matchIt4.0.0 版开始)为 caliper 参数提供特定的协变量,以在另一种匹配方法的上下文中直接请求它们上的卡尺。例如,这应该如下所示:

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"), 
                    discard="both", 
                    caliper=c(0.25, age = 2),
                    std.caliper = c(TRUE, FALSE),
                    ratio=2)

关键线是caliper=c(0.25, age = 2)std.caliper = c(TRUE, FALSE)。这caliper条线表示我们想要距离度量(即倾向得分)为 0.25 的卡尺,而 . 的卡尺为 2 age。该std.caliper行表示我们希望第一个卡尺采用标准偏差单位,第二个卡尺采用原始单位。这样,您的单位必须在倾向得分的 0.25 标准差范围内并且在 2 岁以内才能相互匹配。help("method_nearest", package = "MatchIt")有关详细信息和示例,请参阅文档。

于 2021-10-29T20:55:47.953 回答