统计学习理论与方法:R语言版
上QQ阅读APP看书,第一时间看更新

2.2 假设检验

假设检验是除参数估计之外的另一类重要的统计推断问题。它的基本思想可以用小概率原理来解释。所谓小概率原理,就是认为小概率事件在一次试验中是几乎不可能发生的。也就是说,对总体的某个假设是真实的,那么不利于或不能支持这一假设的事件在一次试验中是几乎不可能发生的;要是在一次试验中该事件竟然发生了,我们就有理由怀疑这一假设的真实性,进而拒绝这一假设。

2.2.1 基本概念

大卫·萨尔斯伯格(David Salsburg)在《女士品茶:20世纪统计怎样变革了科学》一书中,以英国剑桥一群科学家及其夫人们在一个慵懒的午后所做的一个小小的实验为开篇,为读者展开了一个关于20世纪统计革命的别样世界。而开篇这个品茶故事大约是这样的,当时一位女士表示向一杯茶中加入牛奶和向一杯奶中加入茶水,两者的味道品尝起来是不同的。她的这一表述立刻引起了当时在场的众多睿智头脑的争论。其中一位科学家决定用科学的方法来测试一下这位女士的假设。这个人就是大名鼎鼎的英国统计与遗传学家,现代统计科学的奠基人罗纳德·费希尔(Ronald Fisher)。费希尔给这位女士提供了8杯兑了牛奶的茶,其中一些是先放的牛奶,另一些则是先放的茶水,然后费希尔让这位女士品尝后判断每一杯茶的情况。

现在问题来了,这位女士能够成功猜对多少杯茶的情况才足以证明她的理论是正确的,8杯?7杯?还是6杯?解决该问题的一个有效方法是计算一个P值,然后由此推断假设是否成立。P值(P-value)就是当原假设为真时所得到的样本观察结果或更极端结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果确实出现了P值很小的情况,根据小概率原理,我们就有理由拒绝原假设。P值越小,拒绝原假设的理由就越充分。就好比说种瓜得瓜,种豆得豆。在原假设“种下去的是瓜”这个条件下,正常得出来的也应该是瓜。相反,如果得出来的是瓜这件事越不可能发生,我们否定原假设的把握就越大。如果得出来的是豆,也就表明得出来的是瓜这件事的可能性小到了零,这时我们就有足够的理由推翻原假设。也就可以确定种下去的根本就不是瓜。

假定总共的8杯兑了牛奶的茶中,有六杯的情况都被猜中了。现在我们就来计算一下这个P值。不过在此之前,还需要先建立原假设和备择假设。原假设通常是指那些单纯由随机因素导致的采样观察结果,通常用H0表示。而备择假设,则是指受某些非随机原因影响而得到的采样观察结果,通常用H1表示。如果从假设检验具体操作的角度来说,常常把一个被检验的假设称为原假设,当原假设被拒绝时而接收的假设称为备择假设,原假设和备择假设往往成对出现。此外,原假设往往是研究者想收集证据予以反对的假设,当然也是有把握的、不能轻易被否定的命题,而备择假设则是研究者想收集证据予以支持的假设,同时也是无把握的、不能轻易肯定的命题作。

就当前所讨论的饮茶问题而言,显然在不受非随机因素影响的情况下,那个常识性的,似乎很难被否定的命题应该是“无论是先放茶水还是先放牛奶是没有区别的”。如果将这个命题作为H0,其实也就等同于那个女士对茶的判断完全是随机的,因此她猜中的概率应该是0.5。这时随机变量X~B(8,0.5),即满足n=8,p=0.5的二项分布。相应的备择假设H1为该女士能够以大于0.5的概率猜对茶的情况。

直观上,如果8杯兑了牛奶的茶中,有6杯的情况都被猜中了,则可算出,这个值大于0.5,但这是否大到可以令我们相信先放茶水还是先放牛奶确有不同这个结论。所以需要来计算一下P值,即PrX≥6)。使用下面这段代码可以算得P值是0.144 531 2。

可见,P值并不是很显著。通常都需要P值小于0.05,才能令我们有足够的把握拒绝原假设。而本题所得结果则表明没有足够的证据支持我们拒绝原假设。所以如果那位女士猜对了八杯中的六杯,也没有足够的证据表明先加牛奶或者先加茶水会有何不同。

