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

如何用tbl_uvregression展示multgee包多分类GEE模型的单变量分析结果?

用gtsummary展示multgee多分类GEE单变量分析结果

完全可以参照多分类logistic回归的方案实现需求,核心是为multgee包的nomLORgee模型添加gtsummary支持,同时通过数据预处理或函数参数去除NA值,以下是具体实现步骤:

1. 核心准备:为nomLORgee模型添加gtsummary兼容

gtsummary依赖broom包的tidy()方法提取模型结果,但默认没有适配nomLORgee的实现,需要自定义一个tidy函数来解析多分类GEE的输出:

library(multgee)
library(gtsummary)
library(dplyr)
library(tidyr)

# 自定义适配nomLORgee的tidy方法
tidy.nomLORgee <- function(x, exponentiate = FALSE, ...) {
  coef_df <- as.data.frame(summary(x)$coefficients) %>%
    tibble::rownames_to_column(var = "term") %>%
    tidyr::separate(term, into = c("response_level", "predictor"), sep = ":", extra = "merge") %>%
    rename(
      estimate = Estimate,
      std.error = `Std.err`,
      statistic = `Wald`,
      p.value = `Pr(>|W|)`
    )
  
  # 指数化系数(输出OR值,可选)
  if (exponentiate) {
    coef_df <- coef_df %>% mutate(estimate = exp(estimate))
  }
  
  return(coef_df)
}

2. 处理NA值

可以在数据预处理阶段直接去除含NA的观测,确保单变量分析时不会因为缺失值报错:

# 加载示例数据并清洗NA
data(housing)
housing_clean <- housing %>%
  select(y, time, sec, id) %>% # 筛选需要分析的变量
  na.omit() # 去除所有含NA的行

也可以在调用tbl_uvregression时,通过method.args = list(na.action = na.omit)将去NA的逻辑传递给nomLORgee函数。

3. 运行单变量分析并生成表格

参照多分类logistic的宽格式方案,用tbl_uvregression批量运行单变量多分类GEE,并调整表格布局:

# 生成单变量多分类GEE结果表格
tbl_uv <- tbl_uvregression(
  data = housing_clean,
  method = nomLORgee,
  y = y, # 多分类结局变量
  method.args = list(id = id, repeated = time), # GEE必需的聚类和重复测量参数
  exponentiate = TRUE, # 输出优势比(OR)
  label = list(
    time ~ "时间点",
    sec ~ "社会经济阶层"
  )
) %>%
  # 将结果按结局水平转为宽格式
  modify_table_body(
    ~ .x %>%
      tidyr::pivot_wider(
        id_cols = c(variable, label, row_type),
        names_from = response_level,
        values_from = c(estimate, std.error, p.value),
        names_glue = "{response_level}_{.value}"
      )
  ) %>%
  # 自定义表头,清晰区分不同结局水平
  modify_header(
    starts_with("1_") ~ "**参考水平: 1**",
    starts_with("2_") ~ "**结局: 2**",
    starts_with("3_") ~ "**结局: 3**"
  ) %>%
  bold_labels() # 加粗变量标签

# 查看最终表格
tbl_uv

关键说明

  • 自定义的tidy.nomLORgee函数是实现兼容的核心,它会自动提取多分类结局每个水平的系数、标准误和P值;
  • 宽格式转换让不同结局水平的结果并列展示,和多分类logistic的表格风格一致;
  • 无论是预处理去NA还是通过模型参数去NA,都能确保单变量分析时不会包含缺失值观测。

内容的提问来源于stack exchange,提问作者s.stats

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:55:26