正态性检验怎么看结果(如何判断数据是否属于正态分布)
正态性检验怎么看结果,如何判断数据是否属于正态分布。小编来告诉你更多相关信息。
matlab正态分布检验:
(一) 进行参数估计和假设检验时,通常总是假定总体服从正态分布,虽然在许多情况下这个假定是合理的,但是当要以此为前提进行重要的参数估计或假设检验,或者人们对它有较大怀疑的时候,就确有必要对这个假设进行检验,进行总体正态性检验的方法有很多种,以下针对MATLAB统计工具箱中提供的程序,简单介绍几种方法。
1)Jarque-Bera检验
利用正态分布的偏度g1和峰度g2,构造一个包含g1,g2的分布统计量(自由度n=2),对于显著性水平,当分布统计量小于分布的分位数时,接受H0:总体服从正态分布;否则拒绝H0,即总体不服从正态分布。这个检验适用于大样本,当样本容量n较小时需慎用。Matlab命令:h =jbtest(x),[h,p,jbstat,cv] =jbtest(x,alpha)。
例子:
[h,p]=jbtest(a,0.05)
h为测试结果,若h=0,则可以认为X是服从正态分布的;若h=1,则可以否定X服从正态分布;
p为接受假设的概率值,P越接近于0,则可以拒绝是正态分布的原假设;
2)Kolmogorov-Smirnov检验
通过样本的经验分布函数与给定分布函数的比较,推断该样本是否来自给定分布函数的总体。容量n的样本的经验分布函数记为Fn(x),可由样本中小于x的数据所占的比例得到,给定分布函数记为G(x),构造的统计量为,即两个分布函数之差的最大值,对于假设H0:总体服从给定的分布G(x),及给定的,根据Dn的极限分布(n时的分布)确定统计量关于是否接受H0的数量界限。
因为这个检验需要给定G(x),所以当用于正态性检验时只能做标准正态检验,即H0:总体服从标准正态分布。Matlab命令:h =kstest(x)。
例子:
A=A(:);
alpha=0.05;
[mu,sigma]=normfit(A);
p1=normcdf(A,mu,sigma);
[H1,s1]=kstest(A,[A,p1],alpha);
n=length(A);
if H1==0
disp('该数据服从正态分布。')
end
温馨提示:
要对一组样本进行正态性检验,在MATLAB中,一种方法是用normplot画出样本,如果都分布在一条直线上,则表明样本来自正态分布,否则是非正态分布。
MATLAB中也提供了几种更正式的检验方法:
kstest Kolmogorov-Smirnov 正态性检验,将样本与标准正态分布(均值为0,方差为1)进行对比,不符合正态分布返回1,否则返回0;该函数也可以用于其它分布类型的检验;
lillietest Lilliefors test。 与kstest不同,检验目标不是标准正态,而是具有与样本相同均值和方差的正态分布。
jbtest Jarque-Bera test。与 Lilliefors test 类似,但不适用于小样本的情况。