在匹配前绘制倾向得分的密度函数

时间:2018-03-12 12:22:40

标签: r nearest-neighbor kernel-density

我正在运行dif-in-dif估算并使用MatchIt包来匹配我的治疗组和控制组与特定位置的距离(最近邻匹配,logit模型,卡尺= 0.25)。

实际匹配的一切都还可以,但是我在一篇论文中遇到了这种情节:

Density functions before and after

我有点困惑,怎么可能在匹配之前绘制倾向得分,因为匹配本身会给出倾向得分?因此,如果有人熟悉这种情节,我会很感激帮助。这是我到目前为止的代码,它仅在匹配治疗(近)和控制后给出密度函数。

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]))

1 个答案:

答案 0 :(得分:0)

匹配不会给出倾向得分。首先估算倾向得分,然后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")

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