R语言 'MatchIt::matchit()'不支持排除公式中的变量吗?

8ftvxx2r  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(141)

我的目标是将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在后一种情况下是协变量。
如果我错过了标签,请编辑。

9gm1akwq

9gm1akwq1#

如果您不将变量包含在主公式中,它仍将显示在match.data()生成的匹配数据集中,该数据集只是原始数据集的副本,其中删除了不匹配的观测值并添加了其他列。但是你总是可以用addlvariables参数来请求它,所以只需要在主公式中包含你想要匹配的变量。

相关问题