You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让gtsummary对Weibull模型的系数进行指数化处理?

解决survreg Weibull回归系数指数化无效问题

用survival包的survreg()拟合Weibull回归时,直接给gtsummary的tbl_regression()设置exponentiate=TRUE只会把表头改成exp(B),不会实际对beta系数和置信区间执行指数化——这是因为该参数默认适配coxph这类风险比模型,未针对survreg的参数逻辑做处理。

要实现真正的指数化,有两种可行方法:

方法1:用transform参数指定变换函数

library(survival)
library(gtsummary)

fit_w <- survreg(Surv(time, status) ~ sex, dist='weibull', data=lung)

# 通过transform指定指数化,exponentiate负责调整表头显示
tbl_regression(fit_w,
               transform = exp,
               exponentiate = TRUE)

方法2:用modify_table_body手动修改表格数据

fit_w <- survreg(Surv(time, status) ~ sex, dist='weibull', data=lung)

tbl_regression(fit_w) %>%
  modify_table_body(
    mutate,
    # 对系数、置信上下限统一执行指数化
    across(c(estimate, conf.low, conf.high), ~exp(.x)),
    # 更新对应表头标签
    label = "exp(B)"
  )

补充说明

survreg拟合的Weibull模型中,exp(beta)的意义是:协变量每增加1单位,中位生存时间的变化倍数(因模型以log(生存时间)为因变量),和coxph输出的风险比含义不同,解读时需要注意区分。

内容的提问来源于stack exchange,提问作者John Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:01:00