如何使用gtsummary的tbl_uvregression制作带偏移项的单因素Poisson回归表
含偏移项的单因素Poisson回归gtsummary表实现方案
核心注意点
使用tbl_uvregression()生成带偏移项的单因素回归表时,偏移项不能直接写入formula参数,必须通过函数内置的offset参数传入,否则会出现模型无法拟合、偏移项未纳入的问题。
前置准备与示例数据构造
首先加载依赖包,构造和描述一致的示例数据集与协变量向量:
# 加载依赖包 library(gtsummary) # 构造示例数据集 set.seed(123) Data <- data.frame( anomalies_tot = rpois(200, lambda = 2), # 计数型结局变量 nvx = runif(200, min = 1, max = 10), # 偏移项对应暴露量 age_moyen = rnorm(200, mean = 45, sd = 10), # 协变量:平均年龄 productivite = rnorm(200, mean = 80, sd = 15) # 协变量:生产力 ) # 指定单因素分析协变量向量 u_var <- c("age_moyen", "productivite")
错误写法示例
以下写法无法正确纳入偏移项,会导致模型运行报错或结果偏误:
# 错误:偏移项写入formula无法被函数正确解析 Data %>% tbl_uvregression( method = glm, y = anomalies_tot, method.args = list(family = poisson(link = "log")), formula = "{y} ~ {x} + offset(log(nvx))", include = all_of(u_var) )
正确实现代码
通过offset参数传入经log转换的偏移项,即可自动为每个单因素模型添加对应偏移项,输出符合报告规范的结果:
result_tbl <- Data %>% tbl_uvregression( method = glm, y = anomalies_tot, # 指定计数结局 method.args = list(family = poisson(link = "log")), # 指定Poisson回归模型 formula = "{y} ~ {x}", # 单因素模型基础公式,无需手动添加偏移项 offset = log(nvx), # 传入偏移项,自动加入所有单因素模型 include = all_of(u_var), # 覆盖u_var中指定的全部协变量 exponentiate = TRUE, # 输出指数化后的效应值IRR(发病率比),适配计数回归报告习惯 pvalue_fun = ~style_pvalue(.x, digits = 3) # 可自定义统计量显示格式 ) %>% bold_labels() # 加粗变量标签,适配正式报告格式要求 # 打印输出结果表 result_tbl
结果说明
- 上述代码拟合的每个单因素模型,与手动用
lapply循环构造的含offset(log(nvx))的Poisson回归结果完全一致 - 输出表格默认遵循临床/公共卫生领域报告规范,可直接用于白皮书、学术论文的结果展示,支持一键导出为Word、PDF、HTML等格式
- 如需调整表格显示内容,可通过gtsummary内置的
modify_header()、add_n()、add_glance_table()等函数自定义列名、添加样本量、模型拟合优度统计量等内容
内容的提问来源于stack exchange,提问作者Buczinski
相关产品推荐
相关产品推荐

