Advertisement

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

阅读量:

问题描述

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

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=[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)

385ff89e40620ddacc1151bdb4731321.png

观察结果后发现散点大多集中在一条红色趋势线周围,并表明这组数据很可能遵循正态分布规律

需要指出的是,这其实就是一张"正太概率纸",也就是一张横坐标采用等间距设置而纵坐标则按照标准正态分布给出点位的图表。以图为例,在红线上取对应点即可得到标准正态分布的概率值。当实际散点与红线存在较大偏离时,则表明这组数据越接近于标准正态分布。

当已知数据遵循正态分布规律时,则表明散点会聚集在线周围区域,并呈现线性排列状态;若观察到数据呈现出偏离直线趋势的情况,则不属于正态分布。

但是,在这种情况下,仅仅依赖于绘图技巧也无法充分证明这组数据一定符合正态分布特性;此时还需借助其他统计方法来进行验证

通过lillietest函数或jbtest函数执行normal distribution的goodness-of-fit test

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

其中,P代表接受零假设的概率值;当P数值越趋近于零时,则可推断总体数据分布不符合正态分布;LSTAT即为测试统计量的具体数值;而CV则表示在给定显著性水平下拒绝零假设所需达到的最低统计量阈值

对于本例,则为

[H,P,LSTAT,CV] = lillietest(m,0.05)

H =

0

P =

0.5000

LSTAT =

0.1028

CV =

0.1730

当h等于零时接受假设,并且这些数据满足正态分布的条件;同时当p值等于零点五时表明这种现象发生的可能性很高;此外,在LSTAT值低于设定显著性水平下的临界值(此处为零点一七三)的情况下我们可以得出结论即支持原假设

至此,判断结束。

实际上,在正态分布之外的其他概率分布类型也可以完成假设检验工作;以后有机会时逐一介绍。

全部评论 (0)

还没有任何评论哟~