0

我想使用 R ( method= ebal) 中的 WeightIt 包来平衡我的数据。我使用了类似于下面的代码;

#平衡治疗组之间的协变量(二进制)

W1 <- weightit(treat ~ age + educ + married + nodegree + re74, data = lalonde, method = "ebal", estimand = "ATT")

match.data(W1)

结果是我的数据表带有一个名为 的附加列weights。这些权重是什么意思,我该如何从这里继续?(我的下一步是使用平衡数据集进行 logit 回归)

非常感谢您的帮助!

4

1 回答 1

0

weightit()估计权重,当应用于数据集时,会在处理组中产生平衡。要估计加权样本中的影响,请将权重包括在治疗结果的回归中。这在WeightIt 小插图中得到了证明。

你不应该match.data()WeightIt. 我不确定您在哪里找到了执行此操作的代码。match.data()用于 with MatchIt,这是一个具有自己功能的不同包。match.data()碰巧使用的事实WeightIt是意外行为,不应依赖。

要估计处理对二元结果的影响(我将Y在下面的代码中表示并假设它在lalonde数据集中,即使实际上它不是),您将在运行第一行之后运行以下命令上面的代码:

fit <- glm(Y ~ treat, data = lalonde, weights = W1$weights, family = binomial)
lmtest::coeftest(fit, vcov. = sandwich::vcovHC)

上的系数treat是结果的对数优势比。

于 2020-12-15T08:54:47.767 回答