【问题标题】:Outcome analysis after performing matching using cardmatch in R在 R 中使用 cardmatch 执行匹配后的结果分析
【发布时间】:2020-02-25 06:18:31
【问题描述】:

使用下面这个包进行匹配后:

https://rdrr.io/cran/designmatch/man/cardmatch.html

我如何获得回归风格的输出格式,而不是简单地计算均值的差异?

在上面链接中卡片匹配代码的最后一步之后:

# The mean difference in outcomes is the same...
mean(re78[t_id_1]-re78[c_id_1])
mean(re78[t_id_2]-re78[c_id_2])

# ... but their standard deviation is reduced
sd(re78[t_id_1]-re78[c_id_1])
sd(re78[t_id_2]-re78[c_id_2])

我对这样的事情感兴趣,而不是简单地获得手段上的差异。

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   2.3483     0.1007  18.681  < 2e-16 ***
treated      -7.4793     0.8387  -6.459 4.87e-10 ***

如何从 cardmatch 包步骤形成数据框,然后使用 glm 或 svyglm 执行结果分析?

【问题讨论】:

    标签: r cardinality propensity-score-matching


    【解决方案1】:

    如果您不想保留对成员资格,只需使用返回的 t_idc_id 输出的 cardmatch 组件子集您的数据集。例如,如果输出对象名为 cm 而您的数据集名为 data,则运行以下命令将创建一个仅包含匹配单元的数据集:

    data_matched <- data[c(cm$t_id, cm$c_id),]
    

    如果您关心配对成员并希望创建一个表示每个单元的配对 ID 的变量,您可以使用以下代码(假设不存在 data 的行名或仅索引该行的数字):

    pair_df <- data.frame(pair = factor(c(seq_along(cm$t_id), 
                                          seq_along(cm$c_id))), 
                          row.names = c(cm$t_id, cm$c_id))
    data_matched <- merge(data, pair_df, by = 0, all.x = TRUE, sort = FALSE)[-1]
    

    对于新的pair 变量,任何不匹配的单位都将具有NA(或者您可以设置all.x = FALSE 以仅保留匹配的单位)。您可以使用lme4 包中的glmer()pair 变量用作混合效应模型中的随机效应(相当于配对t 检验),或者在使用@ 的标准回归模型中的集群稳健标准误差中使用987654335@ 说明分析中的配对。您可以添加协变量以提高精度并减少剩余偏差。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2020-04-17
      • 1970-01-01
      相关资源
      最近更新 更多