查看原文
其他

差异显著性标记“*”或“abc”的标注方法

生信小白鱼 鲤小白 小白鱼的生统笔记 2022-05-08
差异显著性“*”或“abc”的标注方法

通过显著性分析(如多重比较)我们比较了组间数值是否存在显著差异。对于数据分布,我们一般会将它们可视化呈现,例如柱状图箱线图等,必要时也会将显著性水平在图中标注出。

先前的几篇文章已经对几种基本的显著性分析方法在R语言中的实现过程作了初步简介,如T检验Wilcoxon检验方差分析非参数检验等。后面还会针对特定的生物学问题,介绍更多的方法。在此之前,本篇将带来如何在统计图中添加显著性标记的策略。

本篇只讲概念,文中相关的R代码将在下一篇分享。


显著性标识的标记过程


对于显著性水平的标注,常见两种样式,一种是“*”,另一种是“abc”。


显著性“*”标注

  

这个大家应该都没啥疑问吧,通常情况下,根据显著性p值的数值,分为3个水平:

(1)0.01≤p<0.05,标注“*”;

(2)0.001≤p<0.01,标注“**”;

(3)p<0.001,标注“***”;

无论参数型检验还是非参数型检验都通用。


比方说,在这个柱状图中,A和B的p值为0.035,B和C的p值为0.0056,A和C的p值为0.00002,则就可以这样表示。


显著性“abc”标注


对于参数检验

参数检验,如在多重比较中,对于“abc”的标注,需要同时结合显著性水平以及均值等信息。默认做法如下:

(1)首先根据均值大小,将各组由高往低排排序,均值最高的组标注为“a”;

(2)将均值最高的组与第二高的组相比,若差异显著,则第二组标注为“b”;若不显著,继续比较其与均值第三高的组的差异;

(3)若均值最高的组与第二高的组不显著,均值第二高的组与第三高的组显著,则第二高的组就同样标注为“a”,第三高的组标注为“b”;若均值最高的组与第二高的组不显著、均值第二高的组与第三高的组不显著,但均值最高的组与第三高的组显著,则第二高的组就标注为“ab”,第三高的组标注为“b”;

(4)然后以标注为“b”的组的均值为标准,以此类推,继续循环往后比较,直到最小均值的组被标记,且比较完毕为止。

在这种模式下,只要两组间达到显著性差异水平,即为一个层级;对于显著性差异到底多大,并不是很侧重。

 

比方说,某数据包含A、B、C、D、E、F共6组数据,通过显著性差异检验后,所得各组间差异分析结果如下。

我们定义p<0.05即为有显著性,据此在柱状图中标准显著性“abc”水平,如下示例。

上图标注显著性abc时,由最大值从a开始,逐渐往小值标注b、c等。而有时候我们也会见到这种反过来的,如下图所示,由最小值从a开始,逐渐往大值标注b、c等。不要认为反过来就算错误的,只是更普遍的习惯是由大值逐渐往小值标注,所以上图更为常见而已,但是下图的展示方法也是正确的。


对于非参数检验

上述的“abc”标注方法主要针对于像多重比较这种参数型的检验,参数检验容易理解,它们比较的是均值差异。但是对于非参数的检验来说,由于它们所关注的一般不是均值、标准差那些,再根据均值大小和显著性去标记“abc”就不是很合理的方法,此时需要注意更换排序的标准。

某些非参数检验,例如Wilcoxon检验这些,它们的比较方法可以认为是关注的分位数(中位数)差异,这种也比较好理解,可通过结合中位数的高低以及显著性p值等去判断,如此可获得“abc”水平。

但是有些非参数方法可能不便通过单一的指标(如分位数)评判“高低水平”,如置换检验这种,除非数据分布的高低水平非常明显,否则将很难通过“abc”表示出。

 

如果采用“*”表示法,将两两分组的显著性全部呈现出,分组少的时候还好说,标注两两差异也不算麻烦;但是当分组多的时候,就不再建议以图形的方式表示了,建议附张统计表,以表格的形式记录两两分组间的差异。

如下所示,展示了5组数据之间的置换多元方差分析的结果。


R语言的处理


R语言统计


对于“*”没什么好说的了,基本上显著性分析函数都会在p值后面自动为你标识出来,例如下面这个双因素方差分析的结果。就算手动标注也很容易了。


对于“abc”这种,R中存在一些包,可直接基于单因素方差分析后的多重比较结果,自动标注“abc”水平。例如multcomp包的cld()函数,可见前文“单因素方差分析与多重比较”。


但是这些函数方法主要还是针对参数检验而言的,毕竟就参数检验而言,无论测试数据的分布还是方法本身,都比较“标准”,处理起来也很简单方便。

对于非参数检验,不好意思本人没找到能自动标注“abc”水平的包……大家可以试着自己找下。也可能是非参数的方法处理起来不那么方便吧。但是我们大可以手动去标记,正如上文所述的那样,对于比较“直观”的非参数检验方法,比方说比较中位数差异的那种,根据中位数的高低以及显著性p值去判断;搞不清楚原理的,建议不要冒险使用“abc”,还是用“*”表示,分组多的话更换为表格展现。


R语言作图


正常情况下,数据分析和作图是两步分开的过程。

我们首先对数据进行显著性分析,得到组间差异p值;然后再通过一系列的处理函数也好,或者手动识别标注也好,得到“*”或“abc”水平。

然后再通过作图包,绘制统计图展示数据分布,然后再额外将上一步得到的“*”或“abc”水平标注在图中。

你可以自写R代码,将这两步串联起来。由于本篇只讲概念,在下一篇,我将继续分享一个结合两步的R脚本。

 

如果你已经手动标记好显著性了,只差作图了,如果你习惯ggplot2作图,前文我在“分组柱状图”和“箱线图提琴图”中提到过ggplot2如何在绘制统计图的同时添加显著性标记。其它方法,比方说只绘制无显著性标记的统计图,然后输出到本地后再使用AI、PS等工具“P上去”也是挺方便的。



链接

R语言绘制箱线图

R语言绘制带误差线的分组柱状图

R包vegan执行非参数多元方差分析(置换多元方差分析)

R包rcompanion执行非参数双因素方差分析(Scheirer-Ray-Hare检验)

R包sm执行非参数单因素协方差分析

R语言执行非参数单因素方差分析(Kruskal-Wallis检验、Friedman检验)

R语言执行多元方差分析

R语言执行双因素方差分析

R语言执行单因素协方差分析

R语言执行单因素方差分析及多重比较

R语言执行两组间差异分析Wilcoxon检验

R语言执行两组间差异分析T检验



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存