matlab kstest,用matlab软件实现Kolmogorov-Smirnov检验 - Freya's Blog - New Morning

K-S检验是来自某一特定分布的方法。它的检验方法是以样本数据的经验分布函数与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。

即对于假设检验问题:

H=0:样本所来自的总体分布服从某特定分布;

H=1:样本所来自的总体分布不服从特定分布。

k-s检验的检验统计量是

57153b15bc929ecfa355eb4b9648562f9cd6451f.png

其中,

94f2768082614c2188dbaa714099b745dc5638c2.png

是经验分布函数,

19e67ec37b360f83f7aadade0d6cd63d6d44da7d.png是理论分布函数。

经验分布函数:

65cae7b7c24204f1bbf133fd6426bb5393df2f0a.png是抽自总体X的一个样本,观察值为

2b4dcd0a620dd1553ba0dfec424a076f502f79d2.png,次序观测值为

e58235b09cffb9ddb533f760506a248471bae442.png,则总体X的经验分布函数定义为

1195998965024540cf1b628d4bcbc9f35dc230ea.png

c1ee3649785f891a8847e23998ce031bba23b2fb.png

理论分布函数:

由于我们产生的是服从0-1均匀分布的随机数,(a,b)均匀分布的分布函数为

6725fede4bc69f2db1653ca439fa5815254eaf0a.png

将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);

你可能感兴趣的:(matlab,kstest)