还应该注意到以上所讨论的是一个单尾的问题。因为备择假设是说该女士能够以大于0.5的概率猜对茶的情况。我们日常遇到的很多问题也有可能是双尾的,比如原假设是概率等于某个值,而备择假设则是不等于该值,即大于或者小于该值。在这种情况下,通常需要将算得的P值翻倍,除非已经求得的P值大于0.5,此时我们就令P值为1。另外,当n较大的时候,还可以用正态分布来近似二项分布。

1965年,美国联邦最高法院对斯文诉阿拉巴马州一案做出了裁定。该案也是法学界在研究预断排除原则时常常被提及的著名案例。本案的主角斯文是一个非洲裔美国人,他被控于阿拉巴马州的塔拉迪加地区对一名白人妇女实施了强奸犯罪,并因此被判处死刑。最终案件被上诉至最高法院,理由是陪审团中没有黑人成员,斯文据此认为自己受到了不公正的审判。

最高法院驳回了上述请求。根据阿拉巴马州法律,陪审团成员是从一个100人的名单中抽选的,而当时的100个备选成员中有8名是黑人。根据诉讼过程中的无因回避原则,这8名黑人被排除在了此处审判的陪审团之外,而无因回避原则本身是受宪法保护的。最高法院在裁决书中也指出:“无因回避的功能不仅在于消除双方的极端不公正,也要确保陪审员仅仅依赖于呈现在他们面前的证据做出裁决,而不能依赖于其他因素……无因回避可允许辩护方通过预先审核程序中的调查提问以确定偏见的可能,消除陪审员的敌意。”此外最高法院还认为,在陪审团备选名单上有8名黑人成员,表明整体比例上的差异很小,所以也就不存在刻意引入或者排除一定数量的黑人成员的意图。

阿拉巴马州当时规定只要超过21岁就符合陪审团成员的资格。而在塔拉迪加地区满足这个条件的人大约有16 000人,其中26%是非洲裔美国人。我们现在的问题就是,如果这100名备选的陪审团成员确实是从符合条件的人群中随机选取的,那么其中黑人成员的数量会否是8人或者更少?可以在R中用下列命令计算得到我们想要的答案。

概率是0.000 004 7,也就相当于二十万分之一的机会。

对于假设检验而言,也可以使用正态分布的近似参数来计算置信区间。唯一的不同在于此时是在原假设H0p=p0的前提下计算概率值,所以原来在计算置信区间时所采用的近似

现在就不再需要了。取而代之的是在计算标准误差和P值时直接使用p0即可。

如果估计值用表示,其(估计的)标准误差是

检验统计量为

是当n比较大时,在原假设前提下,通过对标准正态分布的近似得到的。

继续前面的例子,现在原假设可以表述为H0p=0.26,相对应的备择假设为H1p<0.26。在一个100人的备选陪审团名单中有8名黑人成员,此时P值可由下式给出

由此便可以拒绝原假设,从而认为法院的裁定在很大程度上是错误的。

需要说明的是,当使用正态分布(它是连续的)作为二项分布(它是离散的)的近似时,要对二项分布中的离散整数x进行连续性修正,将数值x用从x-0.5到x+0.5的区间来代替(即加上与减去0.5)。就本题而言,为了得到一个更好的近似,连续性修正就是令PrX≤8)≈PrX<8.5)。所以有

此处无意要对连续性修正做过多的解释,但请记住,若不使用连续性修正,那么所得P值将总是偏小,相应的置信区间也偏窄。

上述计算过程在R中可以使用prop.test来实现,示例代码如下。

如同前面所分析的那样,如果不使用正态分布对二项分布做近似,仅仅基于二项分布来进行检验也是可行的。此时需要用到binom.test函数,示例代码如下。

2.2.2 两类错误

对原假设提出的命题,要根据样本数据提供的信息进行判断,并得出“原假设正确”或者“原假设错误”的结论。而这个判断有可能正确,也有可能错误。前面在假设检验的基本思想中已经指出,假设检验所依据的基本原理是小概率原理,由此原理对原假设做出判断,而在整个推理判断过程中所运用的是一种反证法的思路。由于小概率事件,无论其概率多么小,仍然还是有可能发生的,所以利用前面方法进行假设检验时,有可能做出错误的判断。这种错误的判断有两种情形:一方面,当原假设H0成立时,由于样本的随机性,结果拒绝了H0,犯了“弃真”错误,又称为第一类错误,也就是当应该接受原假设H0而拒绝这个假设时,称为犯了第一类错误。当小概率事件确实发生时,就会导致拒绝H0而犯第一类错误,因此犯第一类错误的概率为α,即假设检验的显著性水平。另一方面,当原假设H0不成立时,因样本的随机性,结果接受了H0,便犯了“存伪”错误,又称为第二类错误。即当应该拒绝原假设H0而接受了这个假设时,称为犯了第二类错误。犯第二类错误的概率为β

