本文主要内容:
- 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 概率图
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
各个参数之间估计值的协方差
- Distribution: 分布名称
022 注意:
- dfitool工具箱绘出的PDF图(概率密度图)的纵坐标为density(密度),而常见频率直方图的纵坐标为频数或者频率,此处的密度density=频率/组距,即每个组的面积等于频率。
- 频数=个数
频率=频数/样本总个数
密度=频率/组距
- 频数=个数
- 关于频数分布图、频率分布图、频率/组距分布图的区别,可以看看下面截图的描述(From: http://www.doc88.com/p-0039213122184.html):
03 常用的分布
-
Burr Type XII 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
常用的分布函数
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~。
网友评论