方差分析后的事后测试,使用R进行重复测量


24

我在R中执行了重复测量方差分析,如下所示:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • 在使用重复测量进行方差分析后,R中的哪种语法可以用于执行事后测试?
  • 用Bonferroni校正进行Tukey检验是否合适?如果是这样,如何在R中完成呢?

1
请参阅事后测试中有关此问题的重复措施设计stats.stackexchange.com/questions/575/…–
Jeromy Anglim

3
关于第二点:Tukey的HSD已经包含多重性的“校正”(在测试统计量的级别,而不是Bonferroni方法中的alpha级别)。因此,无需将两者结合在一起。
chl

1
@chl:所以在Tukey的HSD情况下,我们在多次成对比较中是否不需要校正alpha电平?
斯坦

3
@stan号。(注意:在方差分析显示出显着结果后,应进行计划外(事后)测试,尤其是在涉及确认方法的情况下。)
chl

Answers:


20

您可以做的是指定模型,lme然后glhtmultcomp包中使用该模型执行您想要的操作。但是,lme给出的F值与标准ANOVA略有不同(另请参见我最近的问题)。

lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)

require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))

有关bonferroni的其他对比,请参阅例如包装作者的书multcomp

您可能还希望在R-mailing列表上看到此帖子,以及此博客文章,用于在R中指定重复测量方差分析

但是,正如我这个问题所示,我不确定这种方法是否与方差分析相同。此外,glht仅报告z值,而不报告通常的tF值。这似乎也不常见。

到目前为止,我还没有遇到另一种方法。


2

如果您想坚持使用该aov()功能,则可以使用emmeans可以处理aovlist(和许多其他)对象的包装。

library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

创建emmGrid对象后如下

emm <- emmeans(aov_velocity, ~ Material)

使用此pairs()功能很容易获得所有(事后)成对比较,或者使用软件包的contrast()功能可以很容易地获得任何所需的对比度emmeans。可以通过adjust以下功能的参数实现多次测试调整:

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

有关此的更多信息,我发现详细的emmeans插图文档非常有帮助。

另外,您可以在此处找到完整的(可重现的)示例,其中包括有关如何获取正确的对比度权重的说明。

但是请注意,如果违反球度,则在事后检验中使用单变量模型可能会产生反保守的p值。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.