假设检验是统计学里的重要方法,同时也是一种“在理想与现实之间观察求索”的测试活动。假设检验从概率的角度去考察理想与现实之间的关系,籍此来缓解测试可信性问题。
我们先来看一个例子。民航旅客服务系统,简称PSS系统,有一种业务叫换飞机,如果一个航班,原定执飞的飞机出了故障,就需要换飞机。但是可能换不到原来机型的飞机,比如原来是一个空客320,只能换到一个波音737,这就比较麻烦了,系统需要做很多事,要更换航班布局、所有旅客要重新安排座位,等等。用的时间会比较长。
假设PSS系统的一个期望是“换飞机的平均处理时长不超过160秒”。这是一个关于系统性能的期望。测试的时候,我们把换飞机的用例重复执行了6次,发现每次执行的系统处理时长都不一样,平均值是170秒。
那么我们的测试结论应该是什么?能断定系统性能不符合预期吗?显然不能,因为测试结果是一个随机变量,我们只测了6次,如果再多测几次,平均值可能就低于160秒了。
切比雪夫大数定律告诉我们,如果测试的次数足够多,处理时长的算数平均值就会趋近于数学期望,也就是真正的“平均处理时长”。但是我们的资源是有限的,只够我们做6次测试,所以结果一定有偏差,这就是抽样误差。而且,测试的次数越少,测试结果的方差越大,抽样误差也就越大。如果直接拿这样的结果去下测试结论,一定是有偏颇的。这就是测试的五个基本问题之一——测试可信性问题的典型表现。
怎么办呢?还是要依靠统计的思想。如果我们能知道,“6次测试的均值是170秒”,这样一个结果发生的概率是多少,我们就能更准确地判断,系统性能是不是符合预期,或者说,有多大可能符合预期,测试结论就能更靠谱一些。
那么,怎么才能知道170秒这个结果发生的概率是多少呢?这就是抽样分布问题。抽样分布研究的是:从总体中抽取的样本,应该具有什么样的统计特征,跟总体的统计特征有什么关系。这是统计学里的一个重要课题。
比方说,桶里面有4个球,重量分别是2/3/3/4公斤。总体的数学期望是3,方差是0.5,标准差是0.707。我们用放回抽样的方式,从桶里抽2个球当样本,也就是先抽一个,看看是多重的,放回桶里,再抽下一个。可能的抽样结果一共有这样16种:
每种结果出现的可能性是相同的,都是1/16。这样我们就可以算出每种抽样结果的样本均值,以及所有16种样本均值的数学期望和方差。可以看到,样本均值的数学期望和总体的数学期望一样,都是3;样本均值的方差是0.25,也就是总体方差除以样本量2。
如果增加样本量,比如抽4个球,我们会发现结论是相同的,样本均值的数学期望还是跟总体数学期望一样;样本均值的方差还是等于“总体方差除以样本量”——看起来是有规律的。
接下来我们看样本均值的概率分布。来算一下各种不同的样本均值出现的概率,比如16种抽样结果里,样本均值是2.0的情况只出现了一次,所以2.0的概率是1/16;2.5出现了4次,所以2.5的概率是1/4。算出各个样本均值的概率之后,就可以画出样本均值的概率分布曲线了:
看得出来,已经有点像正态分布了。如果样本量是4,样本均值的概率分布曲线是下面这个样子,就更加接近正态分布:
从这个例子,我们可以引出抽样分布的一组基本规律:
-
样本量越大,样本均值越趋近于服从正态分布。
-
样本均值的数学期望与总体的数学期望相同。
-
样本均值的方差等于总体方差除以样本量。
到这里,我们就完成了假设检验的理论储备。那假设检验具体是怎么做的呢?我们还是用换飞机的例子来说明。
① 首先第一步是建立假设。我们先假设换飞机的平均处理时长是符合预期的,最多就是160秒。也就是说,总体均值是160。这个假设叫零假设。如果零假设成立,为什么实际测试结果均值会是170秒呢?因为这个170秒是“样本均值”,跟“总体均值”之间有抽样误差。但是根据抽样分布规律,样本均值服从正态分布,有99.7%的概率会落在160附近6倍标准差的范围内,所以这个误差一般不会特别大,如果特别大就说明零假设有问题;
② 那怎么才算特别大呢?我们需要设定一个阈值,也叫显著水平,意思是“理想和现实的差异是不是足够显著”,一般取一个比较小的值,比如0.05。如果一个抽样误差出现的概率比这个显著水平还要低,那这个抽样误差就算“特别大”了,我们就可以认为,出现这种程度的误差是一个小概率事件,在一次测试里面是不可能发生的。这就是小概率事件的实际不可能原理;
③ 第三步,在零假设的基础上,计算测试结果的发生概率。我们做了6次性能测试,相当于抽取了6个样本,样本均值是170秒。按照抽样分布规律,样本均值近似服从正态分布,这个正态分布的数学期望跟总体一样是160。另外假定总体方差已知,是144,那么样本均值的方差就是144/6=24。因此,样本均值的概率分布应该是:
在这样一个概率分布上,实际结果是170,也就是说,比均值160高出了10以上。这个结果的概率算下来是:
④ 最后,把这个概率跟显著水平0.05作比较,发现比显著水平要小,说明测试结果是一个小概率事件,但是的的确确发生了。也就是说,从零假设出发推出了矛盾,当然这个矛盾是统计意义上的矛盾。这时候,我们就可以否定零假设,所以最终的测试结论是,在显著水平0.05的意义上,换飞机的平均处理时长不符合预期,超过了160秒。
把假设检验的过程总结成一句话,就是:首先假设理想和现实相符,然后根据抽样分布规律,计算测试结果出现的概率,如果概率比显著水平低,就否定零假设,如果概率比显著水平高,就接受零假设。