我的目标是将net_tfa
从公式中排除,尽管如此,我希望在后续步骤中使用该变量,为什么matchit()
不排除-variable
的变量排除?如何克服这个问题?
与lm()
的比较:
# toy data
# install.packages("hdm")
library(hdm); data("pension")
# allowing convergence
pension <- pension[, c("p401", "net_tfa", "age", "db",
"educ","fsize", "hown", "inc",
"male", "marr","pira", "twoearn")]
lm(p401 ~ . -net_tfa,
data = pension)
#>
#> Call:
#> lm(formula = p401 ~ . - net_tfa, data = pension)
#>
#> Coefficients:
#> (Intercept) age db educ fsize hown
#> 9.865e-02 -1.718e-03 1.174e-01 3.975e-04 -3.112e-03 6.556e-02
#> inc male marr pira twoearn
#> 3.967e-06 -1.347e-02 -1.027e-02 6.407e-02 2.519e-02
# install.packages("MatchIt")
library(MatchIt)
matchit(formula = p401 ~ . -net_tfa,
data = pension,
method = "nearest",
link = "probit",
estimand = "ATT",
replace = TRUE)
#> A matchit object
#> - method: 1:1 nearest neighbor matching with replacement
#> - distance: Propensity score
#> - estimated with probit regression
#> - number of obs.: 9915 (original), 4435 (matched)
#> - target estimand: ATT
#> - covariates: net_tfa, age, db, educ, fsize, hown, inc, male, marr, pira, twoearn
创建于2022年12月29日,使用reprex v2.0.2
如您所见,net_tfa
在后一种情况下是协变量。
如果我错过了标签,请编辑。
1条答案
按热度按时间9gm1akwq1#
如果您不将变量包含在主公式中,它仍将显示在
match.data()
生成的匹配数据集中,该数据集只是原始数据集的副本,其中删除了不匹配的观测值并添加了其他列。但是你总是可以用addlvariables
参数来请求它,所以只需要在主公式中包含你想要匹配的变量。