MATLAB通过ks检验寻找数据概率分布的最优拟合

本文介绍了一种在数据处理中不确定分布特性时,通过fitdist函数拟合多种概率分布并利用kstest进行KS检验来确定最优分布的方法。作者以自然地理数据为例,展示了如何通过选择KS统计量最小的拟合函数作为最佳拟合过程。
摘要由CSDN通过智能技术生成

有时在数据处理过程中需要对数据进行概率分布拟合。当具有多组数据,且不清楚这些数据是否具有相同分布特征的情况下,如何寻找最优的拟合方式?尝试提出以下解决办法。

运用到的两个核心函数为fitdist以及kstest。

首先,列出数据可能符合的概率分布函数(具体可以查看fitdist官方说明文档中的“分布名称”一栏:对数据进行概率分布对象拟合 - MATLAB fitdist - MathWorks 中国),将其分别对数据进行拟合,主要代码为pd=fidist(data,distname);

然后分别对原数据及拟合各个函数进行KS检验,选择ks统计量最小的拟合函数作为最优分布,主要代码为:[h,p,kstat,cv]=kstest(data,'CDF',pd);

示例代码如下:

flist={‘Gamma’;‘Weibull’;‘gev’;‘gp’;‘Lognormal’;‘Logistic’;‘Rayleigh’;‘Exponential’} %创建拟合函数库。博主处理的是自然地理数据,选择以上8个函数进行拟合

for i=1:length(flist)

    pd{i}=fidlist(data,flist{i}); %其中data必须为单列数据

    [~,~,kstat(i),~]=kstest(data,'CDF',pd{i});   

end

kmin=min(kstat);  %寻找最小ks统计量

bestf=pd{kstat==kmin};  %输出最小ks统计量对应的最优拟合分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值