Freya's Blog - New Morning
用matlab软件实现Kolmogorov-Smirnov检验
K-S检验是来自某一特定分布的方法。它的检验方法是以样本数据的经验分布函数与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。
即对于假设检验问题:
H=0:样本所来自的总体分布服从某特定分布;
H=1:样本所来自的总体分布不服从特定分布。
k-s检验的检验统计量是
其中,是经验分布函数,是理论分布函数。
经验分布函数:
设是抽自总体X的一个样本,观察值为,次序观测值为,则总体X的经验分布函数定义为
即
理论分布函数:
由于我们产生的是服从0-1均匀分布的随机数,(a,b)均匀分布的分布函数为
将a=0,b=1代入公式,可得到数据的理论分布函数。
matlab代码如下:
path=strcat(pwd,'\filename'); x=importdata(path); x=sort(x); %画出经验分布函数 figure cdfplot(x); hold on %画出标准分布函数 plot(x,unifcdf(x,0,1),'r-'); hold off %检验数据序列符合均匀分布的程度 [H,pvalue]=kstest(x[x,unifcdf(x,0,1)],0.05);