Использование штангенциркуля в PSM (пакет R's Matchit) изменило согласование и ухудшило баланс, даже если количество согласованных обработок осталось прежним? - PullRequest
0 голосов
/ 04 августа 2020

Я нашел ответ на этот вопрос ... обратитесь к ответу, который я опубликовал ниже.

A) Я знаю, что делает штангенциркуль (пожалуйста, исправьте, если ошиблись ):

Добавление толщины (например, калибр = 0,2) при сопоставлении с использованием пакета matchit из R означает сопоставление точки контрольной группы и точки группы обработки только в том случае, если они находятся в пределах 0,2 стандартных отклонений (от оценки склонности в данном случае) друг от друга. Следовательно, точки экспериментальной группы без точек контрольной группы в пределах 0,2 стандартного отклонения не будут сопоставлены и, следовательно, отброшены. Предполагается, что это улучшит баланс (уменьшит смещение), так как обеспечивает согласованный контроль и лечение только в том случае, если они достаточно «похожи» друг на друга.

B) Мой основной вопрос:

Итак, с повторной выборкой (replace = TRUE) и с использованием метода ближайшего соседа, не означает ли это, что включение измерителя может изменить сопоставление только за счет уменьшения количества сопоставленных групп обработки и, возможно, количества точек контрольной группы используется для сопоставления?

Т.е. точки группы обработки с точкой контрольной группы в пределах 0,2 стандартного отклонения будут сопоставлены так же, как и без измерителя (при условии, что семя постоянное), путем сопоставления с ближайшим соседом. Очки группы лечения те, БЕЗ точки контрольной группы в пределах 0,2 стандартного отклонения, будут отброшены.

В следующем примере это не то, что произошло, поэтому я очень запутался. Приветствуются любые пояснения / исправления моего понимания суппортов!

C) Пример на мой вопрос выше:

В следующем примере (Код взят из https://sejdemyr.github.io/r-tutorials/statistics/tutorial8.html), я провел PSM с штангенциркулем и без штангенциркуля, оба раза все точки моей группы лечения совпадали (1352). Таким образом, я ожидал, что это означает, что штангенциркуль не имел никакого эффекта (поскольку он не препятствовал сопоставлению точек какой-либо группы лечения), и поэтому сопоставленные точки контрольной группы должны быть такими же.

НО это не было дело. Без штангенциркуля количество сопоставленных точек контрольной группы = 1164, с штангенциркулем оно увеличилось до 1185, что изменило мою оценку эффекта лечения. Это также, похоже, ухудшило баланс (как видно из изображений, ссылка прилагается). Не мог бы кто-нибудь объяснить мне, как это могло произойти?

Без штангенциркуля я получил следующие результаты (Matched Control = 1164, Matched Treated 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

Эффект лечения (католи c) с использованием линейной регрессии = -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

1 Ответ

1 голос
/ 05 августа 2020

Только что проверил документацию R --- Если указан штангенциркуль, блок управления внутри штангенциркуля для обрабатываемого блока выбирается случайным образом в качестве соответствия для этого обработанного блока. Итак, это все объясняет, он выбирает соответствующий блок управления случайным образом.

Когда я установил калибр = 0,0000001, баланс улучшился. Итак, оказалось, что caliper = 0.2 было слишком большим для моего набора данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...