知识库 > 数学方法 > 统计推断 > 非参数的假设检验

分布特征检验    

  • 本节中,我们将介绍几种判断一组数据是否服从给定分布的假设检验。正态分布是许多检验的基础,比如F检验,t检验,卡方检验等在总体不是正太分布是没有任何意义。因此,对一个样本是否来自正态总体的检验是至关重要的。当然,我们无法证明某个数据的确来自正态总体,但如果使用效率高的检验还无法否认总体是正太的检验,我们就没有理由否认那些和正太分布有关的检验有意义。
    NormPlot的基本思路是使用给定数据的经验分布与对应标准正态分布作比较,得到的散点图如果近似于一条直线,则我们认为该样本服从正态分布。

    定义:NormPlot(x:Array,ReturnType:Integer):Array;
    说明:基于正态概率纸的正态性检验, ReturnType为0时返回我们常说的QQ图的散点数据,为1返回衡量散点与直线拟合程度的可决系数
    参数:
    x:检验样本序列,为一维数组类型
    ReturnType:返回类型选项,为0返回散点数据,为1返回直线拟合的可决系数。缺省为0

    x:=rand(10);
    return NormPlot(x);
    返回结果:
    array(
    ("采样位数":0.171976955840364,"理想位数":-1.64484977722168),
    ("采样位数":0.301570532377809,"理想位数":-1.03643536567688),
    ("采样位数":0.470976530341431,"理想位数":-0.674489885568619),
    ("采样位数":0.479131903499365,"理想位数":-0.38532167673111),
    ("采样位数":0.678062069928274,"理想位数":-0.125661492347717),
    ("采样位数":0.735156666953117,"理想位数":0.125661492347717),
    ("采样位数":0.739045920781791,"理想位数":0.38532167673111),
    ("采样位数":0.780685598030686,"理想位数":0.674489885568619),
    ("采样位数":0.817699506180361,"理想位数":1.03643536567688),
    ("采样位数":0.828364443266764,"理想位数":1.64484977722168))
    QQ图形:

    Return NormPlot(x,1);
    返回结果:0.911334081735257
    从以上结果,我们可以有理由相信,该样本来自正态总体。这种方法,虽然比较直观,但是,我们不知道什么样的一个什么样的拟合程度才是我们需要的。
    下面我们再来介绍下Kolmogorov-Smirnov检验的基本思路:
    原假设:随机样本数据服从分布

    表示一组随机样本的累计概率函数,表示分布的分布函数。
    当原假设为真时,D的值应较小,若过大,则怀疑原假设,从而,拒绝域为   

    定义:Hypoth_Kstest(data:Array,tail:String,alpha:Real,cdf:Array):array;
    说明:在alpha的显著性水平下进行ks检验,检验序列是否服从cdf这种分布(缺省为标准正态分布),Hypothesis为测试结果,若Hypothesis=1,则认为服从;Hypothesis=0,可以认为不服从该分布
    参数:
    data:样本数据,一维数字数组
    tail:检验类型,字符串类型,必须包含在array("both","left","right")中
    alpha:显著性水平,实数或整数,在01之间
    cdf:分布的累计概率分布,二维数字数组,第一列为随机变量,第二列为其对应的分布函数值,缺省为标准正态分布
    返回结果:
    ret["statistical"]:KS统计量
    ret["criticalValue"]:KS检验的临界值
    ret["P-Value"]:KS检验的P值
    ret["Hypothesis"]:是否服从设定的分布

    lillietest检验是对Kolmogorov-Smirnov检验的修正,我们检验随机序列是否服从正态分布,可以先使用估计出参数,在通过该分布取分布函数值计算统计量的值。

    定义:Hypoth_lillietest(data:Array,alpha:Real,distr:String):Array;
    说明:在alpha的显著性水平下进行lillietest检验,检验序列是否服从正态分布或对数分布(分布参数估计出来),Hypothesis为测试结果,若Hypothesis=1,则认为服从;Hypothesis=0,可以认为不服从该分布
    参数:
    data:样本数据,一维数字数组
    alpha:显著性水平,实数或整数,在01之间
    distr:分布函数类型,字符串数据,有"norm"、"exp"
    返回结果:
    ret[""kstat"]:统计量
    ret["cv"]:检验统计量的临界值
    ret["P-Value"]:检验的P值
    ret["Hypothesis"]:是否服从设定的分布