我是靠谱客的博主 整齐冬日,最近开发中收集的这篇文章主要介绍MATLAB 检验数据正态分布及代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上篇简要介绍了正态分布检测的必要性和主要分析方法,此篇主要介绍如何通过MATLAB判断分析数据正态特性。

1. 主要方法

MATLAB检测数据正态特性主要通过数值测定和图形分析,其中数值测定指通过JB等假设检验方法进行测定分析数据,图形分析方法是指通过分析数据正态拟合程度判断数是否符合正态分布,主要有Q-Q图、直方图以及normplot工具箱。

2.代码实现

(1)假设检验

JB: H= jbtest (X)

H = jbtest (X,alpha)

[h, p, jbstat, cv] = jbtest (X,alpha)

其中,alpha为显著水平(默认0.005)

h 为测试结果,如果h=0,则认为X服从正态分布,如果 h=1,则否定 X服从正态分布;

p 为接受假设的概率,p越接近于0,可拒绝正态分布假设;

CV为是否拒绝原假设的临界值

其他检验方法为:

  • kstest(Kolmogorov-Smirnow)
  • lillietest(Lilliefors test)

对于其他方法不再分析。

(2)图形分析

  • 直方图:hist(X,M)

直方图hist函数中X为被分析数据,可以是单列也可以是多多列,为方便分析显示一般为单列,M表示将X有序划分入标量M所指定数目的矩形图中。

  • normplot函数: normplot(X)

normplot函数直接绘制分析数据的正态概率图形,其中样本数据用蓝色“+”表示,标准正态线用红色“-”,判断标准为:数据越接近于红色线,其符合正态分布程度越高,一般情况不会和直线重合。

  • qqplot:qqplot(x)

qqplot(x)显示样本数据x的分位数与正态分布的理论分位数之间的分位数图。 如果x的分布是正态的,则数据图显示为线性。后面有学者提出可用于判断不同分布类型的gqqplot工具箱,其实现代码为:gqqplot(X,'normal'),其中 normal表示正态分布,也可跟根据分析要求选择 'gamma'等常见分析类型(博客已提供gqqplot工具箱.m文件,欢迎下载)。

3.举例分析

首先为直方图,图中数据为一批样本某指标含量分布,所得直方图横轴为变量区间、纵轴为设定箱形区间变量个数,由图可知该指标含量不符合正态分布。

第二个为normplot,其中横轴为变量区间,纵轴为累计概率分布(CDF),红色点划线为根据分析数据均值和方差构建的正式正态分布线,蓝色点为分析样本点,越接近于直线说明样本正态特性越好,由图可知,分析数据尾部远离直线,且中间大量样本分布处(14.5)样本低于直线,因此该分析数据正态性差,或者不服从正态分布。

第三个为qqplot,该图的横轴表示理论分位变量分布,纵轴辨识实际输入变量分位数分布,直线为y=x,对比方法为蓝色点分布在直线上表示服从正态分布,由图可知该数据不服从正态分布,结合上图发现,qqplot检验正态分布更加直观,但是具体接近程度还需要结合数值检测方法实现。

4. 后续

对于非正态分布,目前有部分方法可以将非正态分布数据转换为近似正态分布,后期有机会再写一下个人学习结果。

 

完---2020.9.30

 

最后

以上就是整齐冬日为你收集整理的MATLAB 检验数据正态分布及代码实现的全部内容,希望文章能够帮你解决MATLAB 检验数据正态分布及代码实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部