天天看点

符号检验及matlab实现一、符号检验的原理二、符号检验的matlab实现三、实例

目录

一、符号检验的原理

二、符号检验的matlab实现

三、实例

1、 例子一

2、例子二

参考连接:matlab非参数检验(符号检验,秩和)_sereasuesue的博客-CSDN博客_matlab 符号检验

X Y样本数量相等

一、符号检验的原理

  • 设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为显著性差异。

  符号检验还可用于配对样本的比较检验,符号检验法是通过两个相关样本的每对数据之差的符号进行检验,从而比较两个样本的显著性。具体地讲,若两个样本差异不显著,正差值与负差值的个数应大致各占一半。

二、符号检验的matlab实现

MATLAB统计工具箱中提供了signtest函数,用来符号检验,其调用格式如下:

  • [p,h,stats] = signtest(x)
               

     根据样本观测量x做双侧符号检验,原假设是x来自于中位数为0的连续分布,备择假设是x来自中位数不为0的连续分布。

输出参数分别为检验的p值,变量h,和包含检验统计量信息的结构体变量stats,当p>a(显著性水平)或h=0时,接受原假设;当p<=a或h=1时,拒绝原假设。

[p,h,stats]=signtest(x,m,param1,val1,.....)
           

  双侧符号检验,原假设是x来自于中位数为m的连续分布,备择假设是x来自于中位数不为m的连续分布,此时用可选的成对出现的参数名和参数值来控制计算结果,可用的参数名与参数值如下表

参数名                  参数值及说明

'alpha'                检验的显著性水平,其取值介于0--1

                            默认值为0.05

‘method’         指定计算p值的方法,可能的取值情况如下

                           ‘exact’:利用精确方法计算p值,适用于小样本(样本容量<100)情形

                           ‘approximate’:利用正态近似计算p值,适用于大样本情形

[p,h,stats]=signtest(x,y,param1,val1,.......)
           
     配对样本x和y的双侧符号检验,原假设是x-y来自于中位数为0的连续分布,备择假设是x-y来自于中位数不为0的连续分布,x,y是等长的向量

三、实例

1、 例子一

例:在一次选举的民意调查中,随机询问了200名选民,结果显示,69人支持甲,108人支持乙,23人弃权。分析甲乙两人的支持率是否有显著差异。取显著性水平a=0.05;

分析:  用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,认为甲乙两位候选人的支持率有非常显著的差异。

2、例子二

两组(各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下认为两组评分有显著差异。

继续阅读