r - Tukey HSD 用于混合连续变量和分类变量,错误 : "no factors"

标签 r anova categorical-data continuous

我正在尝试对死亡率数据进行 Tukey 检验,我想测试死亡率是否受铜含量(单向方差分析)以及铜和温度的组合(双向方差分析)的影响.这些是我的公式:

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)) 

方差分析没有问题,但是对于 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 

我在其他帖子中读到过某处应该有一个因素,但我所有的数据都是数字!我很困惑,不知道下一步该怎么做。

在此先感谢您的帮助!

伦迪尔

最佳答案

TukeyHSD仅适用于分类变量,因此它正在寻找公式中的因素。是 Cu 的值吗?离散胸围只是编码为数值?如果是这样,那么使用

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

还是观察是连续的?然后你必须把它分解成间隔,把它变成一个因子。你可以做
fCu<-cut(Cu, breaks=4)
TukeyHSD(aov(Mortality~fCu)) 

如果方程右侧只有一部分变量是因子,则必须在 which 中明确指定这些变量。 TukeyHSD 的参数.因此,如果您使用分类 fCuTemp是一个连续的数字变量,你可以做
TukeyHSD(aov(Mortality~fCu+Temp), which="fCu") 

虽然它仍然发出关于其他列的警告,所以我不确定如何解释结果

关于r - Tukey HSD 用于混合连续变量和分类变量,错误 : "no factors",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568362/

相关文章:

r - R 中的在线机器学习

r - 合并空间点并使用插值来填补空白

perl - Perl 集成的推荐 R 接口(interface)是什么?

java - 如何在Java中保存R统计测试的结果

python - Pandas 如何分解不寻常的文本顺序

r - Shiny 的传单添加大量分离的多段线

r - 在 R 的 for 循环中使用字符串 - 将字符串作为 for 循环中的方差分析中的变量包含在内时出错

r - 将摘要(aov()) 的嵌套列表中的值提取到数据框中

python - 使用分类变量的 sklearn 线性回归

machine-learning - 在实时系统中使用 sklearn DictVectorizer