打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R 自动显著性标记

问题

在多重比较后如何用R代码实现显著性的自动标记?以下R包都具有该功能,可自行百度检索:ggsignifpackage、ggpubrpackage、ggstatsplotpackage、rcompanionpackage

rcompanion

我比较熟悉rcompanionpackage中的cldList()功能进行显著性标记,今天就先讲讲这个。

  • 查看帮助文档

?cldlist

要注意的一点是:标字母法,一般应该从均值或者中位数最大的一组开始标,而这个cldList()并不是默认对其排序,因而在作图前需自己排个序

示例

  1. 示例数据:

mpg {ggplot2},加载ggplot2之后就可直接调用(我并没有仔细看其含义,仅做示例😂,感兴趣的可自行查看帮助文档,本次选择其中的连续变量hwy和分类变量class进行演示)

  1. 数据具体情况
数据具体含义
所选变量

ps:可按图中所示进行数据摆放,每列为一个变量,行为样本

  1. 筛选出所需数据,并修改列名为xy,先对整体进行组间差异显著性检验
library(car)
library(rcompanion)#引入`cldList()`功能
library(FSA)#引入`dunnTest()`功能
dat <- mpg[,c("class","hwy")]
colnames(dat) <- c("x","y")
# 残差正态性检验
mod1 <- lm(y~x,data = dat)
shapiro.test(resid(mod1))
#方差齐性检验
leveneTest(y~x,data = dat)

不满足单因素方差分析的前提条件,选用Kruskal-Wallis rank sum test

kruskal.test(y~x,data = dat)#差异显著

5.多重比较及可视化

  • 多重比较
#Dunn (1964) Kruskal-Wallis multiple comparison
#p-values adjusted with the Bonferroni method.
mc <- dunnTest(y~x,data =dat,method ="bonferroni")
#Compact letter display
cld <- cldList(P.adj~Comparison,
               data = mc$res[order(mc$res$Z,decreasing = TRUE),],#对数据进行排序
               threshold = 0.05 ) 
library(dplyr)#引入`top_n()`功能
m <- dat %>% group_by(x) %>% top_n(1,y)#获得每一组的最大值
cld <- merge(cld,m,by.x = "Group",by.y = "x")#合并成一个数据框
cld
  • 绘图
#绘图
library(ggplot2)
library(ggsci)
(p <- ggplot(data = dat,aes(x=x,y=y))+
  geom_boxplot(aes(fill=x),color="black")+#以箱形图展示,按分类变量x填充不同的颜色
  geom_text(data=cld,
            aes(x=Group,y=y*1.3,label=Letter),#让字母位置比每组最大值高1.3倍,避免重叠
            size=5,color="red",fontface="bold")+
  scale_fill_jama(alpha = 0.8)+#修改填充颜色
  theme_bw()+
  labs(x="class",y="hwy"))

其余方法,后续再写吧🤣

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言绘制PCA的那些事
ggplot2 分组箱线图图绘制方法
一个通路居然在上下调基因集里面都富集到了
R语言中的Theil-Sen回归分析
字符型、数值型和因子型数据之间的转换
堆叠柱状图也要做统计-标记显著性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服