我想出了答案.请参阅我在下面发布的答案.
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):
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:
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):
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,即减少:
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。
发布于 2020-08-05 07:39:51
刚刚检查了R文档--,如果指定了一个卡尺,则随机选择处理单元的卡尺内的一个控制单元作为该处理单元的匹配。解释了这一切,它随机选择匹配的控制单元。
当我设定卡尺= 0.0000001时,平衡得到了改善。因此,对我的数据集来说,卡尺= 0.2太大了。
https://stackoverflow.com/questions/63251458
复制相似问题