基于R语言的多重比较方法 - 下载本文

4. SNK法(Student-Newman-Keuls)

实质上是根据预先制定的准则将各组均数分为多个子集, 利用Studentized Range分布来进行假设检验。推荐优先用Tukey检验

SNK法可用agricolae包中的SNK.test()函数实现,其调用格式为: SNK.test(y, trt, alpha = 0.05, …)

其中y为方差分析对象,trt为要进行多重比较的分组变量 R代码: library(agricolae)

# sweetpotato为agricolae自带数据集 data(sweetpotato)

#进行方差分析,分组变量为virus model

#进行多重比较,不矫正P值

out<- snk.test(model,"virus") #结果显示:标记字母法 out$group #可视化 plot(out)

程序运行结果与LSD.test类似。 5. Turkey检验

使用学生化的范围统计量进行组间所有成对比较。Tukey的检验特点: 所有各组的样本数相等; 各组样本均数之间的全面比较; 可能产生较多的假阴性结论。

R中Turkey检验检验的函数为TukeyHSD(model),其调用格式为: TukeyHSD(model)

其中model为方差分析对象 R代码:

tuk=TukeyHSD(model) tuk plot(tuk) 程序运行结果:

可视化结果:

6.Duncan法(新复极差法)(SSR)

指定一系列的“range”值,逐步进行计算比较得出结论。

Duncan法可用agricolae包中的duncan.test()函数实现,其调用格式为: duncan.test(y, trt, …)

其中y为方差分析对象,trt为要进行多重比较的分组变量 R代码:

# model为方差分析对象

out<-duncan.test (model,"virus") #结果显示:标记字母法 out$group #可视化 plot(out)

程序运行结果与LSD.test类似。 7. Scheffe检验

为均值的所有可能的成对组合执行并发的联合成对比较。使用F取样分布。可用来检查组均值的所有可能的线性组合,而非仅限于成对组合。Scheffe检验特点:

各组样本数相等或不等均可以,但是以各组样本数不相等使用较多;

如果比较的次数明显地大于均数的个数时,Scheffe法的检验功效可能优于Bonferroni法

Scheffe法可用agricolae包中的scheffe.test()函数实现,其调用格式为: duncan.test(y, trt, …)

其中y为方差分析对象,trt为要进行多重比较的分组变量 R代码:

# model为方差分析对象

out<-scheffe.test (model,"virus")

#结果显示:标记字母法 out$group #可视化 plot(out)

程序运行结果与LSD.test类似。