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

如何在ggplot分组箱线图中添加组内性别均值比较的p值?

解决方案:在分组箱线图内添加组内性别比较的p值

一、先明确stat_compare_means()的默认逻辑

默认情况下,该函数会对指定分组变量执行Wilcoxon秩和检验(非参数检验),适合不符合正态分布的连续数据。如果你的severity数据符合正态分布且方差齐性,可以切换为t检验(通过method = "t.test"指定)。

二、实现四个lesion_level组内的性别比较

核心思路是:指定按lesion_level分组,在每个组内对Male和Female的severity均值做独立比较。

1. 基础代码示例

假设你已有的箱线图代码如下,在此基础上添加p值:

library(ggplot2)
library(ggpubr)

# 过滤出目标的4个lesion_level组(若数据集包含其他组)
totalamount_filtered <- subset(totalamount, lesion_level %in% c("C1-C4", "C5-C8", "Paraplegia", "ASIA D"))

# 绘制基础箱线图
p <- ggplot(totalamount_filtered, aes(x = lesion_level, y = severity, fill = sex)) +
  geom_boxplot(position = position_dodge(width = 0.75)) + # 调整箱线间距,避免p值重叠
  scale_x_discrete(limits = c("C1-C4", "C5-C8", "Paraplegia", "ASIA D")) # 固定分组顺序

# 添加组内性别比较的p值
p + stat_compare_means(
  aes(group = sex),          # 指定比较的分组维度是sex
  group.by = "lesion_level", # 限定在每个lesion_level子组内单独比较
  method = "wilcox.test",    # 默认非参数检验,换成"t.test"则用参数检验
  label = "p.format",        # 显示格式化p值(如p=0.023),换成"p.signif"显示显著性星号
  label.y = 1.2,             # 调整p值垂直位置,根据你的数据范围修改
  position = position_dodge(width = 0.75) # 和箱线图的间距对齐
)

2. 自定义调整技巧

  • 分组合适位置调整:如果某组箱线图高度较高导致p值重叠,可给label.y传入向量,比如label.y = c(1.2, 1.3, 1.2, 1.4),对应四个组的垂直位置。
  • 添加均值标注:若需同时显示每组性别的均值,可结合stat_summary():
    p + stat_summary(
      fun = mean, geom = "text", aes(group = sex),
      position = position_dodge(width = 0.75), vjust = -0.5, size = 3
    ) +
    stat_compare_means(
      aes(group = sex), group.by = "lesion_level",
      method = "wilcox.test", label = "p.format", label.y = 1.2
    )
    
  • t检验方差调整:若用t检验且方差不齐,添加var.equal = FALSE参数,函数会自动使用Welch t检验。

三、关键参数说明

  • group = sex:明确要比较的是sex的两个水平(Male/Female)。
  • group.by = "lesion_level":限定比较范围为每个lesion_level子组内部,而非全局跨组比较。
  • method:指定检验方法,常用选项为"wilcox.test"(非参数)和"t.test"(参数)。
  • label:控制p值显示格式,"p.format"展示具体数值,"p.signif"展示显著性星号(*p<0.05, **p<0.01, ***p<0.001)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:35:16