在许多科学论文中,加权前后的协变量平衡见表1。
例如,连续变量使用平均值和标准差表示,二元变量使用频率和比例表示。
例如,参见paper,表1。
我不知道如何方便地显示加权后的频率和比例,因为bal.tab(..., disp = c("means", "sds")
仅限于"means"
和"sds"
示例数据:
library(cobalt)
library(dplyr)
set.seed(123)
lalonde <- cbind(lalonde,
event = sample(c(0,1), size=614, replace=TRUE, prob=c(0.84,0.16)),
time = runif(614, min=10, max=365))
formula <- treat ~ age + educ + race + married + nodegree + re74 + re75 + re78
# PS
lalonde$pscore <- glm(formula, data = lalonde,
family = binomial(link = "logit"))$fitted.values
# Calculate weights
lalonde$weight <- ifelse(lalonde$treat == 1,
pmin(lalonde$pscore, 1 - lalonde$pscore) / lalonde$pscore,
pmin(lalonde$pscore, 1 - lalonde$pscore) / (1 - lalonde$pscore))
我使用bal.tab
来显示连续变量的均值和SDS。IMO,对于二进制变量,加权均值(例如M.0.Adj
)是加权率。
bal.tab(formula, data = lalonde, thresholds = c(m = .1), un = TRUE, disp = c("means", "sds"), weights = lalonde$weight)
这导致例如:
Type M.0.Adj SD.0.Adj M.1.Adj SD.1.Adj Diff.Adj
married Binary 0.2475 . 0.2581 . 0.0105
是否有一个解决方案来推导二进制变量的频率和比例?
2条答案
按热度按时间ego6inou1#
也许是简单而有效的。
kgqe7b3p2#
也许只是这样?
字符串
还是很困惑。
作者如何获得表1中加权样本的频率和比例?