使用线性模型进行倾向得分匹配(R MatchIt)
Use linear model for propensity score matching (R MatchIt)
我想使用从线性模型拟合的倾向得分来匹配使用 MatchIt 库的观察结果。
例如,假设 df
是一个数据帧。如果我要使用 logit 的倾向得分根据 x1
、x2
和 x3
来平衡它的 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)
我想使用从线性模型拟合的倾向得分来匹配使用 MatchIt 库的观察结果。
例如,假设 df
是一个数据帧。如果我要使用 logit 的倾向得分根据 x1
、x2
和 x3
来平衡它的 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)