前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅议P值校正

浅议P值校正

作者头像
数说君
发布2018-04-08 15:50:41
6.4K0
发布2018-04-08 15:50:41
举报
文章被收录于专栏:数说工作室

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则比较中肯。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数说工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档