当原假设H0为真,我们却将其拒绝,如果犯这种错误的概率用α表示,那么当H0为真时,没有拒绝它,就表示做出了正确的决策,其概率显然就应该是1-α;当原假设H0为假,我们却没有拒绝它,犯这种错误的概率用β表示。那么,当H0为假,我们也正确地拒绝了它,其概率自然为1-β。正确决策和错误决策的概率可以归纳为表2-7。

表2-7 假设检验中各种可能结果及其概率

人们总是希望两类错误发生的概率αβ都越小越好,然而,实际中,这很难做到。当样本容量n确定后,如果α变小,则检验的拒绝域变小,相应的接受域就会变大,因此β值也就随之变大;相反,若β变小,则不难想到α又会变大。我们有时不得不在两类错误之间做权衡。通常来说,哪一类错误所带来的后果更严重、危害更大,在假设检验中就应该把哪一类错误作为首选的控制目标。但实际检验时,通常所遵循的原则都是控制犯第一类错误的概率α,而不考虑犯第二类错误的概率β,这样的检验称为显著性检验。这里所讨论的检验,都是显著性检验。又由于显著性水平α是预先给定的,因而犯第一类错误的概率是可以控制的。而犯第二类错误的概率通常是不可控的。

2.2.3 均值检验

根据假设检验的不同内容和进行检验的不同条件,需要采用不同的检验统计量,其中z统计量和t统计量是两个最主要也最常用的统计量。它们常常用于均值和比例的假设检验。具体选择哪个统计量往往要考虑样本量的大小以及总体标准差σ是否已知。事实上因为统计实验往往是针对来自某一总体的一组样本而进行的,所以更多的情况下,我们都认为总体标准差σ是未知的。在参数估计部分,我们已经学习了对单总体样本的均值估计以及双总体样本的均值差估计,本节的内容大致上都是基于前面这些已经得到的结果而进行的。

样本量大小是决定选择哪种统计量的一个重要考虑因素。因为大样本条件下,如果总体是正态分布,样本统计量也服从正态分布;即使总体是非正态分布的,样本统计量也趋近于正态分布。所以大样本下的统计量将都被看成是正态分布的,此时需要使用z统计量。z统计量是以标准正态分布为基础的一种统计量,当总体标准差σ已知时,它的计算公式如下

正如前面刚刚说过的,实际中总体标准差σ往往很难获取,这时一般用样本标准差s来代替,如此一来上述公式便可改写为

在样本量较小的情况下,且总体标准差未知,由于检验所依赖的信息量不足,只能用样本标准差来代替总体标准差,此时样本统计量就服从t分布,故应使用t统计量,其计算公式为

这里t统计量的自由度为n-1。

仍以土壤pH值检验的数据为例,现在想问该区域的土壤是否是中性的(即pH=7)?为此首先提出原假设和备择假设如下:

H0:pH=7, H1:pH≠7

该题目显然属于小样本且总体方差未知的情况,此时可以计算其t统计量如下

因为这是一个双尾检验,所以可在R中计算其P值如下

注意到以上结果与先前使用t.test()函数算得的结果是一致的,下面我们就来分析一下这个结果意味着什么。首先可以在R中使用下面的代码来求出双尾检验的两个临界值。

由于原假设是pH=7,那么它不成立的情况就有两种,要么pH>7,要么pH<7,所以它是一个双尾检验。如图2-4所示,其中两部分阴影的面积之和占总图形面积的5%,即两边各2.5%。一方面已经算得的t统计量要小于临界值-2.1199,对称地,t统计量的相反数也大于另外一个临界值2.1199,即样本数据的统计量落入了拒绝域中。样本数据的统计量对应的P值也小于0.05的显著水平,所以应该拒绝原假设。由此认为该区域的土壤不是中性的。

图2-4 双尾检测的拒绝域与接受域

除了进行双尾检验以外,当然还可执行一个单尾检验。比如现在问该区域的土壤是否呈酸性(即pH<7),那么便可提出如下的原假设与备择假设

