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

在R中按得分十分位数计算病例对照比值比并分表型绘图

按SCORE十分位数计算OR并绘制分表型比值比图

下面是针对需求的完整R实现步骤,包含OR计算和分表型绘图:

1. 依赖包加载与数据预处理

先加载所需工具包,并确保SCORE按表型分组后生成十分位数(避免跨表型的分位数偏倚):

library(dplyr)
library(ggplot2)
library(broom)
library(stringr)

# 假设你的数据集名为df,包含字段:ID、PHENO(1=病例/0=对照)、SCORE、PHE_TYPE(不同表型标识)
# 按表型分组后,将SCORE拆分为10个等分组
df <- df %>%
  group_by(PHE_TYPE) %>%
  mutate(decile = ntile(SCORE, 10)) %>%
  ungroup()

2. 按表型+十分位数计算OR及置信区间

采用logistic回归模型计算每个十分位数相对于第一组的OR(比值比),同时提取标准误和95%置信区间:

# 分组拟合模型并提取结果
or_results <- df %>%
  group_by(PHE_TYPE) %>%
  group_modify(function(sub_data, .) {
    # 拟合logistic回归,以第1个十分位数为参照组
    glm_model <- glm(PHENO ~ factor(decile, ref = 1), data = sub_data, family = binomial())
    # 提取模型结果并指数化得到OR
    tidy(glm_model, exponentiate = TRUE, conf.int = TRUE) %>%
      filter(term != "(Intercept)") %>%
      # 提取十分位数编号
      mutate(decile = as.integer(str_remove(term, "factor\\(decile, ref = 1\\)"))) %>%
      select(decile, or = estimate, se = std.error, lower_ci = conf.low, upper_ci = conf.high)
  }) %>%
  ungroup()

3. 绘制分表型OR图

用ggplot2生成分面图,每个表型对应一个子图,清晰展示各十分位数的OR及置信区间:

ggplot(or_results, aes(x = decile, y = or)) +
  # 绘制95%置信区间误差棒
  geom_errorbar(aes(ymin = lower_ci, ymax = upper_ci), width = 0.2, color = "#636363") +
  # 绘制OR点
  geom_point(size = 2.5, color = "#2171b5") +
  # 添加OR=1的参照虚线(无关联线)
  geom_hline(yintercept = 1, linetype = "dashed", color = "#cb181d") +
  # 按表型分面展示
  facet_wrap(~PHE_TYPE, ncol = 2) +
  # 设置坐标轴与标题
  labs(
    x = "SCORE十分位数",
    y = "比值比(病例vs对照)",
    title = "不同表型下SCORE分组的患病风险比值比"
  ) +
  # 优化主题样式
  theme_bw() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10),
    strip.text = element_text(size = 11)
  )

可选调整

  • 若想在同一图中用颜色区分表型而非分面,可移除facet_wrap,并将aes(color = PHE_TYPE)添加到ggplot()中,同时调整点和误差棒的颜色映射。
  • 如需更换参照组,修改factor(decile, ref = X)中的X为目标十分位数编号即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:05:33