邓肯(Duncan)多重假设检验
使用原因
方差分析的结果只有两个,显著和不显著,也就是说那么多个水平之间是否有差异。如果有差异,随之而来的问题就是,到底是哪对水平之间有差异呢?Duncan解决了这个问题。
目的
p级极差的定义
统计量及其分布
检验原理
r(p,f)分布的Monte Carlo模拟
检验步骤
r语言代码
这里使用sweetpopato数据集作为示例。这是一个土豆在不同病毒下产量的一个数据集,第一列为virus,即方差分析中的因子为virus,水平即为这一列中出现的几个值,第二列为yield,即产量,也是方差分析中的响应变量。duncan.test
这个函数在agricolae包里,如果没有这个包需要下载一下。
在使用duncan.test
函数之前需要先做一个方差分析,如果方差分析显示不同水平之间有显著差异,才可以做多重假设检验! 接下来将方差分析的结果传递给duncan.test
中的参数y。
library(agricolae)
data(sweetpotato)
model <- aov(yield ~ virus, data = sweetpotato)
duncan.test(y = model,trt = "virus", alpha = 0.01,
group = FALSE, console = TRUE,
main ="Yield of sweetpotato. Dealt with different virus")
y
:方差分析结果。trt
:水平名称alpha
:显著性水平group
:是否以分组的形式展现结果console
:是否在控制台中展示输出main
:名称,如果设置在控制台中输出的话,main中设置的字符串会展示在第一行作为标题
可以看出这个例子中不同种类的病毒对土豆产量的影响是有显著差异的。接下来使用duncan.test
去看哪些病毒之间是有显著差异的。
这是group=FALSE
时控制台输出的结果,其中
Mean Square Error
表示MSe。virus, means
给出了几个水平下产量的一些描述统计量(yield
表示的是均值),se
表示的是 M S e m \sqrt{\frac{MSe}{m}} mMSe 。-
相连的即为比较的两个水平,看它们对试验结果也就是土豆产量是否有显著差异。duncan.test
函数并没有按照顺序去进行对比。difference
表示两个水平均值的差。pvalue
表示p值。signif
表示显著性程度
这是group=TRUE
时控制台输出的结果,其中alpha
表示设置的显著性。DF Error
表示 f e f_e fe,也就是误差的自由度。Critical Range
表示显著性极差的临界值(但这里与我手算下来的结果其实是有一定差距的)。groups
表示分组,具有相同字母的表示彼此之间无显著差异,不同字母的表示对试验结果的影响有显著差异。