浅议P值校正

P值,通常被我们用来判断是否接受一个假设,关于P值的前世今生,可以看数说君的了一篇文章《P值之死》,在微信公众号中回复“P值”查看。本篇不说P值本身的问题,我们来看它在具体判断中可能出现的另一个问题。

本文目录为:

一、背景

二、问题

三、Bonferroni校正

四、FDR校正


一、背景

先来熟悉一下我们问题的背景。我们知道在假设检验中,有两种错误:拒真错误和取伪错误。

我们用分布图来更形象的说明,不要紧张,非常形象非常好懂的。现在有一些样本,我们打算判断这些样本是来自H0还是H1,。那么

  • 原假设: H0:u=0;
  • 备择假设:H1:u>0

两个假设下的总体分布如下图:

好了,那么什么是第一类错误和第二类错误呢?

(看不清楚的话点开查看大图)

对了——通过样本得到的Z-value如果大于Zα,我们一般都拒绝原假设,但是它却有一定概率(概率为α)来自H0的,这就是第一类错误,见红字部分。第二类错误就是β,见绿字部分,下面重点是围绕第一类错误α展开,因为它是个大咖。

这个α,我们又把它叫做——显著性水平!假设检验就那这个作为标准。

为什么呢?

一般在做假设检验的时候都要求这个α尽可能的小,因为在假设检验我们通常认为原假设是不能轻易被否定的。

我们的P值就是跟这个标准做比较,我们通常把α取为0.05,复习一下吧:

  • P<α=0.05,则拒绝H0;
  • P>α=0.05,不能拒绝H0;

这个标准,意味着我们要承担α=5%的错误拒绝的概率。

至于P值是怎么来的,为什么用P值和α相比来判断,可以去看《P值之死》,里面已经进行了详细的梳理。

二、问题

虽然数说君已经在《P值之死》中批判过了这种P与α判断方法的问题,但在这里,我们就认为这种方法是合理的。

对于一个检验问题:

  • 我们有5%概率犯第一类错误;
  • 也就是说,有95%的概率不犯第一类错误(不要打我,这不是废话);

假如现在,我要做20个相互独立的检验呢?

  • 不犯第一类错误的概率为 (1-5%)20 =36%
  • 至少出现一次第一类错误的概率为 1-36%=64%

这么大的概率让人难以接受,如果随着m再增加呢,要做100次?1000次?那么几乎可以肯定的说,必然会有至少1个结果是被错误地拒绝的了。

想象一下,你得意洋洋的看着你的100个检验结果,但是突然告诉你这100个里面必然有一个错了,而且你又不知道具体哪个是错的。。。

你可能会说,自打接触统计学这东西一来,对假设检验是能躲就躲能逃就逃,人生截止目前做过不超过10个检验,每一次做都要翻2个小时的书,现在你要我一次性做100个?没但玩?

有但玩。真的,比如现有下面这组数据,我们想分析X1-X20中,哪一个因素和人们的收入有显著关系:

我们做了20个检验,那么这里面就很可能有一个是碰巧显著。你可不要觉得我吃饱了撑的,因为在生物学中,我们要做更大的全基因组关联分析——全基因组?什么概念?——需要对几十万甚至几百万个SNP(单核苷酸多态性)与某个疾病进行单独检验,找出那个与疾病显著相关的SNP,也就是说,要做几百万个检验?!

怎么办???

我们把这个“至少有1个错误”的概率称为 FWER(Family-Wise Error Rate)

FWER (Family-Wise Error Rate)

= 1- (1- α)m

我们现在就想让这个整体犯第一类错误的概率降低为5%,怎么办?

Bonferroni校正的思想就是基于此而来。

三、Bonferroni校正

Bonferroni校正的思想很简单:

Bonferroni correction

假设我们做m个相互独立的检验,我要的目标是—— FWER = 1- (1- α)m =0.05 由于当α很小时,存在这一的近似关系 (1-α)m ≈ 1-ma,因此 1- (1- α)m = ma = 0.05 即α=0.05/m。 也就是说,每一个检验的显著水平不再是0.05了,而应该是0.05/m。对于每一个检验的P值,有:

  • P<α=0.05/m,我们才能拒绝H0;

这样我们就校正了显著水平,当然我们也可以让α保持不变,去校正P值:

  • P*m<α=0.05,我们才能拒绝H0;

也就是说,每一个检验做出来的P值,我们都要乘以m,叫做校正后的P值,然后去和0.05进行比较。

