使用线性模型进行倾向得分匹配(R MatchIt)

Use linear model for propensity score matching (R MatchIt)

我想使用从线性模型拟合的倾向得分来匹配使用 MatchIt 库的观察结果。

例如,假设 df 是一个数据帧。如果我要使用 logit 的倾向得分根据 x1x2x3 来平衡它的 treatment 列,我会设置 distance = 'glm'link = 'logit':

m <- matchit(formula = treatment ~ x1 + x2 + x3,
             data = df,
             method = 'nearest',
             distance = 'glm',
             link = 'logit')

我怎样才能用线性模型而不是逻辑模型来做同样的事情?

根据 documentation:

When link is prepended by "linear.", the linear predictor is used instead of the predicted probabilities.

因此,我尝试了:

m <- matchit(formula = treatment ~ x1 + x2 + x3,
             data = df,
             method = 'nearest',
             distance = 'glm',
             link = 'linear.logit')

恐怕这样做 (link = linear.logit) 会使用 logit 模型的对数赔率得分。

有什么方法可以只使用线性模型而不是广义线性模型吗?

您不能在 matchit() 中执行此操作(通常也不应该这样做,这就是不允许这样做的原因)。但是您始终可以根据需要估算 matchit() 之外的倾向得分,并将它们提供给 matchit()。要使用线性概率模型,您需要 运行 以下内容:

fit <- lm(treatment ~ x1 + x2 + x3, data = df)
ps <- fit$fitted
m <- matchit(treatment ~ x1 + x2 + x3,
             data = df,
             method = 'nearest',
             distance = ps)