【问题标题】:Propensity score matching with multiple imputation多重插补的倾向得分匹配
【发布时间】:2021-04-10 04:15:45
【问题描述】:

我有一个包含几个缺失值的数据集,需要使用变量“y”作为治疗变量,x1、x2 和 x3 作为调整变量来运行倾向得分匹配。 通过在 Matchit 中使用以下代码

ModMatch <- matchit(y ~ x1+x2+x3, method = 'nearest', data = data)

我得到错误'数据中存在缺失值'

因此,我尝试使用鼠标进行多重插补:

ImputedDF <- mice(data)
ModMatch <- matchit(y ~ x1+x2+x3, method = 'nearest', data = ImputedDF)

我收到错误消息“无法将中间类对象强制转换为数据框”。 我可能需要一种打印估算数据框的方法,有人知道这是否可能吗?

【问题讨论】:

    标签: r imputation r-mice propensity-score-matching


    【解决方案1】:

    您应该使用MatchThem 包,该包专为在多重插补后执行匹配而设计。 matchthem() 函数调用matchit() 并在每个估算数据集中执行匹配。然后,您可以使用cobalt 包检查估算数据集中的余额,该包旨在与MatchThem 兼容。之后,您可以使用MatchThem 中的with() 函数来估计效果。以下是此工作流程的示例:

    library(mice); library(MatchThem); library(cobalt)
    
    #Impute the data with 20 imputations (more is better)
    imp <- mice(data, m = 20)
    
    #Perform matching within each imputation
    ModMatch <- matchthem(y ~ x1+x2+x3, method = 'nearest', data = imp)
    
    #Assess balance
    bal.tab(ModMatch, un = TRUE)
    love.plot(Modmatch)
    
    #Estimate the effect
    summary(pool(with(ModMatch, svyglm(outcome ~ y + x1 + X2 + X2))))
    

    我会提醒您,您正在使用未经高级培训的人不应该使用的高级统计技术。使用 miceMatchThem 中的默认值很少是一个好主意。

    关于您收到的错误消息:调用mice() 的输出不是数据框;这是一个mids 对象。 matchit() 中的 data 参数需要一个数据框。 matchthem() 接受 mids 对象以在每个估算数据集中执行匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 2021-11-04
      • 1970-01-01
      相关资源
      最近更新 更多