【问题标题】:Use stat_compare_means to test whether multiple groups are significantly different from zero?使用 stat_compare_means 测试多个组是否显着不为零?
【发布时间】:2019-08-08 08:02:20
【问题描述】:

我在 ggplot2 中使用 ggpubr::stat_compare_means 来显示多个箱线图的重要性。我试图找到一种方法来显示我的每个箱线图是否与某个值(0)显着不同,但我只能找到方法来比较它们是否与特定组或所有组的均值不同。

这是我的情节的样子:

有些组在0以上,有些在0以下。我要测试的是每个组是否与0显着不同。

目前 stat_compare_means 正在根据该参数计算显着性:

stat_compare_means(label = "p.signif", method = "t.test", ref.group = ".all.", label.y=1.1)

我知道我需要更改“ref.group”参数。在这种情况下,我认为它取所有组的平均值,并测试每个组是否与其显着不同。

ref.group 的文档说:

“指定参考组的字符串。如果指定,对于给定的分组变量,每个组级别将与参考组(即对照组)进行比较。 ref.group 也可以是“.all.”。在这种情况下,每个分组变量级别都会与所有级别进行比较(即 basemean)。”

由于这需要一个字符串,我能想到的将我的组与 0 进行比较的唯一方法是创建一个 0 的虚拟对照组,它将作为参考组。然后我可以在 ref.group 参数中指向该组。

还有其他方法可以将这些组与 0 进行比较吗?谢谢。

  df%>%ggplot(aes(x=species,y=weighted_change))+
  geom_hline(yintercept=0,linetype="dashed")+
  geom_boxplot(color="orangered")+
  labs(x="Species",y="Mean Change",title="Central Basin and Range")+
  theme(plot.title = element_text(hjust = 0.5,size = 12, face = "bold"))+
  theme(axis.title = element_text(size = 10, face = "bold"))+
  theme(axis.text=element_text(size=10,face="bold"))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))+
  coord_cartesian(ylim=c(-1.1,1.1))+
  stat_compare_means(label = "p.signif", method = "t.test", ref.group = ".all.", label.y=1.1)

【问题讨论】:

    标签: r ggplot2 boxplot significance


    【解决方案1】:

    我认为stat_compare_means 在这里实际上对您没有多大帮助,因为它似乎主要用于比较组之间的,并且您想在每个组中进行计算。相反,您可以在转到 ggplot 之前自己计算测试:

    library(tidyverse)
    
    # Test whether each group differs from 0
    t_tests = iris %>%
        group_by(Species) %>%
        summarise(P = t.test(Petal.Width, mu = 0)$p.value,
                  Sig = ifelse(P < 0.05, "*", "ns"),
                  MaxWidth = max(Petal.Width))
    
    ggplot(iris, aes(x = Species, y = Petal.Width)) +
        geom_boxplot() +
        # Use the prepared table of test results as data for the geom
        geom_text(aes(label = Sig, y = MaxWidth + 0.2), size = 6,
                  data = t_tests)
    

    因为我没有你的数据,所以我使用了 iris,但由于 iris 也有一个 species 列,所以应该很清楚发生了什么。

    【讨论】:

    • 完美,这正是我所需要的。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2021-08-16
    • 2013-08-26
    • 2011-02-15
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多