我有一个数据集,我想用它来比较物种和栖息地对家域大小的影响-同时使用类型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)) 目前我正在拆分这三个物种的数据,然后为每个物种运行单独的方差分析,但我相信用一个方差分析同时询问物种和栖息地会更有意义。下面是我对一个物种进行方差分析的一个例子:
data.species.a<-subset(data1, species=="a")
fit<-aov(homerange ~ habitat, data=data.species.a)
summary(fit)
TukeyHSD(fit)aov()似乎使用了I类错误。。。我认为这是不合适的;另外,我认为Tukey的测试对于成对比较来说可能太保守了。有没有人能帮我找到一种方法,让我用方差分析同时考虑物种和栖息地对家乡范围的影响,同时考虑到III型错误,还可以对物种和栖息地进行不那么保守的成对比较?
发布于 2012-09-06 04:58:38
你可以在包'car‘中设置Anova来报告第三类平方和,在包'agricolae’中有一个HSD.test,它应该能够将该模型对象作为输入。我不认为您可以在数据不平衡的情况下合法地使用aov(),所以我使用lm() fit。
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默认值不屑一顾(有时甚至不屑一顾)(有关详细信息,请参阅read this)。在“汽车”包中介绍该方法主要是为了进行比较,而不是关于统计正确性的建议。
在非常谨慎地接受SAS标准的原因中添加引用:Frank Harrell's comments re: loss of power和Bill Venables' later comments in the same thread on r-help
https://stackoverflow.com/questions/12288312
复制相似问题