我正在处理不平衡的设计/样本,最初学习aov()
。我现在知道,对于我的ANOVA测试,我需要使用Type III平方和,其中涉及使用lm()
而不是aov()
使用拟合。
问题是使用lm()
进行事后测试(特别是Tukey的HSD)。我所做的所有研究都表示在simint
包中使用multcomp
会起作用,但现在已经更新了该命令似乎无法使用。它似乎依赖于通过aov()
来计算。
基本上我为R找到的所有Tukey HSD测试都假设您使用aov()
进行比较,而不是lm()
。为了获得我必须使用的不平衡设计所需的III型平方和:
mod<-lm(Snavg~StudentEthnicity*StudentGender)
Anova(mod, type="III")
如何使用lm()
对我的mod使用Tukey HSD测试?或者相反,使用Type III计算我的ANOVA并且仍然能够进行Tukey HSD测试?
谢谢!
答案 0 :(得分:7)
在HSD.test
agricolae
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")
<强>输出强>
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
答案 1 :(得分:1)
我遇到了同样的问题,HSD.test什么都没打印出来。您需要将console=TRUE
放在函数内部,以便自动打印出来。
例如:
HSD.test(alturacrit.anova, "fator", console=TRUE).
Hope it helps!
答案 2 :(得分:1)
我发现HSD.test()
对于您构建lm()
或aov()
模型的方式也非常细致。
当我使用以下HSD.test()
编码的想法时,lm()
没有输出我的数据:
model<-lm(sweetpotato$yield ~ sweetpotato$virus)
out <- HSD.test(model,"virus", group=TRUE, console=TRUE)
仅输出:
Name: virus
sweetpotato$virus
对aov()
model<-aov(sweetpotato$yield ~ sweetpotato$virus)
获取HSD.test()
lm()
的输出
(或者如果模型使用aov()
)
必须严格使用MYaseen208答案中提供的逻辑构建:
model <- lm(yield~virus, data=sweetpotato)
希望这可以帮助那些无法从HSD.test()
获得正确输出的人。