所以我正在运行多重逻辑回归模型。我最初使用汇总函数计算 p 值,并使用 confint.default 计算置信区间。
为了将所有内容放入一个整洁的小表中,我尝试使用 tbl_regression 但置信区间与我计算的内容不完全匹配,但 p 值似乎还不错。那么 tbl_regression 默认情况下会输出轮廓似然 CI(即使用 confint() 而不是 confint.default())吗?
这是我运行的模型:
model <- glm(outcome ~ age+ Sex + race + country + language + hiv + diabetes + contact + drug + insurance, family = binomial (link = logit), data=df)
我使用此代码来获取系数和 p 值:
summary(model)
此代码用于获取 Wald 置信区间:
confint.default(model)
是的,
tbl_regression
默认使用confint
。来自文档:
该函数使用 broom::tidy 和 broom.mixed::tidy 来执行 初始模型格式化。
来自
broom:::tidy.glm
的来源:
ci <- broom_confint_terms(x, level = conf.level)
来自
broom:::broom_confint_terms
的来源:
ci <- suppressMessages(confint(x, ...))
但是,我们可以通过将
tidy_fun
的 tbl_regression
参数设置为自定义整理器来编写解决方法:
# custom wrapper from broom::tidy that substitutes the Wald CI
tidyWaldCI <- function(x, ...) {
tidytibble <- broom::tidy(x, ...)
tidytibble[,c("conf.int", "conf.high")] <- confint.default(x)
return(tidytibble)
}
# call tbl_regression as you would normally, but add tidy_fun = tidyWaldCI
tbl_regression(model, tidy_fun = tidyWaldCI)