【问题标题】:How do I run a two-way ANOVA that uses type III errors and looks at pairwise comparisons?如何运行使用 III 型错误并查看成对比较的双向 ANOVA?
【发布时间】:2012-09-05 19:19:05
【问题描述】:

我有一个数据集,我想用它来比较物种和栖息地对家庭范围大小的影响 - 同时使用 III 型错误和物种和栖息地内的成对比较。
这是数据的一个子集:

species<- c("a","b","c","c","b","c","b","b","a","b","c","c","a","a","b","b","a","a","b","c")
    habitat<-  c("x","x","x","y","y","y","x","x","y","z","y","y","z","z","x","x","y","y","z","z")
    homerange<-c(6,5,7,8,9,4,3,5,6,9,3,6,6,7,8,9,5,6,7,8)
    data1<-data.frame(cbind(species, habitat, homerange))
    data1$homerange<-as.numeric(as.character(data1$homerange))    

目前我正在拆分三个物种的数据,然后为每个物种运行单独的方差分析,但我相信使用一个方差分析同时询问物种和栖息地更有意义。这是我为一个物种运行的 ANOVA 示例:

data.species.a<-subset(data1, species=="a")
fit<-aov(homerange ~ habitat, data=data.species.a)
summary(fit)
TukeyHSD(fit)

aov() 似乎使用 I 类错误。 . .我认为不合适;另外,我相信 Tukey 的测试对于成对比较来说可能过于保守。有人可以帮助我采用一种方法,让我运行一个 ANOVA,考虑物种和栖息地对家庭范围的影响,具有 III 型错误,还允许对物种和栖息地进行不太保守的成对比较?

【问题讨论】:

  • 可能更适合CrossValidated. 他们也回答general R questions,,但这也寻求建模建议。
  • 我想你的意思是第三类平方和。
  • 我有点困惑。对于具有单个预测变量的模型,基于类型 I、II、III SSQ 的测试给出 相同 结果(将您的 aov 的结果与下面的 @DWin 的答案以及他的一个小变体进行比较回答你会在哪里使用Anova(...,type="II")。你的意思是测试上面的aov(homerange ~ habitat*species)吗?我支持CrossValidated的建议。

标签: r anova tukey


【解决方案1】:

您可以在包“car”中设置Anova 以报告类型III 的平方和,并且包“agricolae”中的HSD.test 应该能够将该模型对象作为输入。我认为您不能在数据不平衡的情况下合法地使用 aov(),所以我正在使用 lm() 拟合。

fit<-lm(homerange ~ habitat, data=data.species.a)
require(car)
 Anova(fit, type="III")
require(agricolae)
comparison <- HSD.test(fit, "habitat", group=TRUE)

请注意,R 基础包的作者(read this 了解更多详细信息)不屑(有时甚至是彻底嘲笑)看待 SAS 默认的 III 型平方和。在包“汽车”中显示该方法主要是为了比较,而不是作为关于统计正确性的建议。

要引用对接受 SAS 标准非常谨慎的原因: Frank Harrell's comments re: loss of powerBill Venables' later comments in the same thread on r-help

【讨论】:

  • HSD.test 如何考虑Anova 中选择的平方和类型?或者必须使用 SS2 或 3 运行 Anova 并且使用 unbalanced = TRUE 选项具有显着效果的 doHSD.test
  • HSD.test 不“知道”您之前要求使用 III 型 SS,因为 fit 对象是由 lm 生成的,而不是由 Anova 调用修改的。这不是一个很好的例子,因为在这种情况下,除了截距之外,类型 II 和类型 II SS 的 SS 表是相同的。我不确定你的问题到底是什么。您是在问代码是如何工作的吗?只需在控制台输入函数名称即可轻松生成代码(尽管在 Rstudio 中,您需要在函数的最后一个字母后输入一个额外的空格以防止它添加括号。
  • 我的问题是如何让agricolae::HSD.test 知道我用于(高度)不平衡设计的car::Anova 中使用的SS 类型?有必要吗?警告stats::TukeyHSD 默认使用来自stats::aov Multiple Comparisons 的SS1。或者正确的方法就是:aov or lm > Anova with aov or lm > select p HSD.test with selected effects ?
  • HSD.test 不使用 Anova 的结果。
猜你喜欢
  • 1970-01-01
  • 2019-10-09
  • 2016-02-06
  • 2019-05-18
  • 2022-07-19
  • 2016-06-14
  • 2019-12-31
  • 2018-05-05
  • 1970-01-01
相关资源
最近更新 更多