H0:pH=7, H1:pH<7

此时所得之t统计量并未发生变化,但是P值却不同了,可以在R中算得P值如下。

如图2-5所示,t统计量小于临界值-1.7459,即样本数据的统计量落入了拒绝域中。样本数据的统计量对应的P值也小于0.05的显著水平,所以应该拒绝原假设。由此认为该区域的土壤是酸性的。

图2-5 单尾检测的拒绝域与接受域

以上单尾检验过程也可以使用t.test()函数来完成,只需将其中的参数alternative的值置为“less”即可。下面给出示例代码。

相比之下,讨论双总体均值之差的假设检验其实更有意义。因为在统计实践中,最常被问到的问题就是两个总体是否有差别。例如,医药公司研发了一种新药,在进行双盲对照实验时,新药常常被用来与安慰剂做比较。如果新药在统计上不能表现出与安慰剂的显著差别,显然这种药就是无效的。再比如前面讨论过的饲料问题,当我们对比两种饲料的效果时,必然要问及它们之间是否有差别。

同在研究双总体均值差的区间估计问题时所遵循的思路一致,此时仍然分独立样本数据和配对样本数据两种情况来讨论。

对于独立样本数据而言,如果两个总体的方差未知,但是可以确定,那么在此情况下检验统计量的计算公式为

其中s′的表达式本章前面曾经给出,这里不再重复。另外,t分布的自由度为n1+n2-2。

仍然以饲料与肉鸡增重的数据为例,现在我们想知道两种饲料在统计上是否有差异,为此提出原假设和备择假设如下

H0μ1=μ2, H1μ1μ2

在原假设前提下,可以计算检验统计量的数值为

这仍然是一个双尾检测,所以可以使用如下所示的R代码来求得检验临界值。

因为-2.365≤-0.9019≤2.365,所以检验统计量落在了接受域中。更进一步还可以在R中使用下面的代码来算得与检验统计量相对应的P值。

因为P值=0.397,大于0.05的显著水平,所以我们无法拒绝原假设,即不能认为两种饲料之间存在差异。以上计算结果与本章前面由t.test()函数所得之结果是完全一致的。

对于独立样本数据而言,若两个总体的方差未知,且,那么在此情况下检验统计量的计算公式为

此时检验统计量近似服从一个自由度为t分布,前面已经给出,这里不再重复。

仍然以饲料与肉鸡增重的数据为例,并假设两个总体的方差不相等,同样提出原假设和备择假设如下

H0μ1=μ2, H1μ1μ2

在原假设前提下,可以计算检验统计量的数值为

这仍然是一个双尾检测,所以可以使用如下所示的R代码来求得检验临界值

因为-2.658≤-0.9357≤2.658,所以检验统计量落在了接受域中。更进一步还可以在R中使用下面的代码来算得与检验统计量相对应的P值。

因为P值=0.3968,大于0.05的显著水平,所以我们无法拒绝原假设,即不能认为两种饲料之间存在差异。以上计算结果与本章前面由t.test()函数所得之结果是完全一致的。

最后来研究双总体均值差的假设检验,样本数据属于配对样本的情况。此时的假设检验其实与单总体均值的假设检验基本相同,即把配对样本之间的差值看成是从单一总体中抽取的一组样本。在大样本条件下,两个总体间各差值的标准差σd未知,所以用样本差值的标准差sd来代替,此时统计量的计算公式为

其中,d是一组配对样本之间的差值,表示各差值的均值;μ表示两个总体中配对数据差的均值。

在样本量较小的情况下,样本统计量就服从t分布,故应使用t统计量,其计算公式为

这里t统计量的自由度为n-1。

继续前面关于双总体均值差中配对样本的讨论,欲检验喂食了两组不同饲料的肉鸡在增重数据方面是否具有相同的均值,现提出下列原假设和备择假设

H0μ1=μ2, H1μ1μ2

在原假设前提下,很容易得出配对差的均值μ也为零的结论,于是可以计算检验统计量如下

这仍然是一个双尾检测,所以可以使用如下所示的R代码来求得检验临界值。

因为3.235>2.571,所以检验统计量落在了拒绝域中。更进一步还可以在R中使用下面的代码来算得与检验统计量相对应的P值。

因为P值=0.023 05,小于0.05的显著水平,所以应该拒绝原假设,即认为两种饲料之间存在差异。以上计算结果与本章前面由t.test()函数所得之结果是完全一致的。