• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言组间多重比较

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在用R语言做统计分析时,有时会涉及到多组之间的均数、频数比较。TableOne给我们提供了多组间整体的比较方法(Default ...)

在做组间的比较时有几种常用的方法,根据实验设计的不同合理选择不同方法才是正解!

Show time!

> 先来看一个数据示例

data <- data.test


其中 A B C 是分类变量, D E F是连续变量。我们先用TableOne来做一下基本的统计:

library(tableone)
var <- c('A', 'B', 'C', 'D', 'E', 'F')
result <- CreateTableOne(data.yazhou, vars = var, strata = 'group')

result2 <- print(result)


结果给出了多组间整体的比较,接下来介绍多重比较的方法


1. LSD检验

是t检验的简单变形,对多组间的均数做检验。

用法:加载agricolae包,使用LSD.test。语法为:LSD.test(y, trt, DFerror, MSerror, alpha = 0.05, p.adj=c("none","holm","hommel", "hochberg", "bonferroni", "BH", "BY", "fdr"), …)

实例:

library(agricolae)

model <- aov(jinzhongpin ~ group, data.yazhou) # 先进行方差分析

summary(model)

out <- LSD.test(model, "group", p.adj = "none" ) # 进行多重比较,不矫正P值

out$groups # 查看每个组的label

plot(out) # 可视化展示


注:将LSD.test中p.adj设置为"bonferroni"即为bonferroni检验法, 意用bonferroni法矫正p值。


2. Dunnett检验

适用于多个试验组于一个对照组的比较。

用法:加载multcomp包, 使用glht()函数。语法为:glht(model, linfct, alternative = c("two.sided", "less", "greater"), ...)

其中linfct可以设置比较的分组变量以及检验方法。

实例:

# Dunnett test
library(multcomp)
model <- aov(D ~ group, data.yazhou)
rht <- glht(model, linfct = mcp(group = 'Dunnett'), alternative = 'two.side')

summary(rht)


3. Turkey检验

使用t test进行组间所有成对比较。

用法:TukeyHSD函数,语法:TukeyHSD(model)

实例:

model <- aov(D ~ group, data.yazhou)

tuk <- TukeyHSD(model)

tuk
plot(tuk)



4. SNK法(Student-Newman-Keuls)

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

SNK法可用agricolae包中的SNK.test()函数实现,其调用格式为:

SNK.test(y, trt, alpha = 0.05, …) 

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

实例

library(agricolae) 

data(sweetpotato) 

model <- aov(D ~ group, data.yazhou)

out <- snk.test(model,"group")

out$group 

plot(out) 

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


5.Duncan法(新复极差法)(s-s-r)

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

Duncan法可用agricolae包中的duncan.test()函数实现,语法为:

duncan.test(y, trt, …) 

实例:

model <- aov(D ~ group, data.yazhou)

out <-duncan.test (model,"group")

out$group 

plot(out) 

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

6. Scheffe检验

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

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

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

Scheffe法可用agricolae包中的scheffe.test()函数实现,语法为:

duncan.test(y, trt, …) 

实例:

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

out$group 

plot(out) 

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap