如何在agricolae软件包中执行事后测试,Tukey?

如何在agricolae软件包中执行事后测试,Tukey?,r,graph,anova,posthoc,tukey,R,Graph,Anova,Posthoc,Tukey,我是和你一起做的 library(lsmeans) 及 但我感兴趣的是,在agricolaepackage中,如何在R中进行TW方差分析后进行事后测试 structure( list(Treatment = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Con

我是和你一起做的

library(lsmeans)

但我感兴趣的是,在
agricolae
package中,如何在R中进行TW方差分析后进行事后测试

structure( list(Treatment = structure(c(3L, 3L, 3L, 3L, 3L, 3L,
    3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L), .Label = c("Control", "Nitrogen", "Salt"
    ), class = "factor"), Stage = structure(c(1L, 1L, 1L, 2L, 2L, 
    2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 
    2L, 2L, 2L, 3L, 3L, 3L), .Label = c("Green", "Pink", "Red"), class = "factor"), 
   Chlorophyll = c(0.2, 0.3, 0.4, 0.5, 0.3, 0.2, 0.5, 0.6, 0.7, 
   0.4, 0.6, 0.9, 0.2, 0.3, 0.5, 0.4, 0.2, 0.3, 0.5, 0.6, 0.8, 
   0.5, 0.4, 0.6, 0.2, 0.3, 0.1)), .Names = c("Treatment", "Stage", 
   "Chlorophyll"), class = "data.frame", row.names = c(NA, -27L)
    )
平均值分离后,我们如何用组号/字母绘制每个阶段的图表


我假设您希望根据
治疗
阶段
和交互作用
治疗*阶段
对数据进行分组

  • 在进行两两方差分析之前,计算比较次数是有指导意义的:
    Treatment
    Stage
    各有3个级别,因此我们分别有
    choose(length(levels)(levels(df$Treatment)),2)=3
    choose(length(levels(df$Stage)),2)
    比较;对于相互作用项,我们必须考虑<代码>处理< <代码>和<代码>阶段< /代码>

    之间的所有可能组合。
    combn_interact <- apply(
        expand.grid(levels(df$Treatment), levels(df$Stage)), 
        1, 
        paste, collapse = ":");
    combn_interact;
    #[1] "Control:Green"  "Nitrogen:Green" "Salt:Green"     "Control:Pink"
    #[5] "Nitrogen:Pink"  "Salt:Pink"      "Control:Red"    "Nitrogen:Red"
    #[9] "Salt:Red"
    
  • 我们现在使用
    DescTools
    库中的
    PostHocTest
    执行事后检验,以解释多个假设检验。存在不同的方法来纠正p值,这里我们使用测试

  • 绘制各组值的分布图需要对我们的3个
    治疗
    、3个
    阶段
    和36个
    治疗*阶段
    比较的每个相关组进行观察。例如,对于3
    治疗
    比较,您可以

    df %>%
        ggplot(aes(x = Treatment, y = Chlorophyll)) +
        geom_boxplot() +
        geom_jitter(width = 0.2)
    

    与事后检验的结果一致,三种分布之间的平均值没有统计学上的显著变化

    其他的情节也一样简单,我会让你决定


  • 样本数据
    df我很高兴向您展示一个如何执行事后测试的示例;但是现在我对你的问题不是很清楚。(1) 您使用的是线性模型
    lm
    ,但在进行方差分析后,请参考事后测试。这是两件不同的事情。假设您希望执行多个方差分析(然后使用事后检验纠正多个假设检验):数据在哪里(即值和组标签)?(2) 显示一个箱线图,但给出的数据完全不相关。这个阴谋是从哪里来的?[…][续](3)agricolae
    软件包与它有什么关系?这就是数据的来源吗?数据集的名称是什么?(4)
    lsmeans
    multcomp
    在哪里起作用?这些包裹是做什么的?谢谢毛里塔尼亚·埃弗斯。au:)也许我没有很好地解释这一点,在R中运行2向方差分析后,我需要帮助对我的组数据(治疗、阶段和if交互)进行平均值比较(事后测试)。我不确定如何执行Tukey HSD。在事后测试之后,我想绘制上面这样的BP图,用字母或星星表示不同的显著性。这只是一个示例数据。我有一个很大的df,正在考虑如何进行分析。如果可能的话,我会很感激你的帮助。嗨@Kynda。请看下面我的答案;对于事后测试,我推荐
    DescTools
    库中的
    PostHocTest
    ;我还添加了一个示例绘图作为起点。谢谢Evers博士,此绘图代码不适用于我的数据框,为什么在这里使用管道%>%。。。我尝试了下面的代码,它可以用ggplot(df,aes(x=generic,y=k))+geom_bar()+geom_jitter(width=0.2)很好,我现在对方块图不感兴趣。如何将其更改为带有标准错误的条形图。我不确定在哪一步我必须平均结果。如果可能的话,我将非常感谢你的帮助。谢谢。@Kynda因为您是在比较分布的平均值,所以箱线图比条形图是更明智的可视化选择。关于一般的绘图,您需要查看许多可用的R绘图教程中的一些。我通常推荐
    ggplot
    ,但你也可以使用base R。我建议在答案旁边设置复选标记来结束这个问题;如果你在绘图方面遇到问题,你应该问一个新问题。通常的策略是每个帖子一个问题。这使得其他人更容易找到解决方案并提供帮助。
    model <- aov(Chlorophyll ~ Treatment + Stage + Treatment*Stage, data = df);
    
    library(DescTools);
    PostHocTest(model, method = "hsd")
    
    #  Posthoc multiple comparisons of means : Tukey HSD
    #    95% family-wise confidence level
    #
    #$Treatment
    #                        diff     lwr.ci    upr.ci   pval
    #Nitrogen-Control -0.02222222 -0.1939346 0.1494902 0.9418
    #Salt-Control     -0.03333333 -0.2050457 0.1383791 0.8744
    #Salt-Nitrogen    -0.01111111 -0.1828235 0.1606013 0.9851
    #
    #$Stage
    #                  diff     lwr.ci     upr.ci   pval
    #Pink-Green -0.13333333 -0.3050457 0.03837906 0.1455
    #Red-Green  -0.15555556 -0.3272679 0.01615684 0.0797 .
    #Red-Pink   -0.02222222 -0.1939346 0.14949017 0.9418
    #
    #$`Treatment:Stage`
    #                                      diff      lwr.ci      upr.ci   pval
    #Nitrogen:Green-Control:Green  0.000000e+00 -0.40832017  0.40832017 1.0000
    #Salt:Green-Control:Green     -3.333333e-01 -0.74165350  0.07498684 0.1643
    #Control:Pink-Control:Green   -1.333333e-01 -0.54165350  0.27498684 0.9586
    #Nitrogen:Pink-Control:Green  -3.000000e-01 -0.70832017  0.10832017 0.2624
    #Salt:Pink-Control:Green      -3.000000e-01 -0.70832017  0.10832017 0.2624
    #Control:Red-Control:Green    -4.333333e-01 -0.84165350 -0.02501316 0.0327 *
    #Nitrogen:Red-Control:Green   -3.333333e-01 -0.74165350  0.07498684 0.1643
    #Salt:Red-Control:Green       -3.333333e-02 -0.44165350  0.37498684 1.0000
    #Salt:Green-Nitrogen:Green    -3.333333e-01 -0.74165350  0.07498684 0.1643
    #Control:Pink-Nitrogen:Green  -1.333333e-01 -0.54165350  0.27498684 0.9586
    #Nitrogen:Pink-Nitrogen:Green -3.000000e-01 -0.70832017  0.10832017 0.2624
    #Salt:Pink-Nitrogen:Green     -3.000000e-01 -0.70832017  0.10832017 0.2624
    #Control:Red-Nitrogen:Green   -4.333333e-01 -0.84165350 -0.02501316 0.0327 *
    #Nitrogen:Red-Nitrogen:Green  -3.333333e-01 -0.74165350  0.07498684 0.1643
    #Salt:Red-Nitrogen:Green      -3.333333e-02 -0.44165350  0.37498684 1.0000
    #Control:Pink-Salt:Green       2.000000e-01 -0.20832017  0.60832017 0.7303
    #Nitrogen:Pink-Salt:Green      3.333333e-02 -0.37498684  0.44165350 1.0000
    #Salt:Pink-Salt:Green          3.333333e-02 -0.37498684  0.44165350 1.0000
    #Control:Red-Salt:Green       -1.000000e-01 -0.50832017  0.30832017 0.9927
    #Nitrogen:Red-Salt:Green       3.885781e-16 -0.40832017  0.40832017 1.0000
    #Salt:Red-Salt:Green           3.000000e-01 -0.10832017  0.70832017 0.2624
    #Nitrogen:Pink-Control:Pink   -1.666667e-01 -0.57498684  0.24165350 0.8718
    #Salt:Pink-Control:Pink       -1.666667e-01 -0.57498684  0.24165350 0.8718
    #Control:Red-Control:Pink     -3.000000e-01 -0.70832017  0.10832017 0.2624
    #Nitrogen:Red-Control:Pink    -2.000000e-01 -0.60832017  0.20832017 0.7303
    #Salt:Red-Control:Pink         1.000000e-01 -0.30832017  0.50832017 0.9927
    #Salt:Pink-Nitrogen:Pink      -5.551115e-17 -0.40832017  0.40832017 1.0000
    #Control:Red-Nitrogen:Pink    -1.333333e-01 -0.54165350  0.27498684 0.9586
    #Nitrogen:Red-Nitrogen:Pink   -3.333333e-02 -0.44165350  0.37498684 1.0000
    #Salt:Red-Nitrogen:Pink        2.666667e-01 -0.14165350  0.67498684 0.3967
    #Control:Red-Salt:Pink        -1.333333e-01 -0.54165350  0.27498684 0.9586
    #Nitrogen:Red-Salt:Pink       -3.333333e-02 -0.44165350  0.37498684 1.0000
    #Salt:Red-Salt:Pink            2.666667e-01 -0.14165350  0.67498684 0.3967
    #Nitrogen:Red-Control:Red      1.000000e-01 -0.30832017  0.50832017 0.9927
    #Salt:Red-Control:Red          4.000000e-01 -0.00832017  0.80832017 0.0574 .
    #Salt:Red-Nitrogen:Red         3.000000e-01 -0.10832017  0.70832017 0.2624
    #
    #---
    #Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    
    df %>%
        ggplot(aes(x = Treatment, y = Chlorophyll)) +
        geom_boxplot() +
        geom_jitter(width = 0.2)
    
    df <- structure( list(Treatment = structure(c(3L, 3L, 3L, 3L, 3L, 3L,
        3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
        1L, 1L, 1L, 1L, 1L), .Label = c("Control", "Nitrogen", "Salt"
        ), class = "factor"), Stage = structure(c(1L, 1L, 1L, 2L, 2L,
        2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L,
        2L, 2L, 2L, 3L, 3L, 3L), .Label = c("Green", "Pink", "Red"), class = "factor"),
       Chlorophyll = c(0.2, 0.3, 0.4, 0.5, 0.3, 0.2, 0.5, 0.6, 0.7,
       0.4, 0.6, 0.9, 0.2, 0.3, 0.5, 0.4, 0.2, 0.3, 0.5, 0.6, 0.8,
       0.5, 0.4, 0.6, 0.2, 0.3, 0.1)), .Names = c("Treatment", "Stage",
       "Chlorophyll"), class = "data.frame", row.names = c(NA, -27L)
        )