非参数统计:基于R语言案例分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 符号检验的一些变形

2.3.1 改变显著性检验

在实际生活中,我们经常会遇到要判断某一事物在经过某种途径改变后是否与之前发生了显著性差异的情况,此时我们就需要进行改变显著性检验。符号检验是非参数统计中用于检验改变显著性的一种有效方法,它通过样本前后状态的对比,并用符号“+”和符号“-”表示优劣,来检验某一样本是否存在显著性差异,如果记录下来的符号“+”和符号“-”的数目相差不大,则我们称这两个样本无显著性差异。符号检验实质上是的情况下的二项检验,是二项检验中最简单的情况。符号检验与参数检验中的样本相关性检验一致,当样本不满足参数检验的条件时,我们可以选择用符号检验来判断样本之间是否存在差异。对同一个模型,符号检验的运用比其他非参数检验方法更加简单方便,通常不需要特殊的表来求临界域。本节我们主要介绍符号检验以及符号检验的两个重要的变形,McNemar检验和Cox-Stuart趋势性检验。

首先我们主要介绍符号检验的具体步骤。设存在两组样本观测值x1x2,…,xny1y2,…,yn,共n对观测数据,其中总体XY是相互独立的,为了方便理解,我们将两组样本写成(x1y1),(x2y2),…,(xnyn)的形式。我们对每一对(xiyi)中的xiyi之间做比较,若yi优于xi时记为符号“+”,若xi优于yi时则记为符号“-”,若xiyi相同则记为符号“0”,并称之为结点。我们用S+来表示这n对样本观测值中符号“+”的个数,用S-表示这n对样本观测中符号“-”的个数,用n表示这n对样本观测中符号“+”和“-”的总个数,即n=S++S-,p(+)与p(-)分别表示记符号“+”和符号“-”的概率。符号检验的目的是检验XY之间是否存在显著差异,也就是检验p(+)是否显著不等于p(-)。如果我们排除符号为“0”的情况,即只考虑n个符号“+”和符号“-”的情况而忽略结点,此时若p(+)=p(-),则有。当该假设成立时,在n为样本容量的情况下,我们令S+为检验统计量,显然统计量S+服从二项分布

两个样本之间的符号检验假设有三种形式。

1.双侧检验

H 0:p(+)=p(-) H1:p(+)≠p(-)

如果是n≤20时的小样本情况,根据n,由于S+服从二项分布,通过查询二项分布表,我们可以在显著性水平α下,在表中找到一个大约等于的值,对应找到临界值sα1,以及对应值的临界值sα2。

如果n>20,此时我们可以用正态分布来逼近该二项分布,s的临界值可以由下式近似给出

如果ssα1或者ssα2,则拒绝H0,即两个样本之间存在显著性差异,否则接受原假设。其中zα为标准正态分布对应α水平下的临界值,可以通过查询正态分布表得到。

2.左侧检验

H 0:p(+)≥p(-) H1:p(+)<p(-)

显然,当S+值较小时,它更符合假设H1的情况,因此拒绝域是S+大于某个sα时我们认为具有显著性。因此,对n≤20的小样本情况,我们通过查询二项分布表在条件下找到关于显著性水平α对应的sα临界值。如果n>20,则我们可以用正态分布接近S+值,即

ssα时,则以显著性水平α拒绝原假设H0

3.右侧检验

H 0:p(+)≤p(-) H1:p(+)>p(-)

与左侧检验一样,当S+值大于某个临界值sα时,则说明原假设不成立,拒绝H0。同理,如果样本数不超过20,可以通过查询二项分布表得到在显著性水平α下的临界值sα;如果样本数超过20,我们可以用正态分布接近该二项分布,即

ssα时,我们认为存在显著性差异,因此拒绝假设H0

以上讨论中,在大样本的情况下,我们用正态分布近似二项分布的做法来简便计算。但是借助统计软件,我们仍然能够方便地计算出大样本下二项分布的累积概率或统计量的临界值。例如对二项分布,在R语言环境下我们能够用代码pbinom(a,n,p)计算出概率为p、容量为n的二项分布不大于a时的累积概率。因此我们可以用p值检验法进行上述假设检验。为了更好地理解符号检验,我们用一个具体例子来说明符号检验的具体操作过程。

【例2.2】某制造商有两种产品A和B,这两种产品具有相同的功能,其中产品A是由新工艺制造而成的。制造商想了解产品A是否更受消费者喜欢,于是该制造商的市场员便随机抽取了10名顾客,并交给每位顾客一件产品A和一件产品B,在一段时间后,记录下每位顾客更喜欢的产品。如果选择A则记符号“+”,选B则记符号“-”,无法选择,则记为“0”。结果有8位顾客选择了A,有1位顾客选了B,还有1位顾客没有做出选择。

解:设该问题的原假设和备择假设分别为:

H 0:p(+)≤p(-) H1:p(+)>p(-)

