【问题标题】:How to generate a compact letter display for pairwise TukeyHSD如何为成对 TukeyHSD 生成紧凑型字母显示
【发布时间】:2020-01-04 08:22:38
【问题描述】:

我无法为我的结果生成紧凑型字母显示。 我已经运行了一个方差分析,然后是 Tukey 的 HSD 来为每对生成 p 值,但我不知道如何(或者是否可能?)为这些 p 值分配字母以显示哪些对彼此重要。

csa.anova<-aov(rate~temp*light,data=csa.per.chl) summary(csa.anova) TukeyHSD(csa.anova)

这会运行我需要的测试,但我不知道如何为每个 p 值分配字母以显示哪些对是重要的。

【问题讨论】:

  • 您的示例不可重现,请使用dput(head(csa.per.chl, 20)) 的输出编辑问题。您要分配给什么范围的 p 值的字母是什么?比如A: 0.00-0.05等?究竟是什么?请使用该信息编辑问题。
  • “分配字母”是什么意思?对于其他人来说,这是一个使用 mtcars 的示例:m &lt;- mtcars m$cyl &lt;- as.factor(m$cyl); m$gear &lt;- as.factor(m$gear) m.anova&lt;-aov(mpg~cyl*gear,data=m) summary(m.anova) TukeyHSD(m.anova)
  • CLD 是一种具有误导性的图形,因为它显示了哪些比较不重要。所以我的回答是“只是不要”,而是显示一个 P 值矩阵,或测量差异的置信区间,或其他一些不会误导的图形。

标签: r anova tukey


【解决方案1】:

了解更多详情here

mod <- lm(Sepal.Width ~ Species, data = iris)

mod_means_contr <- emmeans::emmeans(object = mod,
                                    pairwise ~ "Species",
                                    adjust = "tukey")

mod_means <- multcomp::cld(object = mod_means_contr$emmeans,
                           Letters = letters)

library(ggplot2)

ggplot(data = mod_means,
       aes(x = Species, y = emmean)) +
  geom_errorbar(aes(ymin = lower.CL, 
                    ymax = upper.CL), 
                width = 0.2) +
  geom_point() +
  geom_text(aes(label = gsub(" ", "", .group)),
            position = position_nudge(x = 0.2)) +
  labs(caption = "Means followed by a common letter are\nnot significantly different according to the Tukey-test")

reprex package (v2.0.0) 于 2021 年 6 月 3 日创建

【讨论】:

    【解决方案2】:

    我无法让这段代码工作:

    data("iris")
    iris.aov<-aov(Petal.Length~Species,iris)
    iris.tukey<-glht(iris.aov,linfct=mcp(Species="Tukey"))
    

    这里是触发的错误:

    glht(iris.aov, linfct = mcp(Species = "Tukey")) 中的错误:可以 找不到函数“glht”

    【讨论】:

    • 您需要下载并打开multcomp库
    【解决方案3】:

    您需要先安装multcomp 包。它可以计算 Tukey HSD 测试并返回一个具有summaryplot 方法的对象。该包还有一个功能(cld)打印“致密信显示”。举个例子,我们可以使用 R 自带的 iris 数据集:

    library(multcomp)
    data(iris)
    iris.aov <- aov(Petal.Length~Species, iris)
    iris.tukey <- glht(iris.aov, linfct=mcp(Species="Tukey"))
    cld(iris.tukey)
    #     setosa versicolor  virginica 
    #        "a"        "b"        "c" 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多