美文网首页
MATLAB|数据数据概率分布拟合相关

MATLAB|数据数据概率分布拟合相关

作者: 冰冻生菜ch | 来源:发表于2018-02-20 23:45 被阅读4065次

本文主要内容

  • 01 数据的基本数字特征
  • 02 MATLAB数据分布拟合工具箱dfittool介绍
  • 03 常用的分布
  • 04 数据统计概率分布的一些函数
  • 05 MATLAB程序示例
  • 06 参考资料

01 数据的基本数字特征

数据的个数,均值,标准差,变异系数,散度,峰值,最大值,最小值


02 MATLAB数据分布拟合工具箱dfittool介绍

官网在线说明文档:https://cn.mathworks.com/help/stats/dfittool.html
17版distributionFitter代替了dfittool。

MATLAB自带的dfittool工具箱可以直观方便的考察数据的概率分布情况。
界面如下图所示,可以选择不同的图形类型:

  • Density (PDF)概率密度函数
  • cumulative distribution function -- CDF累积分布函数
  • Probility plot 概率图
PDF
CDF、Probility plot

021 使用方法

Step1:输入数据

  • 命令:
dfittool(y)
dfittool(y,cens,freq,dsname)
creates a data set with the name dsname, using the data vector, y, censoring indicator, cens, and frequency vector, freq.
  • 为数据的直方图设置要求:设置直方图的宽度或者数目


  • 设置规则Set Bin Rules:
    Freedman-Diaconis rule — 自动
    Scott rule — 对于呈正态分布的数据,采用该算法自动设置宽度和数目
    Number of bins —组数目
    Bins centered on integers — 设置组以整数为中心
    Bin width — 宽度,即组距
    Automatic bin placement — 自动
    Bin boundary at — 边界

Step2:创建拟合

  • Results结果:
    • 比如:Normal分布的结果
Distribution:    Normal
Log likelihood:  820.911
Domain:          -Inf < y < Inf
Mean:            0.737229
Variance:        0.0030936

Parameter  Estimate   Std. Err. 
mu          0.737229  0.00235459
sigma      0.0556202  0.00166719

Estimated covariance of parameter estimates:
       mu           sigma      
mu     5.54409e-06  1.29284e-19
sigma  1.29284e-19  2.77952e-06
  • 说明:

    • Distribution: 分布名称
      Log likelihood: 相似性
      Domain: 数据范围
      Mean: 所考查数据的均值
      Variance: 所考查数据的方差
    • Parameter Estimate Std. Err.
      该分布的参数,估计值,标准误差(例如:对于正态分布,参数为:均值、标准差)
    • Estimated covariance of parameter estimates
      各个参数之间估计值的协方差

