Ref: https://onlinecourses.science.psu.edu/stat464/print/book/export/html/8
前面都是对一两个样本的检查,现在考虑k个样本的情况,我们的假设是:
- Analysis of Variance (ANOVA)
assumptions are:
- Groups are independent
- Distributions are Normally distributed
- Groups have equal variances
那么我们的假设就是:
H0:μ1=μ2=μ3
H1:at least one not equal
R里面使用anova函数,具体可以参见以前的代码。(计算α多样性指数中的Simpson Index)
simpsonBox = read.csv("simpsonIndex1.csv") Group = factor(c(rep(1,21), rep(22,21), rep(43,20)), labels = c("A", "B", "C")) simpsonData = data.frame(simpsonIndex = simpsonBox$x, group = Group) # 非参数检验,检查方差是否相同 fligner.test(shannonIndex ~ group, data = shannonData) # 正态分布的数据,检查方差是否相同 bartlett.test(simpsonIndex ~ group, data = simpsonData) # anova simpsonAov <- aov(simpsonIndex ~ group, data = simpsonData) summary(simpsonAov)
- 非参数的方法则是kruskal test
kruskal.test
上面的anova分析之后,如果我们拒绝了原假设,知道几个组的均值是不同的,那么两两组之间,它们差异的显著性如何?
就像之前做过的TukeyHSD(要求数据正态分布),我们还可以做
- Bonferroni Adjustment
The Bonferroni adjustment simply divides the Type I error rate (.05) by the number of tests (in this case, three).
pairwise.t.test(simpsonData$simpsonIndex,simpsonData$group,p.adjust="bonferroni")
我们可以比较一下,它和TukeyHSD在结果上的差别:
其实结果是一致的,都说明C组与A组的差异显著。一般认为Bonferroni更保守。我们使用的函数可以参照:
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/pairwise.t.test.html
- Holm Adjustment
这篇文章指出,Holm Adjustment比Bonferroni更好,同样使用pairwise.t.test函数。
Ref: http://rtutorialseries.blogspot.jp/2011/03/r-tutorial-series-anova-pairwise.html
- The Fisher Least Significant Difference (LSD) method essentially does not correct for the Type I error rate
for multiple comparisons and is generally not recommended relative to other options.
library(agricolae) LSD.test()