如何使用Anova命令(汽车包)进行Tukey HSD测试

lei*_*dlr 10 r anova lm r-car tukeyhsd

我正在处理一个不平衡的设计/样本并且最初学到了aov().我现在知道,对于我的ANOVA测试,我需要使用III型平方和,这涉及使用拟合lm()而不是使用aov().

问题是使用事后测试(特别是Tukey的HSD)lm().我所做的所有研究都表示simintmultcomp包中使用会起作用,但现在已经更新了该命令似乎无法使用.它似乎也依赖于aov()计算.

基本上我为R找到的所有Tukey HSD测试都假定你aov()用于比较而不是lm().为了获得我必须使用的不平衡设计所需的III型平方和:

mod<-lm(Snavg~StudentEthnicity*StudentGender)

Anova(mod, type="III")
Run Code Online (Sandbox Code Playgroud)

如何使用我的mod使用Tukey HSD测试lm()?或者相反,使用Type III计算我的ANOVA并仍然能够进行Tukey HSD测试?

谢谢!

MYa*_*208 7

尝试HSD.testagricolae

library(agricolae)
data(sweetpotato)
model<-lm(yield~virus, data=sweetpotato)
comparison <- HSD.test(model,"virus", group=TRUE,
main="Yield of sweetpotato\nDealt with different virus")
Run Code Online (Sandbox Code Playgroud)

产量

Study: Yield of sweetpotato
Dealt with different virus

HSD Test for yield 

Mean Square Error:  22.48917 

virus,  means

      yield  std.err replication
cc 24.40000 2.084067           3
fc 12.86667 1.246774           3
ff 36.33333 4.233727           3
oo 36.90000 2.482606           3

alpha: 0.05 ; Df Error: 8 
Critical Value of Studentized Range: 4.52881 

Honestly Significant Difference: 12.39967 

Means with the same letter are not significantly different.

Groups, Treatments and means
a        oo      36.9 
ab       ff      36.33333 
 bc      cc      24.4 
  c      fc      12.86667 
Run Code Online (Sandbox Code Playgroud)


Sal*_*ico 6

首先说明,除非已更改,否则要获得类型 iii 平方和的正确结果,您需要为因子变量设置对比编码。这可以在lm调用内部或使用options. 下面的示例使用options.

\n

我会对使用HSD.test不平衡设计的类似功能持谨慎态度,除非文档说明了它们在这些情况下的使用。的文档TukeyHSD提到它针对“轻微不平衡”的设计进行了调整。我不知道是否会以HSD.test不同的方式处理事情。您必须检查该包的其他文档或该函数引用的原始参考资料。

\n

作为旁注,将整个HSD.test函数括在括号中将导致它打印结果。请参阅下面的示例。

\n

一般来说,我建议使用灵活的emmeans(n\xc3\xa9e lsmeans) 或multcomp包来满足所有事后比较需求。对于对相互作用进行平均分离检查治疗之间的对比emmeans特别有用。[编辑:请注意我是这些页面的作者。]

\n

对于不平衡设计,您可能需要报告 EM(或 LS)均值而不是算术均值。请参阅SAEPER:什么是最小二乘均值?。[编辑:请注意,我是本页的作者。] 请注意,在下面的示例中, 报告的边际均值与emmeans报告的边际均值不同HSD.test

\n

另请注意,“Tukey”glht与 Tukey HSD 或 Tukey 调整比较无关;正如输出所示,它只是设置所有成对测试的对比。

\n

然而,adjust="tukey"emmeans正如输出所示,

\n

以下示例部分改编自ARCHBS:单向方差分析

\n
### EDIT: Some code changed to reflect changes to some functions\n###  in the emmeans package\n\nif(!require(car)){install.packages("car")}\nlibrary(car)\ndata(mtcars)\nmtcars$cyl.f = factor(mtcars$cyl)\nmtcars$carb.f = factor(mtcars$carb)\n\noptions(contrasts = c("contr.sum", "contr.poly"))\n\nmodel = lm(mpg ~ cyl.f + carb.f, data=mtcars)\n\nlibrary(car)\nAnova(model, type="III")\n\nif(!require(agricolae)){install.packages("agricolae")}\nlibrary(agricolae)\n(HSD.test(model, "cyl")$groups)\n\nif(!require(emmeans)){install.packages("emmeans")}\nlibrary(emmeans)\n\nmarginal = emmeans(model,\n                   ~ cyl.f)\n\npairs(marginal, adjust="tukey")\n\nif(!require(multcomp)){install.packages("multcomp")}\nlibrary(multcomp)\n\ncld(marginal, adjust="tukey", Letters=letters)\n\n\nif(!require(multcomp)){install.packages("multcomp")}\nlibrary(multcomp)\n\nmc = glht(model,\n          mcp(cyl.f = "Tukey"))\n\nsummary(mc, test=adjusted("single-step"))\n\ncld(mc)\n
Run Code Online (Sandbox Code Playgroud)\n