022 注意:

  • dfitool工具箱绘出的PDF图(概率密度图)的纵坐标为density(密度),而常见频率直方图的纵坐标为频数或者频率,此处的密度density=频率/组距,即每个组的面积等于频率。
    • 频数=个数
      频率=频数/样本总个数
      密度=频率/组距
  • 关于频数分布图、频率分布图、频率/组距分布图的区别,可以看看下面截图的描述(From: http://www.doc88.com/p-0039213122184.html):



03 常用的分布

  • Gamma

  • Weibull Distribution

  • t Location-Scale Distribution
    MathWorks上是这么说的:“The t location-scale distribution is useful for modeling datadistributions with heavier tails (more prone tooutliers) than the normal distribution. It approaches the normaldistribution as ν approaches infinity, and smaller values of ν yield heaviertails.” 也就是说它比正态分布具有更多的异常值。



04 数据统计概率分布的一些函数

函数 说明 说明
makedist Create probability distribution object 创建某种概率分布
fitdist Fit probability distribution object to data 根据原始数据得到某种分布的参数
distributionFitter,dfittool Open Distribution Fitter app 打开曲线拟合工具箱

041 参数估计

  • fitdist
    `pd1 = fitdist(y, 'normal');'

生成某些分布

  • 常用的通用分布函数如下:
    pdf — Probability density functions用于生成各类概率分布的概率密度函数PDF
    cdf — Cumulative distribution functions用于生成各类概率分布的累计概率密度函数
    inv — Inverse cumulative distribution functions用于生成各类概率分布的逆累积分布函数
    rnd — 用于生成各类概率分布的随机数
  • 常用的专用分布函数如下:(*表示通配符,用于指定特定分布)
    *pdf:生成特定的概率分布的PDF

常用的分布函数

Distribution Using Objects Legacy Functions Apps and UIs
Beta BetaDistribution betapdf,betacdf,betainv,betastat,betafit,betalike,betarnd Distribution Fitter,Probability Distribution Function,randtool
Burr Type XII BurrDistribution pdf,cdf,icdf,mle,random Distribution Fitter,Probability Distribution Function,randtool
Exponential ExponentialDistribution exppdf,expcdf,expinv,expstat,expfit,explike Distribution Fitter,Probability Distribution Function,randtool
Extreme value ExtremeValueDistribution evpdf,evcdf,evinv,evstat,evfit,evlike,evrnd Distribution Fitter,Probability Distribution Function,randtool
Gamma GammaDistribution gampdf,gamcdf,gaminv,gamstat,gamfit,gamlike,gamrnd Distribution Fitter,Probability Distribution Function,randtool
Generalized extreme value GeneralizedExtremeValueDistribution gevpdf,gevcdf,gevinv,gevstat,gevfit,gevlike,gevrnd Distribution Fitter,Probability Distribution Function,randtool
Generalized Pareto GeneralizedParetoDistribution gppdf,gpcdf,gpinv,gpstat,gpfit,gplike,gprnd Distribution Fitter,Probability Distribution Function,randtool
Half-Normal Distribution HalfNormalDistribution pdf,cdf,icdf,mle,random Distribution Fitter,Probability Distribution Function,randtool
Inverse Gaussian InverseGaussianDistribution pdf,cdf,icdf,mle,random Distribution Fitter
Logistic LogisticDistribution pdf,cdf,icdf,mle,random Distribution Fitter
Loglogistic LoglogisticDistribution pdf,cdf,icdf,mle,random Distribution Fitter
Lognormal LognormalDistribution lognpdf,logncdf,logninv,lognstat,lognfit,lognlike,lognrnd Distribution Fitter,Probability Distribution Function,randtool
Nakagami NakagamiDistribution pdf,cdf,icdf,mle,random Distribution Fitter
Normal (Gaussian) NormalDistribution normpdf,normcdf,norminv,normstat,normfit,normlike,normrnd Distribution Fitter,Probability Distribution Function,randtool
Piecewise linear PiecewiseLinearDistribution pdf,cdf,icdf,random
Rayleigh RayleighDistribution raylpdf,raylcdf,raylinv,raylstat,raylfit,raylrnd Distribution Fitter,Probability Distribution Function,randtool
Rician RicianDistribution pdf,cdf,icdf,mle,random Distribution Fitter
Stable StableDistribution pdf,cdf,icdf,mle,random Distribution Fitter,Probability Distribution Function,randtool
Triangular TriangularDistribution
Uniform (continuous) UniformDistribution unifpdf,unifcdf,unifinv,unifstat,unifit,unifrnd Probability Distribution Function,randtool
Weibull WeibullDistribution wblpdf,wblcdf,wblinv,wblstat,wblfit,wbllike,wblrnd Distribution Fitter,Probability Distribution Function,randtool

042 拟合检验:Hypothesis Tests

t-test, F-test, chi-square goodness-of-fit test

(1) 分布拟合检验Distribution Tests

(2) 主要介绍卡方拟合优度检验Chi-square goodness-of-fit test:chi2gof

  • 理论:

  • 代码:
[h,p,stats] = chi2gof(x,Name,Value)
x——要考察的数据
Name,Value——设置的参数和参数值
包括:
'NBins' — Number of bins
'Ctrs' — Bin centers
'Edges' — Bin edges
'CDF' — cdf of hypothesized distribution
'Expected' — Expected counts
'NParams' — Number of estimated parameters
'EMin' — Minimum expected count per bin

043 求分位值

  • 有时候需要根据数据的分布类型,求某个上分位值,如95分位值,表示有95%的数值小于该数值,或者说该变量的取值具有95%的保证率。
  • 在matlab中,inv函数表示求逆累计概率分布函数,一些分布有自己的函数,如:
norminv
gaminv
wblinv
  • 但是一些分布类型没有特定的Inv函数,此时需要用统一的求逆累计概率分布函数:icd
x = icdf('name',p,A,B,C,D)
x = icdf(pd,p)

学习:http://blog.csdn.net/matlab_matlab/article/details/56272365


05 MATLAB程序示例

  • 分析类型

    • 数据数字特征
    • 频率分布图
    • 概率密度图
    • 拟合优度检验
  • 说明: 要处理的数据为data,列向量。使用normfit(data,0.05)或者PD=fitdist(data,'burr')获得数据某些分布的参数,然后用chi2gof函数进行检验。

  • 代码:

%% 检验正态分布
data;%要处理的数据:向量
[A_n,B_n]=normfit(data,0.05);%正态分布
nbins=20;emin=10;%设置检验参数
[h,p,stats]=chi2gof(data,'nbins',nbins,'emin',emin,'cdf',{@normcdf,A_n,B_n});%卡方检验

%% 检验Burr分布
data;%要处理的数据:向量
PD=fitdist(data,'burr'), %得到Burr分布的三个参数:PD.alpha,PD.c,PD.k
nbins=20;emin=10;%设置检验参数
[h,p,stats]=chi2gof(data,'nbins',nbins,'emin',emin,'cdf',PD);%卡方检验

06 参考资料

以上主要参考资料:mathworks官网,文中链接均可连接到mathworks官网。
强烈推荐书籍资料:《MATLAB统计分析与应用 40个案例分析》,作者:谢中华,北航出版社

搜索的时候发现了一个新的软件:Minitab,没用过,不知道怎么样。网址:http://www.minitab.com/zh-cn/

费了很大的劲,终于写完了O(∩_∩)O~。

相关文章

网友评论

      本文标题:MATLAB|数据数据概率分布拟合相关

      本文链接:https://www.haomeiwen.com/subject/tkbgtftx.html