精华内容
下载资源
问答
  • Kstest Test statistics : [h,p,ksstat,cv] = kstest(x,CDF,alpha,type) ...CDF :被检验的样本 cumulative distribution function ,缺省值为 N(0,1) Alpha : 显著性水平,缺省时为 0.05 Typ...

    皮尔森拟合优度检验

    http://blog.sina.com.cn/s/blog_7054a1960102wizu.html

    https://blog.csdn.net/qq_41000485/article/details/99423456

    https://blog.csdn.net/matlab_matlab/article/details/56272365

    [h,p,stats]=chi2gof(.....)

       返回一个结构体变量stats,它包含以下字段:

      chi2stat:卡方检验统计量

      df : 自由度

      edges:合并后各区间的边界向量

      O: 落入每个小区间内观测的个数,即时间频数

     E: 每个小区间对应的理论频数

     [......]=chi2gof(x,name1,val1,name2,val2,.......)

       通过可选的成对出现的参数名和参数值来控制初始分组、原假设中的分布、显著性水平等。控制初始分组的参数与参数值如下表:

      参数名             参数值                                说明

    ‘nbins’             正整数,默认值为10      分组(或区间)的个数

    ‘ctrs’                 向量                                   指定各区间的中点

    ‘edges’            向量                                   指定各个区间的边界

    注意:上述三个参数不能同时指定,一次调用最多只能指定其中的一个参数,因为后两个参数已经潜在的指定了分组数了

    chi2gof函数可以利用以下参数值来控制原假设中的分布

    参数名                                    参数值                                                          说明

    ‘cdf’                   函数名字字符串、函数句柄、                         指定原假设中的分布,与‘expected’参数不同同时出现,若为函数名字符串或函数句柄,则x是函数的唯一

                            由函数字符串(或函数句柄)与函数中        输入参数;若是由函数名字字符串(或函数句柄)与函数中所含有参数值

                            所含参数的参数值构成的元胞数组                 构成的元胞数组,则x是函数的第一个输入参数,其他参数为后续输入

                                                                                                         

    ‘expected’                         向量                                              指定各区间的理论频数,与‘cdf’不能同时出现

    ‘nparams’                      向量                                                 指定分布中待估参数的个数,它确定了卡方分布的自由度

    chi2gof函数控制检验的其他方面的参数与参数值列表

    参数名             参数值                                说明

    ‘emin’      非负整数,默认值5       指定一个区间对应的最小理论频数,初始分组中,

                                                                理论频数小于这个值的区间和相邻区间合并。如果指定为0,

                                                                将不进行区间合并

    ‘frequency’   与x等长的向量               指定x中各元素出现的频数

    ‘alpha’           0--1之间的数,默认值0.05        指定检验的显著性水平


    %参数'cdf'的值是由函数名字符串与函数中所包含参数的参数值构成的元胞数组
    % [h1,p1,stats1]=chi2gof(x,'nbins',7,'cdf',{'normcdf',mean(x),std(x)})

    % %参数‘cdf’的值有函数句柄与函数中所包含的参数值构成的元胞数组
    % [h2,p2,stats2]=chi2gof(x,'nbins',6,'cdf',{@normcdf,mean(x),std(x)})

    %指定初始分组数为6,检验数据是否服从参数为ms的泊松分布
    [h3,p3,stats3]=chi2gof(f,'ctrs',f,'frequency',x,'cdf',{@poisscdf,mean(x)},'nparams',1)
    % [h,p,s] = chi2gof(x,'cdf',{@unifcdf,1,6})
    %  [h,p,s]= chi2gof(x,'cdf',@(z)unifcdf(z,ahat,bhat),'nparams',2);
    %   [h,p,s] = chi2gof(x,'cdf',@(z)raylcdf(z,phat),'nparams',1);
    %检验数据是否服从指数分布
    %   [h,p,s]chi2gof(x,'cdf',@(z)gamcdf(z,mu),'nparams',1);

    close all;clear all;clc 
    x=[8,16,17,10,6,2,1];
    f=0:6;n=60;
    lamda=dot(f,x)/n%点积
    pi=poisspdf(f,lamda) %泊松分布
    x1=[8,16,17,10,9];
    p2=[pi(1),pi(2),pi(3),pi(4),pi(5)+pi(6)+pi(7)]
    chi=sum((x1-60.*p2).^2./(n.*p2))
    chi2inv(1-0.05,5-1-1)
    [h,p,st]=chi2gof(f,'ctrs',f,'frequency',x,'expected',n*pi,'nparams',1) %调用工具箱
    
    
    
    col3=st.E/sum(st.O) %计算表中的第3列数据
    col4=st.E %计算表中的第4列数据
    col5=st.O.^2./col4  %计算表中的第5列数据
    sumcol5=sum(col5)  %计算表中的第5列数据的和
    k2=chi2inv(0.95,st.df)  %求临界值,st.df为自由度
    
    h =
    
         0
    
    %接受假设,电话站在一小时接到电话服从泊松分布
    p =
    
        0.9833
    
    
    st = 
    
      包含以下字段的 struct:
    
        chi2stat: 0.1630
              df: 3
           edges: [-0.5000 0.5000 1.5000 2.5000 3.5000 6.5000]
               O: [8 16 17 10 9]
               E: [8.1201 16.2402 16.2402 10.8268 8.3006]

    符号检验  X Y样本数量相等

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

    例:

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

     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无显著差异。

      对于配对样本的符号秩检验,只需将两样本对应数据做差,即可将其化为单样本符号秩检验

      <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下拒绝原假设,不能认为此组面粉数据的中位数

    秩和检验 X Y样本数量可以不相等

      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下接受原假设,认为两种饲料喂养的小白鼠体重的增加量没有显著性差
    %20 P163
    clc,clear
    x=[2.36,3.14,7.52,3.48,2.76,5.43,6.54,7.41];
    y=[4.38,4.25,6.54,3.28,7.21,6.54];
    yx=[y,x]; 
    yxr=tiedrank(yx) %计算秩
    yr=sum(yxr(1:length(y))) %计算y的秩和
    [p,h,s]=ranksum(y,x) %利用Matlab工具箱直接进行检验

        计算pearson相关系数

    %r= corr(x, y, 'type' , 'Spearman');  
       r1=corr(x,y,'type','pearson');%corr默认pearson相关系数

    参考链接

    https://blog.csdn.net/MATLAB_matlab/article/details/56005671

    其他:

    Kstest

    Test  statistics :   

    [h,p,ksstat,cv]  = kstest(x,CDF,alpha,type)

    x :被测试的数据样本,以列向量输入 ( continuous distribution defined by cumulative distribution function )

    CDF :被检验的样本 cumulative distribution function ,缺省值为 N(0,1)

    Alpha : 显著性水平,缺省时为 0.05

    Type :字符输入。 'unequal' (缺省值)检验两者分布是否相同

     'larger'  检验 x 的 CDF 大于给定的 CDF

     'smaller'  检验 x 的 CDF 小于给定的 CDF

    h h=0 不拒绝原假设,即两个分布相同

     h=1 拒绝原假设,即两个分布不同

    p : 拒绝原假设的最小显著性水平

    ksstat :假设为真时,满足 student 分布

    cv : critical value/cutoff value , determining if ksstat is significant.

    Kstest2

    [h,p,ks2stat] = kstest2(x1,x2,alpha,type)

    详见 ketest

    https://wenku.baidu.com/view/2696d520915f804d2b16c158.html?fr=search-1-income6

    展开全文
  • matlab编的Manner-Kendall(M-K)程序非参数检验法常用于分析降水、径流、气温等要素时间序列的趋势变化,其优点在于样本不需要遵循某一特定的分布,而且很少受到异常值的的干扰,计算简便。
  • 非参数检验matlab实现Kolmogorov-Smirnov test:检验两个样本是否有相同分布KstestTest statistics:()-max()()F xG x[h,p,ksstat,cv] = kstest(x,CDF,alpha,type)x:被测试的数据样本,以列向量输入(continuous ...

    非参数检验及matlab实现

    Kolmogorov-Smirnov test:

    检验两个样本是否有相同分布

    Kstest

    Test statistics:()

    -

    max()()

    F x

    G x

    [h,p,ksstat,cv] = kstest(x,CDF,alpha,type)

    x:被测试的数据样本,以列向量输入(continuous distribution defined by cumulative distribution function)

    CDF:被检验的样本cumulative distribution function,缺省值为

    N(0,1)

    Alpha:显著性水平,缺省时为0.05

    Type:字符输入。'unequal'(缺省值)检验两者分布是否相同

    'larger' 检验x的CDF大于给定的CDF

    'smaller' 检验x的CDF小于给定的CDF

    h h=0不拒绝原假设,即两个分布相同

    h=1拒绝原假设,即两个分布不同

    p :拒绝原假设的最小显著性水平

    ksstat :假设为真时,满足student分布

    cv :critical value/cutoff value,determining if ksstat is significant.

    Kstest2:

    [h,p,ks2stat] = kstest2(x1,x2,alpha,type)

    展开全文
  • 非参数检验及其MATLAB实现

    千次阅读 2019-08-04 16:09:02
    单样本非参数检验 目的:样本来自总体的分布是否与某个已知的分布相吻合 绘制样本数据的直方图、pp图、QQ图判断(粗略) p-p图用来检测数据是否服从指定的分布,和normplot定义类似,normplot函数是检测是否服从...
    • 单样本非参数检验

    目的样本来自总体的分布是否与某个已知的分布相吻合

    绘制样本数据的直方图、pp图、QQ图判断(粗略)

    p-p图用来检测数据是否服从指定的分布,和normplot定义类似,normplot函数是检测是否服从正态分布,而porbplot不仅可以检测是否服从正态分布,还可以检测是否服从其他指定的分布,只需在调用函数的时候指定一下是哪种分布。

     调用格式:

     probplot('name',x) :x是输入检验的数据,‘name’指定检验哪种分布,name可以取

    name                说明

    exponential      指数分布

    extreme value  极值分布

    lognormal           对数分布

    normal                正态分布

    rayleigh                瑞利分布

    weibull                 韦伯分布

    q-q图不仅能检验样本是否服从指定分布,还能检测两个样本是否服从相同的分布。

     MATLAB统计工具箱中提供了qqplot函数绘制q-q图。

    % 粗略非参数检验的Matlab代码
    data = randn(1,1000);   %生成一个正态分布的数据用于测试
    figure()    %直方图
    histogram(data,'EdgeAlpha',0.5,'EdgeColor','k','FaceAlpha',0.5,'FaceColor','r');
    figure()    %pp图
    probplot('normal',data);
    figure()    %QQ图
    data2 = randn(1,1000);
    qqplot(data,data2);

    非参数检验:卡方检验、二项分布检验、K-S检验、变量值随机性检验等(精确)

    • 两独立样本的非参数检验

    Mann-Whitney U检验、K-S检验、W-W游程检验、极端反应检验

    Mann-Whitney U:是通过对平均秩的研究来实现推断(秩和检验)

    KS Z是通过对分布的研究来实现推断的

    Moses extreme reactions一个作为控制样本,另一个作为实验样本

    Wald Wolfwitz Runs(游程检验):通过游程研究来实现推断的

    • 多独立样本的非参数检验

    Kruskal-Wallis H秩和检验:通过对推广的平均秩研究来实现推断的

    Median(中位数)检验是通过对中位数的研究来实现推断的

    Jonkheere-Terpstra检验与两个独立样本检验的Mann-Whitney U类似

    • 两相关样本的非参数检验

    Wilcoxon秩和检验、Sign检验(符号检验)、McNemar检验、Marginal Homogeneity检验

    • 多相关样本的非参数检验

    Friedman检验、Kendall’s W检验、Cochran’s Q检验

     

    后续会逐步完善的

     

     

     

    展开全文
  • 非参数检验matlab 实现 Kolmogorov-Smirnov test 检验两个样本是否有相同分布 Kstest Test statistics max F (x) G(x) [h,p,ksstat,cv] = kstest(x,CDF,alpha,type) x 被测试的数据样本以列向量输入continuous ...
  • 统计评论 10:进一步的非参数方法。 重症监护 2004, 8: 196-199 假设: 数据必须至少是有序的 必须以有意义的顺序选择组,即排序 如果您不选择输入自己的组分数,则分数将按照 n 组的选择顺序统一分配 (1 ... n)。...
  • 弗里德曼检验是由美国经济学家米尔顿弗里德曼开发的一种非参数统计检验。 类似于参数重复测量方差分析,它用于检测多次测试尝试中的治疗差异。 该过程包括对每一行(或块)进行排名,然后按列考虑排名的值。 适用于...
  • 用于评估配对(相关)样本之间差异的非参数 Wilcoxon 检验。 如果差值小于15,则算法计算精确的秩分布; 否则它使用正态分布近似。 现在,MatLab 函数 SIGNRANK 返回相同的 p 值。 无论如何,这个 Wilcoxon 函数提供...
  • H = TRIPLESTEST(X) 对零假设的对称性(偏度)执行非参数三元组检验,即 X 中的数据来自具有未知中位数的对称分布。 该检验涉及检查来自 X(三元组)的三个变量的子集,以确定分布偏斜的可能性。 H==0 表示在 5% 的...
  • 该文件执行非参数 Mann-Whitney-Wilcoxon 检验来评估未配对样本之间的差异。 如果组合数小于20000,算法计算出准确的秩分布; 否则它使用正态分布近似。 结果跟不一样RANKSUM MatLab函数,但有更多输出信息。 该测试...
  • Dunn 检验是 Holm-Sidak 多重 t 检验非参数模拟。 当您使用 Kruskal-Wallis 检验时,您知道您的组之间是否存在差异,但您无法对每对夫妇应用 KWtest,因为总体误差 > alpha(邦费罗尼不等式)。 通过 Dunn 的测试...
  • Kruskal-Wallis 的非参数方差分析检验了组间的差异,它适用于相等或不相等的样本量以及是否存在相同的等级。 该文件同时使用卡方和 F 近似值。
  • 非参数检验matlab实现.doc
  • 非参数方差分析的 Kruskal-Wallis 检验在统计学中,Kruskal-Wallis 按等级对方差进行单向分析(命名为(威廉·克鲁斯卡尔(William Kruskal)和W.艾伦·沃利斯(W.Allen Wallis) 检验各组之间人口中位数的相等性。 ...
  • 7.MATLAB参数统计与假设检验-常用非参数检验

    万次阅读 多人点赞 2017-02-20 09:35:58
    常用非参数检验 在用样本数据对总体信息做出统计推断时,通常要求抽样应满足随机性和独立性,因为几乎所有的抽样定理都是建立在数据独立的基础之上的。而在用样本数据对正态总体参数做出统计推断(例如参数估计和...

     常用非参数检验

    更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

    在用样本数据对总体信息做出统计推断时,通常要求抽样应满足随机性和独立性,因为几乎所有的抽样定理都是建立在数据独立的基础之上的。而在用样本数据对正态总体参数做出统计推断(例如参数估计和假设检验)时,还要附加一个要求:样本数据应服从正态分布,这种数据分布类型已知的总体参数的假设称为参数假设检验。与参数假设检验相对应的还有非参数假设检验,例如分布的正态性检验,样本的随机性检验等,这类检验通常只假定分布是连续的或对称的,并不要求数据服从正态分布。

     1 游程检验

        在实际应用中,需要对样本数据的随机性和独立性作出检验,这要用到游程检验,它是一种非参数检验,用来检验样本数据的随机性,通常人们认为满足随机性的样本数据也满足独立性。

     在以一定顺序(如时间)排列的有序数列中,具有相同属性(如符号)的连续部分被称为一个游程,一个游程中所包含数据的个数称为游程的长度,通常用R表示一个数列中的游程总数。

    例:

    设某样本n=12人的标志表现为男、女,有以下三种排列。

      (i) 男\男,女\女\女,男,女\女,男\男\男\男 (ii) 男\男\男\男\男\男\男,女\女\女\女\女 (iii)男,女,男,女,男,女,男,女,男,女,男\男

        连续出现男或女的区段称为游程。

     每个游程包含的个数为游程长度。以r表示序列中游程的个数:

      (i)r=5, (ii)r=2, (iii)r=11

      可以看出,(i)是随机性序列;(ii)(iii)是非随机性序列,所以,可以用游程的个数来检验样本的随机性,或总体的分布特征。

     在游程检验中,数据序列的游程总数偏少或偏多都是数据不满足随机性的变现,因此,游程的一般都是W={R>r1或R<r2}。


    例2:

    一个包含12个数的有序序列如下:

    6  13  9  16  6  8  4  8  11  10  5  1

    -  +     +   +    -   -    -   -   +    +    -   -

    这是一个数值序列,可以采用以下两种方式计算游程总数。

    (1)以某一值(例如数据的均值)为界,将大于该值标记为“+”,小于该值标记为“-”,等于的去除,然后确定游程总数,可得游程总数为5

     (2)根据数列中出现的连续增和连续减的子序列数确定游程总数,这种方式下确定的游程总数为8.

    MATLAB统计工具箱中提供了runstest函数,用来做游程检验,调用格式如下:

     <1>h = runstest(x)

          对样本数据序列x进行游程检验,原假设为H0:数据出现是随机的,备择假设为H1:数据出现顺序不随机。此时已x的均值为界计算游程。输出参数h等于0或1,若为0,则在显著性水平0.05下接受原假设,认为样本数据满足随机性;若为1,则拒绝原假设,认为样本数据不满足随机性。runstest函数会把x中的NaN作为缺失数据而忽略。

     <2> h = runstest(x,v)

        以数值v为界进行游程检验,v的默认值为数据序列x的均值。

     <3>h=runstest(x,‘ud’)

          根据数列中出现的连续增和连续减的子序列数确定游程总数,从而进行游程检验,此时,数列x中与前一元素相同的数将会被去除

     <4> h = runstest(...,param1,val1,param2,val2,.....)

            用可选的成对出现的参数名和参数值控制计算结果,可用的参数与参数值如下表

     <5>[h,p]=runstest(......)

       返回检验的p值,当p值小于或等于显著性水平a时,拒绝原假设,否则接受原假设

     参数名                         参数值及说明

    ‘alpha’                    检验的显著性水平,取值介于

                                   0--1之间,默认值为0.05


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

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

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


    ‘tail’                   尾部类型变量,用来指定备择假设的形式,可能的取值如下:

                              ‘both’:双侧检验

                               ‘right’右尾检验

                              ‘ left’ 作为检验


    <6>[h,p,stats]=runstest(......)

       返回一个结构体变量stats,它包含以下字段

      nurns:游程总数

     n1:数据序列中大于v的数据个数

     n0:数据序列中小于v的数据个数

     z:检验统计量的值


    例:

    研究中国福利彩票“双色球”开奖号码中的蓝色球号码的出现是否随机


    %读取”双色球开奖数据.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.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,认为甲乙两位候选人的支持率有非常显著的差异。


    例:

    两组(各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无显著差异。

      对于配对样本的符号秩检验,只需将两样本对应数据做差,即可将其化为单样本符号秩检验

     讲解下面这个例子

     http://wiki.mbalib.com/wiki/%E5%A8%81%E5%B0%94%E7%A7%91%E5%85%8B%E6%A3%AE%E7%AC%A6%E5%8F%B7%E7%A7%A9%E6%A3%80%E9%AA%8C

       (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下接受原假设,认为两种饲料喂养的小白鼠体重的增加量没有显著性差异。

    更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

    展开全文
  • 该代码执行原始的双尾 Mann-Kendall 检验。 它针对趋势的替代测试向量 V 中趋势缺失的零假设。 测试结果在 H = 1 中返回,表明在 alpha 显着性水平拒绝原假设。 H = 0 表示未能在 alpha 显着性水平上拒绝原假设。
  • 这是学生 t 检验非参数等价物。 有关更多一般详细信息,请参阅https://en.wikipedia.org/wiki/Mann–Whitney_U_test 。 该函数检验的数学公式基于 Jerrold H Zar 的“生物统计分析”。 克鲁斯卡尔瓦利斯测试对...
  • 该代码执行 Spearman 的 rho 测试。 它针对趋势的替代测试向量 V 中趋势缺失的零假设。 测试结果返回 Td = 1 表示正趋势 Td = -1 表示负趋势,即在 alpha 显着性水平拒绝原假设。 Td = 0 表示未能在 alpha 显着性...
  • 该代码执行了一个版本的两尾 Cox-Stuart 检验。 它针对趋势的替代测试向量 V 中趋势缺失的零假设。 测试结果在 H = 1 中返回,表明在 alpha 显着性水平拒绝原假设。 H = 0 表示未能在 alpha 显着性水平上拒绝原假设...
  • 前段时间审稿人给我文章的审稿意见中有要求对实验结果做假设性检验,我做了一番学习,网上这方面资料也比较少,记录如下。...Wilcoxon秩和检验是一种常见的用于判断两个分布列是否有显著区别的非参数检验方...
  • 在顺序假设检验中,样本量不是... 由于符号检验是非参数的,我们不关心样本的分布。 我们只希望它们是连续的。 阅读方法描述和假设的参考: 顺序方法及其应用作者:Nitis Mukhopadhyay, Basil M. de Silva 第 5.5 章
  • 代码执行两个尾 Mann-Kendall 检验,修改后考虑时间序列的自相关(Hamed 和 Rao,1998)。 对照趋势的替代,检验向量 V 中趋势缺失的零假设。 测试结果在 H = 1 中返回,表明在 alpha 显着性水平拒绝原假设。 H = 0 ...
  • 运用matlab进行参数检验,学会matlab在数理统计中的运用
  • 这受到来自 matlab 统计工具箱的 kstest2 的启发。 适用于中到大样本量,查看代码中的参考。
  • ks检验matlab小程序.zip

    2020-05-07 16:47:15
    用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1,添加了威布尔分布 (1)求取待检测数据的特征参数;...(3)利用K-S检验方法,比较匹配数据和待检测数据之间的相似性,给出检验结果。
  • 代码1:deseason.mfunction [rp,vp] = deseason(data,textdata);days = flipud(textdata(:,1));days = days(1:end-1);volume = flipud(data(:,5));price = flipud(data(:,6));% convert dates to day numbersdaynums...
  • Matlab进行MK检验.doc

    2021-04-20 03:49:05
    Matlab进行MK检验用Matlab进行Mann-Kendall分析一、M-K趋势分析法与M-K突变检验的原理介绍1、Mann-Kendall趋势分析法非参数检验,又称任意分布检验,它不对变量的分布做严格假定,检验不针对特定的参数,而是模糊...
  • 不过楼主的问题似乎有过拟合现象导致目标函数值一样但参数组值不唯一。下面是用1stOpt计算得到的几组结果:1:均方差(RMSE): 0.00258526969626227残差平方和(SSE): 6.01525746217079E-5相关系数(R): 0....
  • 非参数双向方差分析的四边形检验。 此功能执行 Quade 测试以分析未复制的完整块设计。 Dana Quade 于 1979 ... QUADETEST:非参数双向方差分析的四边形检验http://www.mathworks.com/matlabcentral/fileexchange/25926
  • Fligner-Policello 是对具有连续累积分布的两个组合随机变量的非参数检验。 它是对既不假定正态性也不假定方差相等(Behrens-Fisher 问题)的群体的处理效果的稳健排序检验。 它做了一个假设,当分布是对称的时它是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,458
精华内容 2,983
关键字:

matlab非参数检验

matlab 订阅