本文是我在看论文的时候遇到的评价模型的两个评价指标,所以就整理了这么一份学习笔记,本文不会涉及相关的公式(如果后续深入学习的时候用上了再补充),主要讲解的是T检验与P值的理解。
一、t检验
这一节我就是个农夫山泉,就是一个搬运工,至少现在没有太多的理解,所以我就把我觉得写得比较好的内容搬运过来,具体的链接会放在参考里面。
关于T检验(t-test),是一种适合小样本的统计分析方法,通过比较不同数据的均值,研究两组数据是否存在差异。
T检验分为:
- 单样本T检验:用于比较一组数据与一个特定数值间的差异情况。
- 配对样本的T检验:用于检验有一定对应关系的样本之间的差异情况,需要两组样本数相等。
- 独立样本的T检验:独立样本与配对样本的不同之处在于独立样本T检验两组数据的样本个数可以不等。
这里有几个注意点:
- T检验只是适合小样本的统计分析,并不是遇到小样本就一定得用T检验;
- T检验的关注点在样本的均值上,并不太关注原始样本的情况;
- 由于T检验当自由度趋近于无穷时,就会越来越像正态分布,所以T检验就是一种用少量样本来估计整体样本数据间差异的方法;
- 无论哪种T检验,都要数据服从正态或者近似正态分布;
- 独立样本的T检验,除了要满足正态性,还要满足方差齐性的前提条件,在方差齐性的情况下,才可以使用T检验,如果方差不齐性,则应采用校正T检验。
二、P值与两类错误
1. P值
P值(P-value)是在一个假设检验问题中,利用观测值能够做出拒绝原假设的最小显著水平,即在原假设下,出现比观测值更极端情况的概率。
这里借用《程序员的数学》的例子来讲解,先把例子写上,我再谈个人理解:
甲乙两人比赛100次,甲61胜39败,甲认为自己比乙强,乙认为两人实力相同,只是甲运气好,于是两人计算概率,如果甲胜利61次的概率小于5%,那么就是甲强。
于是产生了下列两个假设:
- 虚无假设H0:甲获胜的概率 = 1 / 2 ······ 甲试图驳斥的主张
- 对立假设H1:甲获胜的概率 > 1 / 2 ······ 甲试图肯定的主张
甲希望证明“如果H0成立,得到H1这样的数据概率只有x%。因此H0很有可能是错误的”。
这个x%成为P值,于是先设α为一个极小的值,并以P值是否大于α作为判断依据,这一阈值α称为显著性水平。
- P值 < α → 拒绝H0(reject)
- P值 ≥ α → 无法拒绝H0(accept,接受)
- P值 < α → 拒绝对照假设H0(reject) ······ 支持H1的主张被成功接受
- P值 ≥ α → 无法对照拒绝H0(accept,接受) ······ 无法判断谁更强
以上是《程序员的数学》里面关于这一节写的浓缩版本,看上去挺绕的,不过我们就以甲乙这个栗子来进行分析:
我们的前提是:甲赢了乙。
乙提出的主张,即H0(零假设):甲乙实力一样。
甲提出的主张,即H1(备择假设):甲实力 > 乙实力。
我们的目标是:在假设H0成立的情况下,计算甲赢乙61次及以上的概率。
将上述目标翻译一下就是:在甲乙实力一样的情况下,甲获胜61次的概率(P值)。
于是甲乙设立了一个阈值α = 5%,就是说如果甲乙实力一样,甲获胜61次的概率(P值)小于α,那么假设被推翻,如果大于等于,那么就无法说明情况。即:
- P < α → 如果甲乙实力相同,那么甲基本不可能赢乙 → 甲乙实力不同 → 推翻了H0(拒绝H0,接受H1)。
- P ≥ α → 甲乙实力相同时,甲还是有可能赢61次 → 不清楚甲乙实力 → 无法拒绝H0,也无法接受H1。
那么我们将这个情况推广至一般化:
我们有了一个前提(结果),我们提出了两个对立的假设,希望推翻的假设是H0,希望主张的假设是H1,于是我们计算在H0的情况下,这个结果发生的可能性有多大(P值),如果小于阈值(α),那么H0被拒绝,H1被接受,如果大于等于阈值,那么无法说明H0与H1的正确性。即:
- P < α → 在H0下结果基本不会实现 → H0错误 → 拒绝H0,接受H1;
- P ≥ α → 在H0下结果有可能实现 → 无法判断H1的正确性与H0错误性 → 无法拒绝H0,接受H1。
那么我们再回过头来看之前提到的P值的定义:
P值(P-value)是在一个假设检验问题中,利用观测值能够做出拒绝原假设的最小显著水平,即在原假设下,出现比观测值更极端情况的概率。
拒绝原假设刚刚已经讨论过了,那么何为最小显著水平?我们就要引出下面的两类错误:
2. 两类错误
我们这里主要是要考虑这个阈值(显著性水平)的取值,就好比考研的分数线,如果分数线过低,是不是靠运气过线的人就会越来越多?但是如果分数线太高,那么是不是许多考失误的带佬就痛失一志愿的复试机会了?
或者说之前甲乙的栗子,如果甲对乙说,如果H0成立的情况下,我赢你61次的概率小于90%,我就比你牛X,这不是搞笑么?或者甲对乙说,如果H0成立,我赢你61次的概率小于0.0000000000001,我就比你牛X,这是满满的求生欲呀!
于是就有了两类错误:
- 第一类错误(false reject,拒真):本应为H0却错误的拒绝了它。
- 第二类错误(false accept,受伪):H0不是正确答案却错误地接受了它。
用一个混淆矩阵来描述:
(这个混淆矩阵第一眼让我想到了TP,FP,TN,FN [doge])通过混淆矩阵与上面的描述,我们来看看第一类和第二类错误:
第一类错误:
原假设本身成立,但是拒绝了。
也就是说本身P ≥ α,但是误判成为了P < α,即α取大了。
那么α取大了,就会有部分本该接受的H0被拒绝,也就是多了这部分的H1,就好比考研分数线下降,那么会有部分浑水摸鱼的同学喜大普奔地上岸。
第二类错误:
原假设本身是不成立的,但是接受了。
而如果α取小了,那么会有许多本该被拒绝的H0无法判断,用另外一个不恰当的比喻来说就是考研分数线上升,那么浑水摸鱼的学生就更难过,但是许多发挥失常的优秀学生也会被刷掉。(说不恰当的原因是因为,如果P ≥ α,那么在H0下结果是有可能实现,无法判断H0与H1的正确性)
那么我们来看看,如果是犯了第一类错误,那么是直接错了,因为是直接拒绝H0,但是如果犯了第二类错误,那么系统其实是无法判断H0与H1的正确性的,所以我们要尽可能限制第一类错误。
我们要尽可能调整阈值,保证不会有太多的第一类和第二类错误,而第一类错误就是显著性水平,目的在于保护原假设。
公式来说就是:
- 第一类错误:α = P(拒绝H0|H0为真)
- 第二类错误:β = P(接受H0|H1为真)
那么既然第一类错误就是显著性水平,那么我们是不是可以将显著性水平调的越低越好,从而降低第一类错误发生的频率呢?那肯定是不可能的,就好比我们把国家线一直往上调,那么是不是能过线的同学就越来越少?就相当于我们调高了,就让数据出现误差后被判定错误的概率增加了。
三、参考
[1]旧梦.T检验、F检验、卡方检验详细分析及应用场景总结[EB/OL].https://zhuanlan.zhihu.com/p/124072225,2020-04-03.
[2]Brick何.T检验和其他假设检验的P值怎么理解[EB/OL].https://zhuanlan.zhihu.com/p/104351327,2020-1-30.
[3]平冈和幸,堀玄.程序员的数学2概率统计[M].人民邮电出版社:北京,2015:276.
[4]前尘牵丝忆梦还.概率论与数理统计——清华大学(国家级精品课)[EB/OL].https://www.bilibili.com/video/BV1dJ411a77h?p=65,2019-12.