混合连续和分类变量的Tukey HSD,错误:"没有因子"。

4

我正在尝试对死亡率数据进行图基检验,其中我希望测试铜的数量(在单因素方差分析中)和铜和温度的组合对死亡率是否有影响(在双因素方差分析中)。以下是我的公式:

lm2<-lm(Mortality~Cu) 
anova(lm2) 
TukeyHSD(aov(Mortality~Cu)) 

lm2<-lm(Mortality~Cu+Temp+Cu:Temp) 
anova(lm2) 
TukeyHSD(aov(Mortality~Cu+Temp+Cu:Temp)) 

ANOVA没有问题,但是对于Tukey的两个方法,我得到了以下错误信息:

    Error in TukeyHSD.aov(aov(Mortality ~ Cu + Temp + Cu:Temp)) : 
      no factors in the fitted model 
    In addition: Warning messages: 
    1: In replications(paste("~", xx), data = mf) : non-factors ignored: Cu 
    2: In replications(paste("~", xx), data = mf) : non-factors ignored: Temp 
    3: In replications(paste("~", xx), data = mf) : 
      non-factors ignored: Cu, Temp 

我在其他帖子中看到应该有一个因素存在,但我的所有数据都是数字!我感到非常困惑,不知道接下来该怎么做。

非常感谢您的帮助!

Lundill


Cu:Temp 期望 Cu 和/或 Temp 是因子。因此,您应该将它们转换。 - Rich Scriven
1个回答

6

TukeyHSD 只能处理分类变量,因此它在您的公式中寻找因子。 如果 Cu 的值是离散的,只是编码为数值,则可以使用

fCu<-factor(Cu)
TukeyHSD(aov(Mortality~fCu)) 

或者这些观测值是连续的吗?那么你需要将其分成间隔来转换为因子。你可以这样做:
fCu<-cut(Cu, breaks=4)
TukeyHSD(aov(Mortality~fCu)) 

如果等式右侧只有部分变量是因子,你必须在TukeyHSDwhich参数中明确指定这些变量。所以,如果你使用分类变量fCu,而Temp是一个连续的数值变量,你可以这样做:

TukeyHSD(aov(Mortality~fCu+Temp), which="fCu") 

尽管它仍然对其他列发出警告,因此我不确定如何解释这些结果。

非常感谢您,MrFlick!那对我的数据完美地起作用了。我会记住这个技巧以备将来分析之用。再次感谢! - Lundill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接