概述
我想使用chi2gof命令来分析一组大样本数据的分布情况,程序如下:function f=p_chi2gof(x,alpha)
% 本程序用于判别所给数据源的概率分布情况。
h1 = chi2gof(x,'cdf',@(z)normcdf(z,mean(x),std(x)),'nparams',2);
if h1==0
h1
disp('该数据源服从正态分布。')
else
disp('该数据源不服从正态分布。')
end
lamda=poissfit(x,alpha);
h2 = chi2gof(x,'cdf',@(z)poisscdf(z,lamda),'nparams',1);
h2;
if h2==0
disp('该数据源服从泊松分布。')
else
disp('该数据源不服从泊松分布。')
end
[ahat,bhat]=unifit(x,alpha);
h3= chi2gof(x,'cdf',@(z)unifcdf(z,ahat,bhat),'nparams',2);
if h3==0
disp('该数据源服从均匀分布。')
else
disp('该数据源不服从均匀分布。')
end
[phat,pci] = raylfit(x,alpha)
h4 = chi2gof(x,'cdf',@(z)raylcdf(z,phat),'nparams',1);
if h4==0
disp('该数据源服从rayleigh分布。')
else
disp('该数据源不服从rayleigh分布。')
end
mu=expfit(x,alpha);
h5= chi2gof(x,'cdf',@(z)gamcdf(z,mu),'nparams',1);
if h5==0
disp('该数据源服从指数分布。')
else
disp('该数据源不服从指数分布。')
end
phat=gamfit(x,alpha);
h6= chi2gof(x,'cdf',@(z)gamcdf(z,phat(1),phat(2)),'nparams',2);
if h6==0
disp('该数据源服从γ分布。')
else
disp('该数据源不服从γ分布。')
end
之后,我用各种随机数生成命令分别生成了相应分布类型的随机数数组
norm=normrnd(2,5,[1 1000]);
beta=betarnd(2,6,[1 1000]);
logn=lognrnd(3,6,[1 1000]);
exp=exprnd(10,[1 1000]);
poiss=poissrnd(8,[1 1000]);
rayl=raylrnd(30,[1 1000]);
gam=gamrnd(6,9,[1 1000]);
unif=unifrnd(1,100,[1 1000]);
再利用函数p_chi2gof()来检验这些数组相应的分布形式
出现了几个问题:
检验指数分布随机数据的结果为:该数据源不服从指数分布,该数据源服从γ分布。
检验泊松分布随机数据的结果为:该数据源不服从泊松分布(且不服从任意其他分布)
检验瑞利分布随机数据的结果为:该数据源服从rayleigh分布,该数据源服从γ分布。
会出现这样的问题回事什么原因?我在程序上有哪些不正确的地方吗?
谢谢^_^
最后
以上就是强健发夹为你收集整理的matlab三角定位分析程序,Matlab chi2gof 分布分析程序求教的全部内容,希望文章能够帮你解决matlab三角定位分析程序,Matlab chi2gof 分布分析程序求教所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复