gt::gt를 사용하여 데이터 프레임을 테이블로 변환할 수 있으므로 pROC의 aSAH 데이터 세트를 사용하여 다음과 같은 작업을 수행할 수 있습니다.
library(pROC)
library(gt)
library(dplyr)
aSAH %>%
filter(gender == "Female") %>%
roc(outcome, s100b) %>%
{data.frame(
predictor = as.character(.$call$predictor),
"Area under curve" = auc(.),
"Confidence interval" =
paste(as.character(round(ci.auc(b), 2))[c(1, 3)], collapse = " - "),
check.names = FALSE)} %>%
gt()
AUC를 추가하는 몇 가지 방법이 있는데요.
아래는 broom::glance()의 glance 통계와 함께 추가하는 예제입니다.
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.6.0'
mod <- glm(response ~ age + trt, trial, family = binomial)
glance_with_auc <- function(x, ...) {
df_glance <- broom::glance(x)
# add AUC
df_glance %>%
dplyr::mutate(
AUC = with(broom::augment(x), pROC::roc(response, .fitted))$auc %>% as.numeric()
)
}
glance_with_auc(mod)
#> Setting levels: control = 0, case = 1
#> Setting direction: controls < cases
#> # A tibble: 1 × 9
#> null.deviance df.null logLik AIC BIC deviance df.residual nobs AUC
#> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <int> <int> <dbl>
#> 1 229. 182 -113. 232. 241. 226. 180 183 0.576
tbl_regression(mod, exponentiate = TRUE) %>%
add_glance_table(include = c(nobs, AIC, AUC), glance_fun = glance_with_auc) %>%
as_kable() # convert to kable to display on SO
#> Setting levels: control = 0, case = 1
#> Setting direction: controls < cases
© 2022 pinfo. All rights reserved.