共同非参数检查
使用样本数据对整个信息进行统计推断时,一般来说,采样必须满足随机性和独立性。这是因为几乎所有的采样定理都基于数据独立性。使用样本数据拟合总体参数(如参数估计和假设检验)进行统计估计时,增加了样本数据必须符合一般分布的要求。此数据分布类型已知的总体参数假设称为参数假设检查。还有与参数假设检验相对应的非参数假设检验(例如分布的正规检验、样品的随机性检验等)。这些检查通常假定分布连续或对称,数据不必遵循正态分布。
.1旅行检查
在实际应用中,需要检查样本数据的随机性和独立性,这需要使用行程检查。这是用非参数检验来验证样本数据的随机性。一般来说,人们认为满足随机性的样本数据也满足独立性。
在按一定顺序(如时间)排序的顺序序列中,具有相同属性(如符号)的连续部分称为一个移动,一个移动中包含的数据数称为移动长度,通常使用R表示一个系列中的移动总数。
例如:
如果将某样本n=12人的标志表示为男、女,则有以下三种排列方式。
(一)男\男,女\女,男\女\男\男\男\男(二)男\男\男\男\男\男
男人或女人连续出现的片段称为旅程。
每个旅程包含的数目是旅程的长度。以r表示序列中游的数量:
(i)r=5,(ii)r=2,(iii)r=11
如你所见,(I)是随机性序列。是随机性序列,因此可以使用旅行数检查样品的随机性或总体分布特征。
在行程检查中,如果数据序列的移动总数少或多,则数据不能满足随机性的变化,因此通常为W={Rr1或Rr2}。
示例2:
包含12个数字的排序序列如下:
6 13 9 16 6 8 4 8 11 10 5 1
-
这是一个数字序列,可以通过以下两种方法计算移动总数:
(1)以特定值(例如数据的平均值)为边界,确定大于此值的值为“”,小于此值的值为“-”,删除相同的值,移动总数为5。
(2)根据系列中出现的连续增加和连续减少的子序列数确定移动总数。以这种方式确定的移动总数为8。
Runstest函数可从MATLAB统计工具箱中使用,格式如下:
1h=runstest(x)
对样本数据序列X进行行程检查,假设原始H0:数据发生是随机的,替代方法是H1:数据发生顺序不是随机的。此时x的平均值是边界计算行程。输出参数H为0或1,如果为0,则在重要性级别0.05接受原始假设,该假设被认为样本数据满足随机性。如果为1,则假定样本数据不符合随机性,拒绝原来的假设。Runstest函数将x中的NaN忽略为缺少的数据。
2 h=runstest(x,v)
以数字V为边界进行行程检查,V的默认值是数据序列X的平均值。
3h=runstest(x,' ud ')
根据系列中出现的连续增加和连续减少的子序列数确定移动总数,从而执行移动检查,从而消除与系列X中的上一个元素相同的数量。
4h=runstest(.param1、val1、param2、val2、)
使用作为可选对出现的参数名和参数值控制计算结果。可用的参数和参数值如下表所示
5[h,p]=runstest(.)
返回检查的P值。如果P值小于或等于重要性级别A,则拒绝原始假设。否则,应用原始假设。
参数名称参数值和说明
“alpha”测试的重要性水平,在值之间
0-1之间的默认值为0.05
“方法”指定计算p值的方法。可能的值包括
' Exact': p值是以正确的方法计算的,适用于较小的示例(示例容量为50)方案
' Approximate': p值按常规近似值计算,适用于大型示例方案
指定替代假设形式的“tail”尾部类型变量。可能的值包括:
' Both ':双方检查
‘right’右尾巴检查
测试显示“左”
6 [h,p,状态]=runstest(.)
返回包含以下字段的结构变量stats
Nurns:移动总数
N1:数据序列中大于v的数据数
N0:数据序列中小于v的数据数
z:检验统计值
例如:
研究了中国福利彩票“双色球”开放号码中是否随机出现蓝色球号码。
将打开“% read”特色球
奖数据.xls“第1个工作表中的I2:I98中的数据,即蓝色球号码x=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter5\双色球开奖数据.xls',1,'I2:I98');
%调用runstest函数,对蓝色球号码进行游程检验
%因为样本较大,所以指定,‘method’为‘aproximate’:利用正态近似计算p值
%v值为默认
[h,p,stats]=runstest(x,[],'method','approximate')
h =
0
p =
0.4192
stats =
nruns: 45
n1: 50
n0: 47
z: -0.8079
runstest函数返回的检验的p值p=0.4192>0.05,所以在显著性水平=0.05下接受原假设H0:蓝色球号码出现顺序是随机的。
2 符号检验
(1)符号检验的原理
设X为连续总体,其中位数记为Me,考虑假设检验问题
H0:Me=M0, H1:Me/=M0(Me不等于M0)
记p+=P(X>M0),p-=P(X<M0),由于Me是总体X的中位数,可知当H0成立时,p+=p-=0.5,因此可以把上述假设等价于
H0:p+=p-=0.5, H1:p+/=p-(p+不等于p-)
把Xi>M0的个数记为n+,Xi<M0的个数记为n-,另m=n+ + n-
如果H0成立,当m固定时,min(n+,n-)不应太小,否则应认为H0不成立。选取检验统计量
S=min(n+,n-)
对于固定的m和给定的显著性水平a,根据S的分布计算临界值Sa,当S<=Sa时,拒绝原假设H0,即认为总体中位数Me与M0有显著差异;当S>Sa时,接受H0,,即认为总体中位数Me与M0为显著性差异。
符号检验还可用于配对样本的比较检验,符号检验法是通过两个相关样本的每对数据之差的符号进行检验,从而比较两个样本的显著性。具体地讲,若两个样本差异不显著,正差值与负差值的个数应大致各占一半。
(2)符号检验的MATLAB实现
MATLAB统计工具箱中提供了signtest函数,用来符号检验,其调用格式如下:
<1> [p,h,stats] = signtest(x)
根据样本观测量x做双侧符号检验,原假设是x来自于中位数为0的连续分布,备择假设是x来自中位数不为0的连续分布。输出参数分别为检验的p值,变量h,和包含检验统计量信息的结构体变量stats,当p>a(显著性水平)或h=0时,接受原假设;当p<=a或h=1时,拒绝原假设。
<2>[p,h,stats]=signtest(x,m,param1,val1,.....)
双侧符号检验,原假设是x来自于中位数为m的连续分布,备择假设是x来自于中位数不为m的连续分布,此时用可选的成对出现的参数名和参数值来控制计算结果,可用的参数名与参数值如下表
参数名 参数值及说明
'alpha' 检验的显著性水平,其取值介于0--1
默认值为0.05
‘method’ 指定计算p值的方法,可能的取值情况如下
‘exact’:利用精确方法计算p值,适用于小样本(样本容量<100)情形
‘approximate’:利用正态近似计算p值,适用于大样本情形
<3> [p,h,stats]=signtest(x,y,param1,val1,.......)
配对样本x和y的双侧符号检验,原假设是x-y来自于中位数为0的连续分布,备择假设是x-y来自于中位数不为0的连续分布,x,y是等长的向量。
例:在一次选举的民意调查中,随机询问了200名选民,结果显示,69人支持甲,108人支持乙,23人弃权。分析甲乙两人的支持率是否有显著差异。取显著性水平a=0.01;
分析: 用p1和p2分别表示甲乙两位候选人的支持率,根据题目要求可写出如下假设:
H0:p1=p2=0.5, H1:p1/=p2(p1不等于p2)
调用signtest函数求解
%定义样本观测值向量,-1表示支持甲,0表示弃权,1表示支持乙
x=[-ones(69,1);zeros(23,1);ones(108,1)];
p=signtest(x) %符号检验,检验x的中位数是否为0
p =
0.0043
由于signtest函数返回的检验值p=0.0043<0.01,所以在显著性水平=0.01下拒绝原假设H0,认为甲乙两位候选人的支持率有非常显著的差异。
例:
两组(各10名)有资质的评酒员分别对12种不同的酒进行品评,每个评酒员在品尝后进行评分,然后对每组的每个样品计算其平均分,评分结果如下
样品1 样本2 样品3 样品4 样品5 样品6 样品7 样品8 样品9 样品10 样品11 样品12
第一组 80.3 68.6 72.2 71.5 72.3 70.1 74.6 73.0 58.7 78.6 85.6 78.0
第二组 74.0 71.2 66.3 65.3 66.0 61.6 68.8 72.6 65.7 72.6 77.1 71.5
利用符号检验方法比较两组评酒员的评分是否有显著差异,取显著性水平a=0.05
%样本1
x=[80.3,68.6,72.2,71.5,72.3,70.1,74.6,73.0,58.7,78.6,85.6,78.0];
%样本2
y=[74.0,71.2,66.3,65.3,66.0,61.6,68.8,72.6,65.7,72.6,77.1,71.5];
p=signtest(x,y) %配对样本的符号检验
p =
0.0386
由于signtest函数返回p=0.0386<0.05,所以在显著性水平=0.05下认为两组评分有显著差异。
.3 Wilcoxon(威尔科克森)符号秩检验
符号检验只考虑的分布在中位数两侧的样本数据的个数,并没有考虑中位数两侧数据分布的疏密程度,这就使得符号检验的结果比较粗糙,检验功率较低。统计学家维尔科克森在1945年,提出了一种更为精细的“符号秩检验法”,该方法是在配对样本的符号检验基础上发展起来的,比传统的单独用正负号的检验更加有效。它适用于单个样本中位数的检验,也适用于配对样本的比较检验,但并不要求样本之差服从正态分布,只要求对称分布即可。
(1)Wilcoxon(威尔科克森)符号秩检验的原理
设连续总体X服从对称分布,其中位数记为Me,考虑假设检验问题:
H0:Me=M0, H1:Me/=M0(Me不等于m0)
从总体X中抽取容量为n的样本X1,X2,......,Xn,将 |Xi-M0| ,i=0,1,2,....n,从小到大排序,并计算它们的秩(即序号,取值相同时求平均秩),根据 Xi-M0 的符号将|Xi-M0|分为正好组和负号组,用W+和W-分别表示正号组和负号组的秩和,则W+ + W- =n(n+1)/2。
如果H0成立,则W+和W-取值相差不大,即min(W+,W-)不应太小,否则认为H0不成立。选取统计量
W=min(W+,W-)
对于给定的显著性水平a,根据W的分布计算出临界值Wa,当W<=Wa时,拒绝原假设H0,即认为总体中位数Me与M0有显著性差异;当W>Wa时,接受H0,即认为总体中位数Me与M0无显著差异。
对于配对样本的符号秩检验,只需将两样本对应数据做差,即可将其化为单样本符号秩检验
讲解下面这个例子
(2)Wilcoxon(威尔科克森)符号秩检验的MATLAB实现
MATLAB统计工具箱中提供了signrank函数,用来做Wilcoxon(威尔科克森)符号秩检验,其调用格式如下:
<1>[p,h,stats]=signrank(x)
根据样本观测值向量x做双侧符号秩检验,原假设是x来自于中位为0的分布,备择假设是x来自于中位数不为0的分布。该检验假定x的分布是连续的,并且关于其中位数对称。输出参数分别为检验的p值、变量h和包含检验统计量信息的结构体变量stats,当p>a(显著性水平)或h=0时,接受原假设;当p<=a(显著性水平)或h=1时,拒绝原假设。
<2> [p,h,stats]=signrank(x,m,param1,val1,......)
双侧符号秩检验,检验样本观测值向量x是否来自于中位数为m的分布,此时用可选的成对出现的参数名和参数值来控制计算结果,参数名和参数值如下表
参数名 参数值及说明
'alpha' 检验的显著性水平,其取值介于0--1
默认值为0.05
‘method’ 指定计算p值的方法,可能的取值情况如下
‘exact’:利用精确方法计算p值,适用于小样本(样本容量<15)情形
‘approximate’:利用正态近似计算p值,适用于大样本情形
<3> [p,h,stats]=signrank(x,y,param1,val1,.....)
配对样本x和y的双侧符号检验,原假设是x-y来自于中位数为0的分布,备择假设是x-y来自于中位数不为0的分布,此时,x和y是等长的向量,其他参数说明同上。
例:
抽样某品牌面粉的重量,抽查了16包,其观测值如下:
20.21,19.95,20.15,20.07,19.91,19.99,20.08,20.16,19.99,20.16,20.09,19.97,20.05,20.27,19.96,20.06
试检验中位数与原来设定的20是否有显著性差别,去显著性水平为0.05
根据题目要求可写出如下假设:
H0:Me=20, H1:Me/=20(Me不等于20)
调用signrank函数求解
%输入样本观测向量
%换行时要加入...,不然就会说一个2x8的矩阵
x=[20.21,19.95,20.15,20.07,19.91,19.99,20.08,20.16,...
19.99,20.16,20.09,19.97,20.05,20.27,19.96,20.06];
%调用signrank检验
[p,h,stats]=signrank(x,20)
p =
0.0298
h =
1
stats =
zval: 2.1732 %近似正态统计量
signedrank: 110 %符号秩统计量
由于返回的p=0.0298<0.05,所以在显著性水平=0.05下拒绝原假设,不能认为此组面粉数据的中位数为20.
.4 曼-惠特尼秩和检验
曼-惠特尼U检验又称“曼-惠特尼秩和检验”,是由H.B.Mann和D.R.Whitney于1947年提出的。它假设两个样本分别来自除了总体均值以外完全相同的两个总体,目的是检验这两个总体的均值是否有显著的差别。
(1)曼-惠特尼秩和检验的原理
设X和Y是两个连续型总体,其分布函数分别为F(x-u1)和F(x-u2)均未知,即两总体分布形状相同,位置参数(例如中位数)可能不同,从两总体分布中分布抽取容量为n1和n2的样本X1,X2,......,Xn1 和 Y1,Y2,.....,Yn2,并且两样本独立,考虑假设性检验问题
H0:u1=u2, H1:u1/=u2(u1不等于u2)
将样本观测数据X1,X2,....,Xn1和Y1,Y2,....,Yn2混合在一起,从小到大排序,并计算它们的秩(即序号,取值相同时求平均秩)。记X1,X2,...,Xn1的秩和为Wx,Y1,Y2,....,Yn2的秩和为Wy,则
Wx+Wy =(n1+n1)(n1+n2+1)/2
选取检验统计量
Wx , n1<=n2
W=
Wy, n1>n2
如果H0成立,W的取值不应过于偏小或偏大,否则拒绝H0,对于给定显著性水平a, 根据W的分布计算下临界值W1和上临界值W2,当W<=W1或W>=W2时,拒绝原假设H0,;当W1<W<W2时,接受H0。通常样本容量之一超过10时,可认为W近似服从正态分布,从而可用近似正态检验法。
(2)曼-惠特尼秩和检验的MATLAB实现
MATLAB统计工具箱中提供了ranksum函数,用来做秩和检验,其调用格式如下:
[p,h,stats]=ranksum(x,y,param1,val1,........)
根据样本观测值向量x和y做双侧秩和检验,原假设两独立样本x和y来自于具有相同中位数的连续分布,备择假设是x和y具有不同的中位数。此时可选成对出现的参数和参数值来控制计算结果。可选的参数名与参数值如下表:
参数名 参数值及说明
'alpha' 检验的显著性水平,其取值介于0--1
默认值为0.05
‘method’ 指定计算p值的方法,可能的取值情况如下
‘exact’:利用精确方法计算p值,适用于小样本(样本容量<10)情形
‘approximate’:利用正态近似计算p值,适用于大样本情形
输出参数分别为检验的p值、变量h和包含检验统计量信息的结构体变量stats,当p>a(显著性水平)或h=0时,接受原假设;当p<=a或h=1时,拒绝原假设。
例:
某科研团队要研究两种饲料(高蛋白饲料和低蛋白饲料)对小白鼠体重的影响,先用高蛋白饲料喂养12只小白鼠,低蛋白饲料喂养7只小白鼠,记录在一段时间内体重的增加量,得到如下观测数据
饲料 各鼠增加的体重
高蛋白 133 112 102 129 121 161 142 88 115 127 96 125
低蛋白 71 119 101 83 107 134 92
试检验两种不同饲料喂养的小白鼠的体重增加是否有显著差异,去显著性水平=0.05;
根据题目要求可做如下假设:
H0:u1=u2, H1:u1/=u2(u1不等于u2)
调用ranksum函数进行求解
%第一组体重增加量
x=[133,112,102,129,121,161,142,88,115,127,96,125];
%第二组体重增加量
y=[71,119,101,83,107,134,92];
%调用ranksum进行检验
[p,h,stats]=ranksum(x,y,'method','approximate')
p =
0.0832
h =
0
stats =
zval: 1.7326
ranksum: 141
函数返回p=0.0832>0.05,在显著性水平=0.05下接受原假设,认为两种饲料喂养的小白鼠体重的增加量没有显著性差异。