如何在显示分组对的表格中获得 Tukey HSD 事后测试的结果?

机器算法验证 r 方差分析 多重比较 事后 tukey-hsd-测试
2022-02-02 08:50:29

我很想在我使用 R 的双向 Anova 之后执行 TukeyHSD 事后测试,获得一个包含按显着差异分组的排序对的表。(对不起措辞,我还是统计新手。)

我想要这样的东西:

在此处输入图像描述

所以,用星星或字母分组。

任何的想法?HSD.test()我从包中测试了函数agricolae,但它似乎不处理双向表。

2个回答

agricolae::HSD.test函数正是这样做的,但您需要让它知道您对交互项感兴趣下面是一个使用 Stata 数据集的示例:

library(foreign)
yield <- read.dta("http://www.stata-press.com/data/r12/yield.dta")
tx <- with(yield, interaction(fertilizer, irrigation))
amod <- aov(yield ~ tx, data=yield)
library(agricolae)
HSD.test(amod, "tx", group=TRUE)

这给出了如下所示的结果:

Groups, Treatments and means
a        2.1     51.17547 
ab       4.1     50.7529 
abc      3.1     47.36229 
 bcd     1.1     45.81229 
  cd     5.1     44.55313 
   de    4.0     41.81757 
    ef   2.0     38.79482 
    ef   1.0     36.91257 
     f   3.0     36.34383 
     f   5.0     35.69507 

它们与我们通过以下命令获得的内容相匹配:

. webuse yield
. regress yield fertilizer##irrigation
. pwcompare fertilizer#irrigation, group mcompare(tukey)

-------------------------------------------------------
                      |                           Tukey
                      |     Margin   Std. Err.   Groups
----------------------+--------------------------------
fertilizer#irrigation |
                 1 0  |   36.91257   1.116571    AB    
                 1 1  |   45.81229   1.116571      CDE 
                 2 0  |   38.79482   1.116571    AB    
                 2 1  |   51.17547   1.116571         F
                 3 0  |   36.34383   1.116571    A     
                 3 1  |   47.36229   1.116571       DEF
                 4 0  |   41.81757   1.116571     BC   
                 4 1  |    50.7529   1.116571        EF
                 5 0  |   35.69507   1.116571    A     
                 5 1  |   44.55313   1.116571      CD  
-------------------------------------------------------
Note: Margins sharing a letter in the group label are
      not significantly different at the 5% level.

multcomp包还提供了重要的成对比较的符号可视化(“紧凑型字母显示”,请参阅紧凑型字母显示的算法:比较和评估以获取更多详细信息),尽管它没有以表格格式显示它们。但是,它有一种绘图方法,可以方便地使用箱线图显示结果。演示顺序也可以更改(选项decreasing=),并且它有更多用于多重比较的选项。还有扩展这些功能的multcompView包。

这是用 分析的相同示例glht

library(multcomp)
tuk <- glht(amod, linfct = mcp(tx = "Tukey"))
summary(tuk)          # standard display
tuk.cld <- cld(tuk)   # letter-based display
opar <- par(mai=c(1,1,1.5,1))
plot(tuk.cld)
par(opar)

在所选水平(默认,5%),共享相同字母的处理没有显着差异。

在此处输入图像描述

顺便说一句,有一个新项目,目前托管在 R-Forge 上,看起来很有希望:factorplot它包括基于线条和字母的显示,以及所有成对比较的矩阵概览(通过水平图)。可以在此处找到工作论文:factorplot:改进 GLM 中简单对比的呈现

有一个函数叫做TukeyHSD,根据帮助文件,计算一组置信区间,该置信区间是关于一个因子水平的平均值与指定的家庭覆盖概率之间的差异。间隔基于学生化范围统计,Tukey 的“诚实显着差异”方法。这是做你想做的吗?

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/TukeyHSD.html