【问题标题】:Plotting density function of propensity score before matching在匹配前绘制倾向得分的密度函数
【发布时间】:2018-08-20 11:15:03
【问题描述】:

我正在运行 dif-in-dif 估计并使用 MatchIt 包根据我的治疗组和对照组到某个位置的距离(最近邻匹配、logit 模型、caliper = 0.25)来匹配我的治疗组和对照组。

实际匹配一切正常,但是我在阅读的一篇论文中遇到了这种情节:

我有点困惑,既然匹配本身给出了倾向得分,怎么可能在匹配之前绘制倾向得分?因此,如果有人熟悉这种绘图,我将不胜感激。到目前为止,这是我的代码,它只给出了匹配处理(Near)和控制后的密度函数。

m.df <- matchit(Near ~ Distance_to_center, data = df, method = "nearest", distance = "logit", caliper =0.25)
mdf <- match.data(m.df,distance = "pscore")

df <- mdf

plot(density(df$pscore[df$Near==1]))
plot(density(df$pscore[df$Near==0]))

【问题讨论】:

    标签: r nearest-neighbor kernel-density


    【解决方案1】:

    匹配不给出倾向得分。首先估计倾向得分,然后matchit() 匹配倾向得分上的单位。

    您可以从matchit 对象中提取整个样本的倾向得分。当您使用match.data() 时,您所做的是仅提取匹配数据的倾向得分。整个样本的倾向得分存储在m.df$distance 中。因此,要手动生成这些图,您可以使用:

    plot(density(m.df$distance[df$Near==1]))
    plot(density(m.df$distance[df$Near==0]))
    

    在使用match.data()之前。

    您还可以使用cobalt 包自动生成这些图:

    bal.plot(m.df, var.name = "distance", which = "both")
    

    将在一行简单的代码中生成相同的密度图。

    【讨论】:

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