但是,随着检验次数m的增多,

  • 校正后的P值会越来越大,判定的标准越发的严格;
  • 同时,第一类错误概率是减少了,第二类错误的概率却增加了。

针对这样的问题,Benjaminiand Hochberg(1995) 提出了FDR校正方法。

四、FDR校正

Bonferroni校正关注的是,所有检验中的第一类错误检验(被错误拒绝的检验),而FDR的关注的是,所有拒绝掉的检验中,错误拒绝的检验,如果觉得绕口的话可以看下面的图:

一共有m个检验,其中最终选择接受原假设的有W个,拒绝的有R个,在拒绝的R个中,有V个是错误拒绝的,有S个是正确拒绝的。

FDR(Falsely Discovery Rate)的定义为:

实际上,FDR也就是错误拒绝的检验个数,占所有拒绝的检验个数的比例。它只关注所有拒绝掉的检验中,错误拒绝的比例,FDR的目的就是要将这个比例降低到α。

那么,该如何做到?很简单,参照下面的步骤即可:

FDR correction

首先,对m个p值按从小到大的顺序进行排序

从P(1)开始,到P(2)、P(3) ...,挨个进行比较,直到找到最大的P(i)满足:

找到之后,拒绝之前所有的原假设H(i),i=1,2,3...i。 至此,完成FDR的校正。 或者,保持α不变,将P值校正为mP(i)/i,这个值又称为Q值 Q-value(i) = m × P(i)/i < α

根据Benjaminiand和Hochberg的论文(1995)里的证明, 以上的过程就可以控制FDR在α以内。感兴趣的可以搜索这篇论文”controlling the False Discovery Rate: a Practical and Powerful Approach to Multiple Testing“。

举个例子吧,加入我们做个20个检验,每个检验有一个P值,那么我们分别用Bonferroni校正和FDR校正,得到的结果如下:

可以看出Bonferroni校正的结果要严格很多,FDR则比较中肯。

原文发布于微信公众号 - 数说工作室(shushuojun)

原文发表时间:2015-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器人网

工程师入门速成大法:15幅结构动图看懂机械原理

来自越南的设计师Nguyen Duc Thang使用Inventor绘制了经典的机械结构,并将其制作为动态仿真视频,这些机械结构有利于大家直观的了解机械。 1、...

6315
来自专栏大数据挖掘DT机器学习

文本挖掘:社交网络、社群划分

作者:Matt 自然语言处理实习生 http://blog.csdn.net/sinat_26917383/article/details/5144453...

4316
来自专栏大数据挖掘DT机器学习

详细步骤:用R语言做文本挖掘

目录 Part1 安装依赖包 Part2 分词处理 Part3文本聚类 Part4 文本分类 Part5情感分析 Part1 安装依赖包 R语言中中文分析的...

82712
来自专栏章鱼的慢慢技术路

解救小哈——DFS算法举例

2768
来自专栏CDA数据分析师

史上最全!国外程序员整理的机器学习资源

本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。 C++ 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 Ope...

26110
来自专栏CreateAMind

Keras和DDPG玩赛车游戏(自动驾驶)

这里,s是状态,a是行为/动作,θ是策略网络的模型参数,π是常见的表示策略的符号。我们可以设想策略是我们行为的代理人,即一个从状态到动作的映射函数。

4662
来自专栏CVer

TensorFlow从入门到精通 | 预告篇

[TensorFlow从入门到精通]系列课程既包含TensorFlow的基础知识点(如Graph),还有卷积神经网络、模型的保存和恢复、迁移学习、Fine-Tu...

1414
来自专栏Y大宽

Cytoscape插件7:MCODE

MCODE,Molecular COmplex Detection 发现PPI网络中紧密联系的regeions,这些区域可能代表分子复合体。 根据给定的参数...

9532
来自专栏大数据挖掘DT机器学习

文本自动分类案例(源码)

使用机器学习方法 做文档的自动分类 套路: 1.根据每个文件 生成该文件的一个特征 2.根据特征 选择 分类器 进行文本分类 3.(可选)根据 2 步结果,调...

46312
来自专栏图形学与OpenGL

机械版CG 实验6 简单光照明模型实现

Phong光照明模型是由物体表面上一点P反射到视点的光强I为环境光的反射光强Ie、理想漫反射光强Id、和镜面反射光Is的总和,即

1201

扫码关注云+社区

领取腾讯云代金券