|
这么多年了,被p值折磨得死去活来…
检验,多重检验
组学研究,实际把生命科学带入了大数据时代,对统计学的要求越来越高。面对一个又一个的样本,一个接一个的实验,万一科学假设太离谱,或者手抖做的糙,怎么能知道数据结果是不是碰巧成功的?为此,p值频频出现在各种组学数据分析中,RNA-seq、ChIP、GWAS等等等等,研究者最关注的都是p<0.05。看似美好的背后,却最容易忽略一个事实:p值是针对单次实验做假设检验,而组学数据往往是同时进行多次检验。比如RNA-seq寻找差异表达的基因,实际上进行的假设检验是:基因A是否有差异?基因B是否有差异?基因C是否有差异?…xkcd有个漫画讽刺了这件事(我稍稍修改了原图排版):如果取0.05作为p的阈值,大概每20次实验就能得到一个具有显著性差异的结果,换句话讲,即便所有的实验结果实际上都是非显著的,但你依然有64.15%的可能性“观测”到至少一个“显著差异”的结果:
而在组学数据中,要做数以万计的检验,其中可能出现的假阳性结果的比例不容小觑。
调整p值
p值本身并没有错,其原本常用的阈值(0.05、0.01)也只是为了在假阳性率和假阴性率之间做平衡。只是在多重检验中,传统阈值变得过于松弛,于是研究者们提出了各种各样新的阈值方法,如校正p值(adjusted p-value)、q值(q-value)、错误发现率FDR(false discovery rate)等,计算方法虽不同,但其目的是一致的:让实验结果更为可信。
Bonferroni校正就是一个简单常用且暴力的方法,为控制整体(共n个检验)犯第一类错误的可能性保持在原阈值α,则将α/n作为单个检验的阈值。推导如下(其中p1,...,pn为每一检验相对应的p值,n为零假设总数,n0为实际为真的零假设总数):
Bonferroni方法提供了全局校正,可以看到,对于漫画中的例子,在Bonferroni校正下,
p(at least one significant result)=1−(1−0.0025)20≈0.0488,
完美地将阈值控制在0.05。然而这种方法在实际应用中过于严格,特别是对于大规模组学数据,可能导致假阴性率的上升。为此,我们可选用另一种阈值方法FDR。
FDR最早于1995年由Benjamini和Hochberg提出,其定义是“被错误拒绝的零假设数除以所有被拒绝的零假设数”的期望。他们的方法也很简单,针对给定的原阈值α,将p1,...,pn按从小到大排序后,找到最大的正整数k,使得pk≤knα即可。
性价比
除了上面介绍的两种方法外,还有诸如Storey的q-value等其它算法,有些做分布估计,有些有参数控制。其实无论是对于p值还是fdr之类,计算方法和阈值的选取从来都是为了考虑性价比,xkcd还有个漫画嘲笑了人们对p值的选取:假阳性和假阴性是大数据处理必须面对的问题,如何更好地取舍就仁者见仁智者见智了。
原文链接:https://wenlongshen.github.io/2017/03/12/Multiple-Testing-Correction/
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-31 20:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社