首页/文章/ 详情

用MATLAB判断一组数据是否符合正态分布

1年前浏览625

问题描述

有一组已知的数据,例如为:

1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4

这组数据是否满足正态分布呢?如果满足的话,在后续的处理过程中,就可以用相应的数学表达式来描述其规律了,即已知散点数据,求其概率分布的问题。

实现方法

1.首先,用normplot()函数来简单拟合一下。

对于上面的例子,首先设:

m=[1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4]

normplot(m)


看结果,发现散点基本都可以在红色的直线附近,说明这组数据有很大的可能性符合正态分布。

这里需要说明的是,这其实就是一张“正太概率纸”,即横坐标是等间隔的,而纵坐标却为按照标准正态分布给出的点。以上图举例,横坐标为1001.6时(这组已知数据中的任意值),其在红线上对应的点,就恰好为标准正态分布的纵坐标。因此,当实际散点与红线举例跃进,这组数据就越接近于标准正态分布。

如果已知数据符合正态分布规律的话,那散点就会在直线附近,呈线性分布,如果有“拐弯”的情况,就不是正态分布了。

但是呢,绘图法还不足以证明这组数据一定符合正态分布,还需要用另外的函数

2.用lillietest函数或jbtest函数进行正态分布的拟合优度测试

进行假设检验,格式:[H,P,LSTAT,CV] = lillietest(X,alpha)

其中,P为接受假设的概率值,P越接近于0,则可以拒绝是正态分布的原假设;LSTAT为测试统计量的值,CV为是否拒绝原假设的临界值。

对于本例,则为

[H,P,LSTAT,CV] = lillietest(m,0.05)
H =
0
P =
0.5000
LSTAT =
0.1028
CV =
0.1730

h=0说明接受假设,该组数据符合正态分布;p=0.5说明符合正态分布的概率很大;LSTAT小于接受假设的临界值0.173,因此接受假设。

至此,判断结束。

其实,除了正态分布以外,还可以对其他的概率分布类型进行假设检验,以后有空一一列举出来。


来源:十千牛
MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-02-25
最近编辑:1年前
长河
博士 | 黑龙江科技大... 签名征集中
获赞 8粉丝 14文章 194课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