研究论文里的 P = 0.005 究竟是啥 ?
前言
谈及 P-value,我们还是先说说它被定义的情景吧 - 零假设测试。
零假设测试这个别扭的中文翻译来自 Null Hypothesis Significance Test。
这个测试是什么和怎么做呢 ?倒不如先说说这个测试是在什么问题背景下被发明的吧。
真正的因素
很多科学实验是通过比较进行的。这里举个例子:设置两组人群,其中一组定期服用某种增强免疫力里的药物,另一组正常生活。一年后,我们比较两组人群过去一年生病的次数。
然后我们发现服用药物的人群过去一年平均生病一次,另一组平均生病两次。
这时候,研究人员就在想,那我们能不能下这个结论呢:免疫力药降低了人们生病的频率。
为什么会迟疑呢,因为他们所观察到的(生病频率)实际上受很多因素影响,比如:
- 药确实提高了人们的免疫力。(也是他们希望证明的假设)
- 服药的人们天生的免疫力刚好更强。
- 服药的人们生活环境和方式比另一组人更健康。
真实的原因可能是这其中之一,可能是其他的,也可能是这其中几个共同造成的。
啊这可怎么进行判断呢 ?这篇文章想讨论的做法自然是利用概率分析各种因素的可能性啦。
说到概率,我们该用贝叶斯理论呢,还是用频率学派的理论呢 ?
答案是都可以,它们只不过是不同的思维方式,都是可信服的。
贝叶斯的假设分析
在 测量硬币偏差 的文章里,我描述了重复实验,获得大量数据,反复更新每个假设(偏差为X)的概率的方法。重点是,更新的方法依赖于贝叶斯定理。
贝叶斯公式的计算依赖于先验概率,和当前假设导致观测数据的可能性(Likelihood)。
但频率学派可不赞同使用先验概率的做法,他们发明了新的判断假设的做法。
随机因素
现实中其实我们常遇到这样的问题,要推测一件事真实的原因,而列出一大串的各种可能的假设,却无从下手,而且感到犹豫和困惑。
这里提供一种思路,倒不如试试把各种因素的假设换个角度分类来看。
比如对于上面的问题,假设2和3其实都是对实验随机性的描述:
- 我们恰好找了些免疫力强的人,又恰好把他们分到了服药的组里。
- 我们恰好找了些生活环境好的人,又恰好把他们分到了服药的组里。
然后呢,把这些假设合并起来,统称为 “随机因素”。而与之对立的,也就是剩下的那个我们感兴趣的假设,比如这个问题里的 “药物起了作用”。
这种对随机因素假设,也就是人们各种实验中最常用的零假设(Null Hypothesis)啦。
零假设
严格来说,零假设这个词,一定是相对于一个备择假设(Alternative Hypothesis) 来定义的。
比如在前一个例子中,如果我们把假设1看作一个备择假设,它对应的零假设便是 “药无法提高人们的免疫力”。这种情况下,人们通常直接把零假设写成 “观察到的生病频率完全由随机因素导致”。
P-Value
当零假设被定义后,下一个需要思考的便是,假若零假设成立,我们应该获得什么样的样本数据。
就上面的例子来看,若药物无效,实验结果应该是两组人生病频率相同,而也就是说,我们真正观察到的现象:服药的人生病频率更低,完全是由这个实验中的某些随机因素导致的。
那也就是说,如果我们观察到了比现有样本更离谱 / 极端 / 偏离期望的样本,将也是随机性导致的。
那么咱碰上这种巧合的概率是多少呢 ? 那么下一步就是计算这个巧合的概率,它也就是 P-value
P-value = P(观察到与样本同等或更极端的数据 | 零假设成立)
P值的意义
等一下,咱为啥要计算这个概率呢 ?或者说,计算出的数字能说明什么呢 ?
倒不如举几个例子,假设我们计算完发现它是一个很小的数,0.03,这说明什么呢 ?
说明:零假设成立时,获得当前观察数据(甚至比此更离谱的)的概率只有3% - 按频率学派的要求,准确的说法应该是,若我们进行无数次观察,只有3%的观察结果会呈现当前这样(或更离谱)的数据。或者说,采样的随机性导致了3%的观测样本偏离人的预期。
(这里的预期指,群体在没有随机性时,反复取样所呈现的稳定数值。)
也就是说,随机因素对咱获得离谱数据的影响还蛮小的。咱应该能接受原假设(药物提高了人免疫力)吧 ?
是的,发明零假设测试的人(Fisher)也这么认为:若计算出的P值太小,则应该否决(Reject)当前的零假设,而接受备择假设(原假设)。
也有人说,P值衡量了样本数据对零假设的支持 / 兼容程度。支持程度很小时(低于某一阈值),我们就可以否决零假设,而接受原假设。
阀值
Hmmm,似乎还是不够具体,P值多小才能算小呢 ?
Fisher 在提出这个测试时,推荐的是 0.05,尽管他也没有提出令人信服的数学证明XD,但人们长期以来发现0.05还不错,就继续用吧。当然啦,你也可以用更小的值。
这里我们选的阀值(Threshold)也常被称为Alpha值。
测试过程
到此讲解了定义零假设,选择阀值,计算P-Value,和计算出P值该怎么做。我们再回顾一下整个测试:
先找到感兴趣的假设,作为备择假设,然后用它的反义句定义零假设。
选好阀值,并向自己承诺,当之后计算出的P-Value低于它时,我们就拒绝零假设。
计算 P-Value,一个条件概率,再根据结果拒绝,或者接受(否决备择假设)。
两种测试错误
每一个(对于导致观测结果的因素的)假设都有它对应的零假设。
在上面的免疫药例子里,我们做了3个导致所观察现象(生病频率)的因素的假设。而实际上,这样的假设还有很多。也就是说,如果有时间的话,我们可能对每一个可能的假设,都做一次零假设测试。
想象一下,如果我们真的这么做了之后,大概会是这样:我们拒绝了一些零假设,也接受了一些。
频率学派很喜欢这么想:从上帝(因为他知道哪些假设为真,哪些为假)的角度来看,我们在做这一堆测试时,犯了两种错误:
- Type-1: 我们拒绝了一些正确的零假设
- Type-2: 我们没拒绝(接受了)一些错误的零假设
在统计学中,第一种错误常被称作 False Positive(错拒了),而第二种是 False Negative(没拒错的)。
解读阈值和P值
再进一步讨论这两种错误前,有必要先思考一下阈值和P值究竟代表了什么。
阈值也被称作统计显著性。我们该怎么解读这个阀值呢 ?
我觉得也许可以这么理解阈值:它描述了,对于正确的(尽管人们测试时不知道)零假设,观测到现有数据的离谱程度 / 随机性的容忍程度 。
比如阀值为0.05时,对于那些被拒绝的正确零假设,我们在测试前后并不知道真假,但它们在测试计算时,都得出了不到5%的P值,意味着现有样本数据对这些零假设的支持程度很低,倒不如把导致这种样本数据的原因归为实验(人群)的随机性。
比如当阈值设为0.5,那么只要P值在0和0.5之间,零假设都将被拒绝,原假设都将被接受。这样的测试意味着:测试者对随机性的容忍程度是相当高的。测试者觉得随机性能够导致至多50%的数据偏离期望。
比如当阈值设为0.01时,任何大于0.01的P值,零假设都将被接受,备择假设都将被拒绝。也就是说,我们对随机性的容忍是很低的。测试者觉得随机性顶多导致1%的数据偏离期望。
整理了一下思路,我觉得P-value被这样重写时,会更方便理解。
注意,这里讨论的是频率学派的思维方式。频率学派不会说 “零假设为真的概率”,他们的逻辑是,零假设要么为真要么假,尽管测试时不知道,但这并不妨碍我们讨论它为真的情况。
从上帝视角看,当零假设为真时
P-value = P(获得与样本同等或更极端的数据 | (零假设为真 + 某些随机因素))
= P(获得与样本同等或更极端的数据 | 某些随机因素)
因为零假设为真 / 原假设(药物能提高免疫力)不成立时,当前采样结果完全由随机性导致。
准确说,拒绝一个真的(但我们不知道是真的)零假设时,人的具体逻辑是
- 计算出的P值(条件概率的数值)说明样本数据对零假设的支持程度很低,或者说
- 获得当前数据的概率,落在了我们容许随机性对采样结果的影响范围内。(阈值 = 容忍度)
- 我们认定,是随机性导致了目前的样本数据,而不是零假设,因此它应该被拒绝。
Type-1 Error Rate
类型1错误是指:我们拒绝了真的零假设,我们在测试时并不知道它是真的。
我们当然希望在测试真实的零假设时,能减少这样的错误。或者说,当我们测试大量真实的零假设时,希望能减少这样错误的比例。
再回想一下测试的过程。比如一开始把阀值设置为0.3,有N组样本数据,对每组样本,都测试M个零假设,(从上帝视角来看)其中M1个为真。
像前一节所说,选这个阈值是因为:我们容许随机性导致至多30%的偏离期望的数据。
在测试这M1个真实的零假设时,至多有30%的数据是(被我们认为偏离期望)由随机性导致,因为它们在测试时都给出了低于阈值的P值。也就是说,至多30%的正确零假设就这样被我们(错误地)拒绝了。
因此,P-value和阀值共同决定了Type-1错误比例的上限。
Type-2 Error Rate
这里说的是:那些(上帝知道的)错误的零假设里,没被拒绝的比例。也就是第二类错误的比例。
反过来看,那些错误的零假设中,被测试正确地拒绝了的比例则被称作统计功效(Statistical Power),功效像是在描述一项零假设测试的成功避免错误的概率,或者说拒绝错误假设的“底气”。
后续
这篇文章的主要目的还是记录我对零假设测试,P-Value和阈值的理解。
为了讨论P-Value和阈值在测试中的意义和影响,随后引入了两种类型错误。
我着重讨论了它们类型1错误,是因为它被P值和阈值直接影响。
但我想之后再回来讨论这两类错误的其他方面,比如它们相互间的关系,和其他影响因素。