本节中,我们将介绍几种判断一组数据是否服从给定分布的假设检验。正态分布是许多检验的基础,比如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"]:是否服从设定的分布