我正在运行dif-in-dif估算并使用MatchIt包来匹配我的治疗组和控制组与特定位置的距离(最近邻匹配,logit模型,卡尺= 0.25)。
实际匹配的一切都还可以,但是我在一篇论文中遇到了这种情节:
我有点困惑,怎么可能在匹配之前绘制倾向得分,因为匹配本身会给出倾向得分?因此,如果有人熟悉这种情节,我会很感激帮助。这是我到目前为止的代码,它仅在匹配治疗(近)和控制后给出密度函数。
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]))
答案 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")
将在一行简单的代码中生成相同的密度图。