Получение совпавшего набора данных из пакета Matching в R от Sekhon - PullRequest
0 голосов
/ 11 апреля 2020

Я использовал соответствующий пакет от Sekhon, и моя проблема заключается в получении соответствующего набора данных. Документация не объясняет, как это сделать для соответствия показателям склонности, она объясняет только для genMatch, который я не использую.

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы выполнили сопоставление без замены (например, replace = FALSE) и без связей (например, ties = FALSE), это просто. Если dat является вашим набором данных, а M является выходом вызова Match(), вы можете запустить

matched <- dat[c(M$index.treated, M$index.control),]

, и соответствующий набор данных будет сохранен в объекте matched. Вы можете восстановить членство в паре, выполнив

matched$pair <- factor(rep(M$index.treated, 2)

При сопоставлении с заменой или со связями, это становится более сложным, поскольку некоторые единицы сопоставляются более чем с одним единицей в другой группе. Вы можете использовать один и тот же код для извлечения совпадающих единиц, но единицы появятся несколько раз и, следовательно, должны быть взвешены. Веса существуют в M$weights, и для каждой пары есть один вес, поэтому необходимо повторить вес (т. Е. weights <- rep(M$weights, 2)), чтобы получить вес для каждой единицы в новом наборе данных.

Если вы просто хотите получить подходящие веса для сопоставленного набора данных, независимо от того, как было выполнено сопоставление, без учета членства в паре, вы можете использовать функцию get.w() в пакете cobalt, которая извлекает веса, по одному для каждой единицы в исходном наборе данных , следующим образом:

 weights <- get.w(M)

length(weights) должно равняться nrow(dat).

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