T表示选择A的人数,显然T越大表明产品A比产品B更受消费者欢迎。在本例中,符号“+”的个数为8,即S+=8,符号“-”的个数为1,即S-=1,所以我们得到n=S++S-=9,结点的个数为1。根据n=9的条件下的二项分布表,查找近似0.05的值。由于我们无法得到在0.05对应下的临界值,所以我们可以选择用p值检验法。利用R语言软件我们得到pY≥8)=0.019 5,该值小于0.05的显著性水平,根据p值检验法,存在显著性差异,拒绝H0,即产品A比产品B更受消费者欢迎。

需要注意的是上面我们对符号检验的讨论是在能够直接得出样本前后差异正负性的情况下进行的。如果此时样本数据是虚拟变量,即通常用“0”和“1”来表示样本的属性,这样我们就需要对上述符号检验进行适当修改。McNemar检验通常用来检验配对样本的差异性,它的理论基础就是符号检验。为了简便,我们用一个列联表来表示该配对样本的数据。

表2-2

表2-2中YX分别表示试验前和试验后的样本属性,a是(x=0,y=0)的个数,b是(x=0,y=1)的个数,c是(x=1,y=0)的个数,d是(x=1,y=1)的个数。为了检验样本在试验前后是否发生了显著性差异,我们在b+c>20时,构造McNemar检验统计量

我们能够证明该统计量服从自由度为1的卡方分布。

b+c≤20时,我们可以构造统计量S+=b。我们能够证明该统计量服从n=b+c的二项分布。

证明:如果试验前后样本数据没有发生显著变化,那么bc的值应该相近,如果试验前后样本数据发生了显著变化,那么bc的值应该存在很大差距。我们参照上一节的符号检验方法,令S+为符号“+”的个数, S-为符号“-”的个数,令ad为结点,因此不考虑ad,这样我们就将上面的配对样本转化成了符号检验问题。显然S+服从,容量n=b+c的二项分布。

b+c>20时,我们可以用正态分布近似该二项分布,也就是说变量b近似服从均值,方差的正态分布,因此我们能够得到

显然z服从一个标准正态分布,所以z2服从自由度为1的卡方分布,我们用统计量χ2来表示z2

由于我们已经知道统计量的分布情况,这样我们就能用假设检验的方法对该问题进行单边或双边检验。McNemar检验的假设形式一般如下:

双侧检验H0px=0,y=1)=px=1,y=0) H1px=0,y=1)≠px=1,y=0)

左侧检验H0px=0,y=1)≥px=1,y=0) H1px=0,y=1)<px=1,y=0)

右侧检验H0px=0,y=1)≤px=1,y=0) H1px=0,y=1)>px=1,y=0)

【例2.3】某制药公司最近研发了一种新型药剂用于治疗疾病A,为了了解该药是否对治疗疾病A具有显著作用,研发人员选取了100名患者进行调查,其中有84位患有疾病A,其余16位则没有。让这100名患者服用该新药,一段时间后记录下他们的情况,结果如表2-3所示。

表2-3

由于我们希望得到的结果是该药对疾病A具有治疗效果,所以我们能够引入假设:

H 0p(之前患A后面没有)≤p(之前没有后面患A)

H 1p(之前患A后面没有)>p(之前没有后面患A)

从表中我们能够得到b的值为21,c的值为4,因此McNemar检验统计量

由于置信水平0.05对应自由度为1的χ2分布的值,显然11.56>3.814,因此我们拒绝原假设,认为该药剂对治疗疾病A具有显著效果。

2.3.2 Cox-Stuart趋势性检验

在客观世界中存在各种随机序列,我们通常想要知道这些随机序列是否具有某种增长或者下降的趋势,例如判断GDP是否逐年增长,某种疾病的患者是否在不断减少,这时我们就要对该序列进行趋势检验。Cox和Stuart给出了一种修正的符号检验用于趋势性检验。方法如下:

存在一组随机序列x1x2,…,xn,我们以某一个常数c为界把该序列分成两部分,并将这两部分两两配对成(x1xc+1),(x2xc+2),…,(xcxn)的形式,其中当n为偶数时,c=n/2,当n为奇数时,c=(n-1)/2,中间的数xc+1舍去。接着我们以每一组中后一个数减去前一个数并记下它们的正负性。用S+表示得到正数的个数,即后一个数大于前一个数,用p(+)表示取到正数的概率,用p(-)表示取到负数的概率。此时我们就可以用前面所述的符号检验方法来检验该序列是否存在趋势性,检验方法同上。

趋势检验的假设一般如表2-4所示。

表2-4

在数据分析中,我们通常用均值、中位数来表示数据的中心位置。在参数检验中,总体的中心位置往往通过平均值表示;在非参数检验中,总体的中心位置往往通过中位数表示。这里我们可以用符号检验来处理总体中位数检验问题。符号检验仅仅考虑了样本之间的大小关系,并没有涉及差值大小的问题。但是非参数检验给出了一种符号检验的改进方法——Wilcoxon符号秩检验。它不仅考虑了原假设样本之间的大小关系,还加入了差值大小的信息。我们将在下一章介绍该方法,本章不作过多论述。