【问题标题】:Reducing "treatment" sample size through MatchIt (or another package) to increase sample similarity通过 MatchIt(或其他软件包)减少“处理”样本量以增加样本相似性
【发布时间】:2019-11-10 15:01:25
【问题描述】:

我正在尝试使用 MatchIt 在多个协变量上匹配两个样本,但我很难创建足够相似的样本。我的两个样本都很大(对照组约 1000 个,对照组约 5000 个)。

我希望获得与参与者尽可能匹配的匹配样本,并且我可以在对照组中丢失样本量。目前,MatchIt 只返回两组 1000,而我想要两组非常匹配的组,并且可以使用较小的组(例如,500 而不是 1000)。

有没有办法通过 MatchIt 或其他包来做到这一点?我宁愿避免使用随机抽样,然后尽可能匹配,因为我希望组之间尽可能接近匹配。

抱歉没有可重现的示例,我对使用 R 还是很陌生,不知道如何制作这个问题的示例...

下面是我用来匹配这两个组的代码。

data<- na.omit(data)
data$Group<- as.numeric(data$Group)
data$Group<- recode(data$Group, '1 = 1; 2 = 0')

m.out <- matchit(Group ~ Age + YearsEdu + Income + Gender, data = data, ratio = 1)
s.out <- summary(m.out, standardize = TRUE)
plot(s.out)

matched.data <- match.data(m.out)

【问题讨论】:

  • 您可以添加您尝试过的代码吗?它将帮助其他人查看您的问题。
  • 我添加了我的代码,抱歉有点乱

标签: r propensity-score-matching


【解决方案1】:

您应该查看包designmatch,它实现了一种称为基数匹配的匹配形式,可以满足您的需求(即,找到产生所需平衡的最大匹配集)。与MatchIt 不同,designmatch 不使用距离变量;相反,它使用优化来解决匹配问题。您可以准确选择每个协变量的平衡程度,它会尽最大努力解决问题,同时保留尽可能多的匹配项。该方法在Zubizarreta, Paredes, & Rosenbaum (2014) 中进行了描述。

【讨论】:

    【解决方案2】:

    MatchIt 与其他类似的软件包一样,提供了几个匹配例程,使您能够玩弄设置。查看参数method,默认设置为method = 'nearest'。这意味着除非您指定,否则它将为每个治疗观察结果寻找最佳匹配。在您的情况下,您将始终有 1000 个配对匹配此设置。

    您可以选择将其设置为method = 'exact',它的限制要大得多。在文档中你会发现:

    这种技术将每个处理过的单元与所有 可能的控制单元在所有协变量上具有完全相同的值,形成子类 这样在每个子类中,所有单位(治疗和对照)都具有相同的协变量值。

    在 lalonde 数据集上,你可以运行:

    m.out <- matchit(treat ~ educ + black + hispan, data = lalonde, method = 'exact')
    summary(m.out)
    

    因此,它会丢弃一些无法匹配的治疗观察结果。看看method 的其他可能性,也许你会找到更喜欢的东西。

    话虽如此,请注意不要丢弃过多的治疗观察结果。如果这样做,您会使治疗组看起来像对照组(而不是相反),这可能会导致不想要的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      相关资源
      最近更新 更多