R、ANCOVA中的TukeyHSD或glht

8oomwypt  于 2023-01-10  发布在  其他
关注(0)|答案(2)|浏览(179)

我想知道我是否可以使用函数"TukeyHSD"来执行"aov()"模型的所有成对比较,该模型包含一个因子(例如GROUP)和一个连续协变量(例如AGE)。

library(multcomp)
data('litter', package = 'multcomp')
litter.aov <- aov(weight ~ gesttime + dose, data = litter)
TukeyHSD(litter.aov, which = 'dose')

然后我收到一条警告信息警告信息:在重复中(粘贴("~",xx),数据= mf):忽略非因素:妊娠时间
以上过程是否正确?警告信息的含义是什么?"TukeyHSD"是否适用于严重不平衡的设计?
另外,上面和下面的流程有什么区别吗?

litter.mc <- glht(litter.aov, linfct = mcp(dose = 'Tukey'))
summary(litter.mc)

贝斯特苏

pkln4tw6

pkln4tw61#

TukeyHSD()只是更急于告诉您潜在的问题。请注意,这是一个警告消息,而不是错误,这意味着结果可能不是您所期望的,但仍然会返回它们,以便您自己判断。
至于它的意思,它的意思是什么,它说:非因子变量将被忽略。请记住,您是在比较组之间的差异,并且分组是使用因子完成的,因此TukeyHSD()关心所有因子。在您的示例中,您显式地告诉函数只关心dose,即factor,因此警告可能会被视为过于谨慎。
避免警告的一种方法是将gesttime转换为一个因子,由于它只包含四个水平,因此这样做是有意义的。

data('litter', package = 'multcomp')
litter$gesttime <- as.factor(litter$gesttime)
litter.aov <- aov(weight ~ gesttime + dose, data = litter)

TukeyHSD(litter.aov, which = 'dose')
juzqafwq

juzqafwq2#

我知道这是一个老线索,但我不确定现有的答案是完全正确的...
我用自己的数据尝试了这两个函数,遇到了与Sue类似的情况,其中TukeyHSD给出了关于忽略非因子协变量的警告消息,而glht()没有。
这并不表明他们做了与另一个答案相反的事情。结果是不同的,TukeyHSD似乎没有边缘化非因子协变量(如警告所述)。glht()似乎正确地使用了非因子协变量的均值来计算感兴趣组的边缘均值,因为点估计值与从lsmean()获得的点估计值相同。
所以TukeyHSD看起来并不过分谨慎,它只是看起来不能处理非因子协变量,而glht可以,所以glht在我看来是这种情况下使用的正确函数。

相关问题