聊一聊置换检验Permutation test的原理

《本文同步发布于“脑之说”微信公众号,欢迎搜索关注~~》

统计,是我们做研究不可或缺的一个工具,尽管有时候两组样本的某个指标的均值看起来相差很大,但是只有当两组样本的这个指标具有统计学差异时,我们才有信心说这两组样本确实有差异。我们在平时的研究中,用的较多的统计方法是参数检验,如t检验,方差分析等,但是这些方法都有一个前提要求,即样本都要符合正态分布。当样本不符合这一前提时,我们就要用非参数检验,而置换检验Permutation test就属于非参数检验的一种。这里,笔者通过实例带大家认识Permutation test的基本原理。

什么是Permutation test

Permutation test又称randomization test,是Fisher[1]和 Pitman[2]等人于20世纪30年代提出的一种统计推断的方法,其属于一种非参数检验,对样本总体分布情况无要求,特别适用于总体分布未知的小样本数据,即使样本数据小到无法使用比如说t检验(这一点是说Permutation test可以用于样本量非常小的数据,笔者会在下面的“实例1”中进行详细的说明);当然,Permutation test也可以用于分布未知的大样本量的数据,因此,其应用非常广泛。Permutation test一般通过对两组样本进行顺序上的随机置换,并重新计算统计检验量,把上述过程重复多遍(比如说1000遍),就可以构造出统计检验量的经验分布,然后对比两组样本的统计检验量和构造出的统计检验量经验分布,就可以计算求出P值。由于早期受到计算机技术的限制(因为Permutation test要产生大量的随机样本组合),Permutation test只能用于小样本数据的检验,现在随着目前计算机技术的发展,可以在短时间内产生大量的随机样本组合,因此目前Permutation test可以用于样本量较大的数据。

Permutation test的原理

接下来,笔者通过两个实例,带大家形象地认识下Permutation test的原理。

例1:小明和小黑参加了一个数学补习班,参加补习班之前和之后小明和小黑的数学成绩如下所示
在这里插入图片描述
请问,补习班能否 “显著性”地提高被试的成绩?

对于这样的一个例子,我们第一反应是会采用配对t检验来检验小明参加补习班后的成绩是否显著性地高于参加补习班前的成绩。但是,这个例子比较极端,因为只有两个样本,且分布情况未知,因此采用配对t检验并不合适。这种情况采用Permutation test比较合适。

第一步:建立H0假设,即参加补习班前后成绩无显著变化;
第二步:计算统计检验量,这里计算两个样本的均值之差,即Ms=74-72.5=1.5;
第三步:把两组样本混合在一起(共计4个样本),随机抽取2个样本作为参加补习班前的成绩,剩下的2个样本作为参加补习班后的成绩,并重新计算统计检验量Mn.由于总共只有4个样本,那么全排列共计有6种可能性,如下表所示。
在这里插入图片描述

我们计算的两个样本的统计量Ms=1.5,而两组样本经过随机重排后得到的这个统计量经验分布中,大于Ms的共有2个,那么相应的P就可以计算得到:P=2/6=0.3333; 因此,从统计学上来说,参加补习班不能显著提高学生的成绩。

实例2:欲研究某新的教学方法能否显著提高学生的数学成绩。两组被试,每组10个人,A组采用传统教学方法,而B组采用这种新的教学方法,经过一个学期的教学后进行测试,并统计两组被试的成绩,如下所示:

A组成绩:65,75,43,80,67,68,54,78,80,62

B组成绩:91,69,73,87,75,71,89,64,70,95

针对这个例子,采用Permutationtest的步骤如下:

第一步:建立H0假设,即新不会提高学生的成绩,或者说新、旧方法并无差别;

第二步:计算统计检验量,这里同样计算两组被试的均值之差,Ms=-13.2;

第三步:把A组和B组成绩进性混合,

AB:65,75,43,80,67,68,54,78,80,62,91,69,73,87,75,71,89,64,70,95

从AB中随机抽取10作为新的A组(计为A1组)成绩,剩下的作为B组成绩(计为B1组),并重新计算统计检验量,计为Mn;

上述随机置换步骤重复若干次(如1000次)可以得到Mn的经验分布;

第四步:计算Mn中大于Ms的个数(计为n),那么P=n/随即置换次数。

笔者用Matlab编程,实现上述Permutation test,统计量Mn的经验分布如下图所示:
在这里插入图片描述
得到的P值为:0.0090,说明新的教学方法可以显著提高学生的成绩。

总结

Permutation test是一种非参数检验方法,本文通过两个简单的例子比较详细地给大家讲述了Permutation test的原理,相信通过这两个实例,大家对Permutation test会有更深一步的认识。对于实例2中的Matlab程序,感兴趣的朋友可以加笔者微信(微信号:kervin_zhao)索要;对于Permutation test遇到的问题,也可以加笔者进行交流。

参考文献
[1] Fisher, R. A., 1935. The Design of Experiments. Oliver & Boyd, Edinburgh.
[2]Pitman, E., 1937. Significance tests which may be applied to samples from any populations: I. Journal of the Royal Statistical Society, B, 4, 119-130

注:原创不易,请多多转发支持,如有问题请加笔者微信交流(悦影科技赵宗亚,微信:15560177218)

采用置换检验(permutation test)是种非参数统计方法,用于判断两个或多个样本之间是否存在显著差异。在该检验中,数据中的观察值会被随机重排,通过计算重排后的数据集中的某个统计量,进而判断原始数据集中的统计量是否显著。 在重复采样次数为10000的情况下,可以进行如下步骤进行置换检验: 1. 收集要比较的两个或多个样本的数据,并进行必要的预处理和清理。 2. 设定显著性水平(例如0.05),即用来判断差异是否显著的临界值。 3. 对原始数据进行重复采样10000次。每次采样时,将两个或多个样本的数据随机重排,得到新的数据集。 4. 在每次重排后的数据中,计算感兴趣的统计量。例如,可以计算两个样本均值的差异,或者进行方差分析等。 5. 将这10000次重排后的数据集中的统计量按大小排序。 6. 找到在排序后的重排统计量中,与原始数据中的统计量相同或更极端的值所占的比例。这个比例即为置换检验的p值。如果该p值小于设定的显著性水平,则可以认为两个或多个样本之间存在显著差异。 需要注意的是,采用置换检验(permutation test)时,若重复采样次数越多,得到的结果越准确,但也需要更长的计算时间。因此,根据具体实际情况来设定重复采样次数。在本题中,重复采样次数为10000次,可以获得较为可靠的置换检验结果。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值