shenwl的个人博客分享 http://blog.sciencenet.cn/u/shenwl

博文

Multiple Testing Correction

已有 8415 次阅读 2017-3-13 18:47 |系统分类:科研笔记

这么多年了,被p值折磨得死去活来…

检验,多重检验

组学研究,实际把生命科学带入了大数据时代,对统计学的要求越来越高。面对一个又一个的样本,一个接一个的实验,万一科学假设太离谱,或者手抖做的糙,怎么能知道数据结果是不是碰巧成功的?为此,p值频频出现在各种组学数据分析中,RNA-seq、ChIP、GWAS等等等等,研究者最关注的都是p<0.05。看似美好的背后,却最容易忽略一个事实:p值是针对单次实验做假设检验,而组学数据往往是同时进行多次检验。比如RNA-seq寻找差异表达的基因,实际上进行的假设检验是:基因A是否有差异?基因B是否有差异?基因C是否有差异?…xkcd有个漫画讽刺了这件事(我稍稍修改了原图排版):xkcd如果取0.05作为p的阈值,大概每20次实验就能得到一个具有显著性差异的结果,换句话讲,即便所有的实验结果实际上都是非显著的,但你依然有64.15%的可能性“观测”到至少一个“显著差异”的结果:


p(at least one significant result)=1p(no significant results)=1(10.05)200.6415


而在组学数据中,要做数以万计的检验,其中可能出现的假阳性结果的比例不容小觑。


调整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为实际为真的零假设总数):


FWER=P{i=1n0(piαn)}i=1n0{P(piαn)}n0αnnαn=α


Bonferroni方法提供了全局校正,可以看到,对于漫画中的例子,在Bonferroni校正下,


p(at least one significant result)=1(10.0025)200.0488


完美地将阈值控制在0.05。然而这种方法在实际应用中过于严格,特别是对于大规模组学数据,可能导致假阴性率的上升。为此,我们可选用另一种阈值方法FDR。

FDR最早于1995年由Benjamini和Hochberg提出,其定义是“被错误拒绝的零假设数除以所有被拒绝的零假设数”的期望。他们的方法也很简单,针对给定的原阈值α,将p1,...,pn按从小到大排序后,找到最大的正整数k,使得pkknα即可。

性价比

除了上面介绍的两种方法外,还有诸如Storey的q-value等其它算法,有些做分布估计,有些有参数控制。其实无论是对于p值还是fdr之类,计算方法和阈值的选取从来都是为了考虑性价比,xkcd还有个漫画嘲笑了人们对p值的选取:xkcd假阳性和假阴性是大数据处理必须面对的问题,如何更好地取舍就仁者见仁智者见智了。

原文链接:https://wenlongshen.github.io/2017/03/12/Multiple-Testing-Correction/



https://wap.sciencenet.cn/blog-543513-1039242.html

上一篇:Single Nucleotide Polymorphisms
下一篇:Circos基础(1)
收藏 IP: 218.241.202.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-17 08:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部