【问题标题】:How do you properly implement regression with categorical explanatory variables missing values when gtsummary tbl_uvregression?当 gtsummary tbl_uvregression 时,如何正确地使用分类解释变量缺失值实现回归?
【发布时间】:2020-07-30 19:46:16
【问题描述】:

我正在使用tbl_uvregression 进行逻辑回归,但一些分类解释变量有缺失值。缺失值类别被选为参考类别。如何实现函数,以便我只对每个变量使用完整的案例?

下面的示例数据

structure(list(time = structure(c(5, 42, 23, 3, 26, 1, 7, 28, 5, 2, 1, 3, 23, 3, 11, 4, 2, 36, 2, 4, 53, 4, 5, 64, 14, 4, 5, 3, 31, 10, 26, 39, 4, 24, 4, 4, 6, 21, 15, 5, 3, 9, 3, 29, 63, 2, 1, 1, 16, 9, 3, 24, 1, 9, 23, 1, 6, 4, 6, 22, 57, 18, 11, 5, 9, 40, 3, 9, 1, 5, 6, 4, 12, 13, 19, 3, 6, 9, 1, 3, 29, 5, 4, 47, 33, 31, 1, 10, 18, 3, 9, 7, 42, 5, 16, 52, 1, 5, 1, 3, 5, 5, 9, 8, 17, 4, 21, 1, 22, 12, 3, 19, 10, 1, 10, 10, 1, 9, 1, 13, 8, 14, 2, 1, 32, 9, 17, 1, 5, 1, 6, 7, 7, 28, 5, 8, 33, 2, 1, 4, 1, 31, 1, 1, 45, 5, 4, 11, 1, 8, 1, 21, 8, 14, 1, 1, 3, 1, 12, 4, 6, 1, 2, 1, 2, 1, 1, 21, 2, 1, 3, 8, 12, 7, 1, 6, 9, 12, 3, 1, 6, 1, 8, 3, 21, 3), format.stata = "%10.0g"), OutcomeDischarge0Death1 = structure(c(0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), label = "Outcome (Discharge = 0, Death = 1)", format.stata = "%10.0g"), HTN = structure(c(1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 3L, 1L, 3L, 1L, 2L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 1L, 1L, 3L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 3L, 3L, 3L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 2L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L, 1L, 1L, 2L), .Label = c("N", "", "Y"), class = "factor")), row.names = c(NA, -186L), class = c("tbl_df", "tbl", "data.frame"))

surv$HTN <- forcats::fct_relevel(neil$HTN, "N")

  tbl_uvregression(
    neil[c("time", "OutcomeDischarge0Death1", "HTN")],
    method = coxph,
    y = Surv(time, OutcomeDischarge0Death1),
    exponentiate = TRUE,
    pvalue_fun = function(x) style_pvalue(x, digits = 2)
  )%>%

【问题讨论】:

  • 你能提供一个我们都可以运行我们的机器的例子吗?默认情况下,模型中只包含完整的案例,所以我不确定你的机器上发生了什么。
  • 道歉@DanielSjoberg,我现在已经添加了数据

标签: r gtsummary


【解决方案1】:

问题似乎是HTN 列中没有缺失值。然而,有 4 个观察结果是空白的,但这并没有丢失。

如果您首先将空字符串设为 NA(也称为缺失),则模型中将忽略这些观察结果。

library(gtsummary)
library(survival)

neil %>%
  # make the missing string NA (aka missing)
  dplyr::mutate(HTN = ifelse(HTN == "", NA, HTN)) %>%
  # building univariate regression models
  tbl_uvregression(
    method = coxph,
    y = Surv(time, OutcomeDischarge0Death1),
    exponentiate = TRUE,
    pvalue_fun = function(x) style_pvalue(x, digits = 2)
  )

编程愉快!

【讨论】:

  • 谢谢,错过了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
相关资源
最近更新 更多