我找到了答案。。。请参阅我在下面发布的答案
A(我对卡尺的作用的了解(如果错误,请更正(:
当使用R的matchit软件包进行匹配时,添加卡尺(例如卡尺=0.2(意味着只有在控制组点和治疗组点彼此相距0.2标准差(在这种情况下为倾向得分(以内的情况下,才匹配它们。因此,0.2 s.d内没有对照组点的治疗组点将不匹配,因此被丢弃。这被认为是为了改善平衡(减少偏差(,因为只有当它们"是"时,它才能产生匹配的控制和治疗;类似的";彼此之间已经足够了。
B(我的主要问题:
因此,通过重新采样(替换为TRUE(和使用最近邻方法,这难道不意味着包括卡尺只能通过减少匹配的治疗组的数量来改变匹配,并可能减少用于匹配的对照组点的数量吗?
I.e 0.2 sd内有对照组点的治疗组点将以与没有卡尺相同的方式匹配(假设种子是恒定的(,即与最近的邻居匹配。治疗组积分——0.2 sd内没有对照组积分的将被丢弃。
在下面的例子中,事实并非如此,所以我很困惑。如果能对我对卡钳的理解做出任何解释/更正,我们将不胜感激!
C(我上面问题的例子:
在以下示例中(代码取自https://sejdemyr.github.io/r-tutorials/statistics/tutorial8.html),我使用卡尺和不使用卡尺进行PSM,两次我的所有治疗组积分都匹配(1352(。所以我认为这意味着卡尺没有效果(因为它没有阻止任何治疗组的积分匹配(,因此匹配的对照组积分应该是相同的。
但事实并非如此。在没有卡尺的情况下,对照组的点数匹配=1164,有了卡尺,它增加到1185,因此改变了我对治疗效果的估计。这似乎也让平衡变得更糟(如图所示,链接附后(。有人能向我解释一下这是怎么发生的吗?
在没有卡尺的情况下,我得到了以下结果(匹配对照=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]https://i.stack.imgur.com/pyU6s.png
使用卡尺,我得到以下结果(匹配对照=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
刚刚检查了R文档---如果指定了卡尺随机选择用于治疗单元的卡尺内的单元作为该治疗单元的匹配所以这说明了一切,它随机选择匹配的控制单元。
当我将卡尺设置为0.0000001时,平衡性得到了改善。因此,卡尺=0.2对我的数据集来说太大了。