基于R语言的多重比较方法.docx
- 文档编号:9684592
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:12
- 大小:377.19KB
基于R语言的多重比较方法.docx
《基于R语言的多重比较方法.docx》由会员分享,可在线阅读,更多相关《基于R语言的多重比较方法.docx(12页珍藏版)》请在冰豆网上搜索。
基于R语言的多重比较方法
基于R语言的七种多重比较方法
一花视界
百家号10-1403:
18
多重比较的方法很多,根据试验设计的目的不同有不同的应用。
若试验设计之初,便明确要比较某几个组均数间是否有差异,称为事前比较。
常用的事前比较方法有LSD、Bonferroni和Dunnett法。
若研究目的是方差分析有统计学差异后,想知道哪些组间的均数有差异,便是事后比较。
事后比较的常用方法有SNK、Turkey、Scheffe和Bonferroni法。
本文仅介绍7种方法及R语言函数,可解决绝大部分多重比较问题。
1.LSD法
LSD法即最小显著差法;该法一般用于计划好的多重比较。
它其实只是t检验的一个简单变形,并未对检验水准做出任何校正,只是为所有组的均数统一估计了一个更为稳健的标准误。
LSD法比较效果较为灵敏,在R语言中可利用agricolae包中的LSD.test函数实现,其调用格式为:
LSD.test(y,trt,DFerror,MSerror,alpha=0.05,p.adj=c("none","holm","hommel","hochberg","bonferroni","BH","BY","fdr"),…)
其中y为方差分析对象,trt为要进行多重比较的分组变量,p.adj可以选定P值矫正方法。
当p.adj=”none”时,为LSD法,p.adj="bonferroni"时为Bonferroni法。
R代码:
library(agricolae)
#sweetpotato为agricolae自带数据集
data(sweetpotato)
#进行方差分析,分组变量为virus
model
#进行多重比较,不矫正P值
out<-lsd.test(model,"virus",=""p.adj="none")
#结果显示:
标记字母法
out$group
#可视化
plot(out)
程序运行结果:
从运行结果看,四个处理,oo和ff处理无差异,与cc和fc彼此差异显著。
下图是可视化结果。
2.Bonferroni法
它是Bonferroni校正在LSD法上的应用。
将LSD.test中p.adj设置为"bonferroni"即为Bonferroni法。
R代码:
library(agricolae)
#sweetpotato为agricolae自带数据集
data(sweetpotato)
#进行方差分析,分组变量为virus
model
#进行多重比较,不矫正P值
out<-lsd.test(model,"virus",=""p.adj="bonferroni")
#结果显示:
标记字母法
out$group
#可视化
plot(out)
运行结果与LSD法类似,不再展示。
3.Dunnett检验
用于多个试验组与一个对照组间的比较。
R语言中可利用multcomp包中的glht()函数进行包括Dunnett检验在内的多种检验,其调用格式为:
glht(model,linfct,alternative=c("two.sided","less","greater"),...)
其中model为方差分析对象,linfct设置要进行多重比较的分组变量和方法。
R代码:
library(multcomp)
rht<-glht(model,=""linfct="mcp(virus"=="""dunnett"),alternative="two.side")
#model是方差分析对象
#virus是分组变量
#方法为Dunnett
summary(rht)
#可视化
plot(rht)
程序运行结果:
结果表明:
三个处理均与对照cc差异显著。
下图为可视化结果:
4.SNK法(Student-Newman-Keuls)
实质上是根据预先制定的准则将各组均数分为多个子集,利用StudentizedRange分布来进行假设检验。
推荐优先用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类似。
渺渺红尘,茫茫人海,没有过早,也没有太晚,遇见的自然是恰逢其时。
有人说,这世间的所有相遇,都是久别重逢。
惟有父母与子女,是为了别离。
父母为自己付出的,永远是百分之百的绵绵恒爱。
每当看到满头如雪,弯腰驼背,步履蹒跚的父亲母亲,总会不由自主地想起,他们曾用最纯朴、最勤劳的方式为自己撑起过一片天,现如今却是衰老伴着他们走过一年又一年。
于父母眼里,自己就像飘在天空的风筝,无论飞得多高多远,他们也舍不得松开牵挂的那根线。
这种深厚的爱,若高山阔海,就算用一辈子的时间,恐怕也回馈不完.想来那句:
你养我长大,我陪你变老,应是最好的报答。
记得一首《友情》的歌,里面那段歌词格外打动人:
友情,人人都需要友情,不能孤独,踏上人生的旅程……
听完,特别想感谢那些出现在自己不同人生阶段的朋友,感谢这一路上你们给予的支持和鼓励。
此生何其幸运,能成为彼此的亲密挚友。
除了家人,最熟悉我的还有你……
童年,一起玩耍嬉戏;少年,一起努力学习;青年,互相聆听各自的小秘密;愿中年的彼此,都能好好保重自己;愿我们老的时候还能一起喝茶、一起聊聊不太完美的却又共同参与过的往昔。
人生能有三五知己,懂得自己,足矣!
佛说,每一次相遇都是一场修行。
想必爱情更是如此。
于风雨兼程的人生里,在五味杂陈的生活中,谁是谁的月下客,谁是谁的心上人,谁与谁会一见倾心,谁与谁能相伴到岁末晚景,凭的就是一份缘。
感谢即将成为自己人生中最亲爱的你,相遇是缘,相恋是爱,相守是情。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 多重 比较 方法