warmhearted 发表于 2007-8-26 09:33

如何统计出某列数据符合什么分布

问题1 : 给定一列数据,如何统计出这列数据符合什么分布呢?
如:
0 0.41214 0.76525 0.68232 0.73807 1.019 0.60452 1.0834 1.1135 0.94951 0.69712 1.0637 1.3658 0.8992 1.715 1.604 2.5476 2.3084 2.3531 2.6823 2.8665 2.8017 2.6988 3.1254 2.9164 2.9204 3.1865 3.1029 3.1999 3.2573 3.6025 3.8058 4.2056 4.5434 5.7013 5.2751 6.3063 6.8964 7.0063 7.1357 6.9776 6.6779 6.5496 6.5395 7.257 7.5914 7.4754 7.8587 8.1931 8.3006 8.2573 8.0932 8.6925 9.2447 9.61 9.6346 9.959 10.524 11.109 11.381 11.447 12.109 12.437 12.933 13.222 13.256 13.347 13.432 13.539 13.431 13.557 13.722 13.804 13.337 13.924 13.628 14.11 14.188 14.151 14.239 13.839 14.313 14.444 14.276 15.167 16.276 17.003 17.519 17.242

先谢了!!!!

xjzuo 发表于 2007-8-26 10:21

先画图,再估计.

warmhearted 发表于 2007-8-26 11:55

大侠能详细点吗?如果只是plot(x)肯定不行


===================================
可以参考下面bainhome的程序;
也可以先画图、初步判断,再用相应的Matlab函数判断.
By xjzuo
==================================

[ 本帖最后由 xjzuo 于 2007-8-26 22:06 编辑 ]

bainhome 发表于 2007-8-26 12:14

你的数据服从正态分布。
以前写过一个假设检验的函数,主要是利用K-S检验的一个MATLAB函数kstest。其他分布自己按照格式照猫画虎填写即可:
function f=p_judge(A,alpha)
% 本程序用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1。
A=A(:);
=normfit(A);
p1=normcdf(A,mu,sigma);
=kstest(A,,alpha)
n=length(A);
if H1==0
    disp('该数据源服从正态分布。')
else
    disp('该数据源不服从正态分布。')
end
phat=gamfit(A,alpha);
p2=gamcdf(A,phat(1),phat(2));
=kstest(A,,alpha)
if H2==0
    disp('该数据源服从γ分布。')
else
    disp('该数据源不服从γ分布。')
end
lamda=poissfit(A,alpha);
p3=poisscdf(A,lamda);
=kstest(A,,alpha)
if H3==0
    disp('该数据源服从泊松分布。')
else
    disp('该数据源不服从泊松分布。')
end
mu=expfit(A,alpha);
p4=expcdf(A,mu);
=kstest(A,,alpha)
if H4==0
    disp('该数据源服从指数分布。')
else
    disp('该数据源不服从指数分布。')
end
= raylfit(A, alpha)
p5=raylcdf(A,phat);
=kstest(A,,alpha)
if H5==0
    disp('该数据源服从rayleigh分布。')
else
    disp('该数据源不服从rayleigh分布。')
end

warmhearted 发表于 2007-8-26 14:44

谢谢bainhome , 我先学习一下你的程序,如果不明白还有多多请教

abc198478 发表于 2009-12-17 16:42

呱呱,太感谢了,正是我想要的!!找了好久了!!:lol :lol :lol :lol
页: [1]
查看完整版本: 如何统计出某列数据符合什么分布