秩和检验可检验两个总体是否相等。设(X1, X2, …, Xm)是取自总体X的一个样本,(Y1, Y2, …, Yn)是取自总体Y的一个样本,通过比较这两个样本的大小来比较X和Y的大小。为了方便比较,首先将两个样本合在一起:
(Z1, Z2, …, Zm+n)=(X1, X2, …, Xm, Y1, Y2, …, Yn),
称此样本为合样本。它的秩统计量记为(R1, R2, …, Rm+n)。当i=1, 2, …, m时,Ri表示Xi在合样本中的秩;当i=1, 2, …, n时,Rm+i表示Yi在合样本中的秩。
Wilconxon取检验统计量
当零假设成立时,X与Y之间没有显著差别。所以,根据样本观测值得到的T的观测值t应该不会太大或太小;如果t太大或太小,则说明Y比X随机地小或随机地大,拒绝零假设。
用ranksum函数可以检验两个样本是否取自中值相同的总体。其语法格式如下。
p = ranksum(x, y, alpha):进行双侧秩和检验,零假设为向量x和y表示的两个独立样本取自中值相等的分布。返回检验的p值,即零假设成立时测量值大于或等于计算值的概率。当p值较小时,可以怀疑零假设是否成立。假设两套数据取自相同的连续分布,位置可以不同。x和y为向量,但可以具有不同的长度。Wilcoxon秩和检验等价于Mann-Whitney U检验。
[p, h] = ranksum(x, y):返回假设检验的结果到h中。若x和y没有显著差异,则h为0。若它们有显著差异,则h为1。
[p, h] = ranksum(x, y, 'alpha',alpha):返回在显著性水平alpha上得到的假设检验结果。
[p,h]=ranksum(…, 'method',method):设置计算p值的算法。当将method参数设置为'exact'时,使用精确算法;当设置为'approximate'时,使用近似算法。如果忽略该参数,则对小样本使用精确算法,对大样本使用近似算法。
[p, h, stats] = ranksum(…):返回一个有一个或两个字段的结构。字段'ranksum'包含秩和统计量的值。如果样本比较大,则p用近似算法计算,字段'zval'包含Z统计量的值。
本例检验两个大小不等的样本是否具有相等的中值。除位置有0.25的偏移外,两个样本数据的理论曲线是相同的。
>> x = unifrnd(0,1,10,1);
>> y = unifrnd(.25,1.25,15,1);
>> [p,h] = ranksum(x,y,0.05)
p =
0.0375
h =
1
此时h=1,p<0.05,所以拒绝零假设,认为两个样本的中值不相等。注意,本例根据所取随机数的不同,可以有不同的检验结果。
某医院用两种手术方法治疗情况基本相同的肝癌患者11例。患者被随机分配到不同的手术组。下面是每例手术后患者生存月数,试比较两种手术方法的患者术后生存月数有否差别?
甲法 2 3 5 6 12
乙法 3 7 8 8 10 11
在命令行输入:
>> x=[2 3 5 6 12];
>> y=[3 7 8 8 10 11];
>> [p,h] = ranksum(x,y,0.05)
p =
0.2727
h =
0
此时h=0,p>0.05,所以接受零假设,可以认为两种手术方法的患者术后生存月数没有显著差别。