首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PSM (R's Matchit包)中使用卡尺改变了匹配,使平衡变得更糟,即使匹配治疗的次数保持不变?

在PSM (R's Matchit包)中使用卡尺改变了匹配,使平衡变得更糟,即使匹配治疗的次数保持不变?
EN

Stack Overflow用户
提问于 2020-08-04 16:45:11
回答 1查看 2.4K关注 0票数 1

我想出了答案.请参阅我在下面发布的答案.

A)我知道卡尺是做什么的(如果错了请改正):

在使用R的matchit软件包进行匹配时,添加一个卡尺(例如卡尺= 0.2),意味着只匹配一个控制组点和一个治疗组点,如果它们在0.2标准差内(在本例中为倾向分数)彼此相距。因此,治疗组在0.2S.D内不加对照组点将不匹配,从而被丢弃。这应该是为了改善平衡(减少偏见),因为它产生匹配的控制和治疗,只有当它们“相似”足够彼此。

B)我的主要问题:

因此,对于重采样(替换=真),使用最近邻方法,这难道不意味着包含一个卡尺只能通过减少匹配的治疗组的数量以及用于匹配的控制组点数的数量来改变匹配吗?

也就是说,治疗组与对照组在0.2SD内的点将匹配的方式与没有卡尺(假设种子是恒定的),通过匹配它的近邻。治疗组在0.2SD内无对照组点者将被丢弃。

在下面的例子中,情况不是这样的,所以我很困惑。如对我对卡尺的理解有任何解释或更正,将不胜感激!

C)我上面问题的例子:

在下面的示例(从https://sejdemyr.github.io/r-tutorials/statistics/tutorial8.html获取的代码)中,我使用一个卡尺和没有卡尺运行PSM,这两次我的治疗组点数都匹配(1352)。因此,我认为这意味着卡尺没有效果(因为它没有阻止任何治疗组的点数被匹配),因此对照组的匹配点应该是相同的。

但事实并非如此。如果没有卡尺,对照组点数匹配= 1164,加上卡尺,增加到1185,因此改变了我对治疗效果的估计。它似乎也使平衡变得更糟(从图片上看,链接附在一起)。有人能给我解释一下为什么会发生这种事吗?

没有卡尺,我得到了以下结果(Matched = 1164,匹配处理1352):

代码语言:javascript
复制
Call: 
matchit(formula = catholic ~ race_white + w3income + p5hmage + 
    p5numpla + w3momed_hsb, data = ecls_nomiss, method = "nearest", 
    distance = "logit", replace = TRUE)

Sample sizes:
          Control Treated
All          7915    1352
Matched      1164    1352
Unmatched    6751       0
Discarded       0       0

治疗效果(作为天主教徒),使用线性回归= -0.176:

代码语言:javascript
复制
Call:
lm(formula = c5r2mtsc_std ~ catholic, data = dta_m)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4783 -0.5803  0.0647  0.5997  3.0473 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.38637    0.02677  14.432  < 2e-16 ***
catholic    -0.17670    0.03652  -4.838 1.39e-06 ***

平衡(通过比较每个协方差的控制和治疗倾向得分),似乎是非常匹配的:1

具有一个卡尺,我得到了以下结果(Matched = 1185,匹配处理1352):

代码语言:javascript
复制
Call: 
matchit(formula = catholic ~ race_white + w3income + p5hmage + 
    p5numpla + w3momed_hsb, data = ecls_nomiss, method = "nearest", 
    distance = "logit", replace = TRUE, caliper = 0.2)

Sample sizes:
          Control Treated
All          7915    1352
Matched      1185    1352
Unmatched    6730       0
Discarded       0       0

治疗效果估计= -0.1151,即减少:

代码语言:javascript
复制
Call:
lm(formula = c5r2mtsc_std ~ catholic, data = dta_m)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4167 -0.5649  0.0608  0.5947  3.1089 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.32477    0.02635  12.326  < 2e-16 ***
catholic    -0.11510    0.03609  -3.189  0.00144 ** 

平衡(通过比较每个协方差的控制和治疗倾向得分),似乎已经变得更糟,而控制和治疗之间的匹配也变得更糟: 2:https://i.stack.imgur.com/Z9uLK.png

EN

回答 1

Stack Overflow用户

发布于 2020-08-05 07:39:51

刚刚检查了R文档--,如果指定了一个卡尺,则随机选择处理单元的卡尺内的一个控制单元作为该处理单元的匹配。解释了这一切,它随机选择匹配的控制单元。

当我设定卡尺= 0.0000001时,平衡得到了改善。因此,对我的数据集来说,卡尺= 0.2太大了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63251458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档