总体分布的正态性检验一般采取Jarque-Bera检验方法。

1. JBTest检验的定义:

在统计学中,Jarque-Bera检验是对样本数据是否具有符合正态分布的偏度和峰度的拟合优度的检验。该检验以卡洛斯•哈尔克和阿尼•K•贝拉(Carlos Jarque and Anil K. Bera)来命名。

JB统计量定义为:

这里的n为观测数目(自由度),S是样本偏度系数,K是样本峰度系数。

对正态分布而言,JB统计量渐进的服从自由度为2的卡方分布。

Jarque和Bera证明了在正态性假定下,如果JB统计量的相伴概率值小于设定的概率水平,则拒绝原假设,不认为样本概率服从正态分布;反之,则接受原假设。

2. 关键名词:

这里有几个关键名词,包括偏度、峰度、卡方分布。

偏度系数(Skewness)

偏度系数是描述分布偏离对称性程度的特征数,是样本概率密度函数对称性的度量。

当分布左右对称时,偏度系数为0;当偏度系数大于0时,即中位在右侧,该分布为右偏;当偏度系数小于0时,中位在左侧,该分布左偏。

较大的正值表示其分布具有右侧较长尾部,较大的负值表明有左侧较长尾部。

通常用三阶中心矩除以标准差的三次方来计算,

标准差为:

峰度系数(Kurtosis):

峰度系数是用来反映频数分布曲线顶端尖峭或扁平程度的指标,形象的说,就是对概率密度函数的“胖瘦”的度量。

统计上是用四阶中心矩来测定峰度的。实验研究表明,偶阶中心矩的大小与图形分布的峰度有关。其中的二阶中心矩就是数据的方差,它在一定程度上可以反映分布的峰度,但有时方差相同的数据却有不同的峰度,因此就利用四阶中心矩来反映分布的尖峭程度。

实际采用四阶中心矩与标准差的四次方的比值作为衡量峰度的指标。

对正态分布而言,偏度系数S为0,峰度系数K为3。

卡方分布:

3. Matlab的Jbtest

调用格式为:

  • H = jbtest(X)
  • H = jbtest(X,alpha)
  • [h,p,JBSTAT,CV]=jbtest(x,alpha)
  • H = jbtest(x,alpha,mctol)

输入值:以alpha (默认0.05)显著水平对数据x进行Jarque-Bera检验

返回值

  • h为测试结果,如果h=0,则认为x是服从正态分布的;如果h=1,则可以否定x服从正态分布;
  • p为接受假设的概率,p越接近于0,则可以是拒绝正态分布的原假设。
  • JBSTAT为测试统计量的值;
  • CV为是否拒绝原假设的临界值,主要是用JBSTAT与CV比较,超过临界值就认为不服从正态分布。

若变量服从正态分布,则S为零,K为3,因而JB统计量的值为零;如果变量不是正态变量,则JB统计量将为一个逐渐增大值。JB统计量的定义表明,任何对此(偏度为0,峰度为3)的偏离都会使得JB统计量增加。

注:

通常要对一组样本进行正态性检验,在Matlab中,一种方法是:用normplot画出样本,如果在一条直线上,则样本服从正态分布,否则不服从正态分布。

Matlab提供了更正式的检验方法:

  • kstest(Kolmogorov-Smirnow)正态性检验,将样本与标准正态样本(均值0,方差1)进行对比,不符合则返回1,符合则返回0.
  • lillietest(Lilliefors test),与kstest不同,检验目标不是标准正态样本,而是具有与样本相同均值和方差的正态分布。
  • jbtest(Jarque-Bera test):与lillietest相似,但不适用于小样本情况。

More:

CV:即Critical Value临界值,与Jarque-Bera检验中的显著水平alpha对应;返回一个非负标量值。如果alpha范围为 [0.001,0.50],并且样本数目不大于2000,那么jbtest直接在预先算好的CV值表中查找和插值。如果使用了mctol,那么jbtest通过Monte Carlo模拟来确定CV值。当jbstate>CV时,假设不成立。

mctol:即Maximum Monte Carlo standard error(最大蒙特卡洛标准差)。如果设定了mctol值,jbtest直接计算Monte Carlo近似值p,而不是通过预先算好的CV值表来进行插值。jbtest通过选择足够大的Monte Carlo重复数,使得计算的蒙特卡洛标准差p小于mctol。

2015.06.11,技术,关于Matlab中的Jbtest检验的更多相关文章

  1. 译文 [ROM][多国语言][2015.06.11] Lenovo S750 (MTK6589) - andrea_d86-lenovos750-4.2.2

    ************************************************** andrea_d86-lenovos750-4.2.2-150530 ************** ...

  2. php大力力:技术排错过程中,关键点总结和心情历程(2015-10-19)

    9:40 2015/10/19技术排错过程中,关键点总结和心情历程 有一个按照标题进行内容分类的函数似乎不起作用,这叫人沮丧. 在页面显示图片地址时候,在源系统和目标系统中,包含图片地址的页面代码格式 ...

  3. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

  4. 转帖 云和恩墨 http://www.eygle.com/archives/2015/06/sql_version_count.html

    SQL多版本控制 - _CURSOR_OBSOLETE_THRESHOLD   作者:eygle |English [转载时请标明出处和作者信息]|[恩墨学院 OCM培训传DBA成功之道]链接:htt ...

  5. matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波

    来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...

  6. matlab中upper 将字符串转换为大写

    参考:https://ww2.mathworks.cn/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srcht ...

  7. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

  8. matlab中的卷积——filter,conv之间的区别

    %Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...

  9. MATLAB中plot()画图的颜色线型和希腊字母参数设置

    y         黄色           ·             点线      m         粉红           ○             圈线      c          ...

随机推荐

  1. [牛客网练习赛 45 F] Magic Slab 解题报告 (最大权闭合子图)

    interlinkage: https://ac.nowcoder.com/acm/contest/847/F description: solution: 最大权闭合子图; 每个单元格看成一个正权点 ...

  2. A - Kefa and First Steps

    Problem description Kefa decided to make some money doing business on the Internet for exactly n day ...

  3. 使用数组实现ArrayList的效果

    package day04.d2.shuzu; /** * 通过数组实现类似于集合的功能 * 包含功能有: * * 动态添加元素 * 在指定位置添加元素 * * 删除指定下标的元素 * 删除指定内容的 ...

  4. Analyzing resource wait related to memory/IO bottleneck

    Analyzing resource wait related to memory bottleneck (RESOURCE_SEMAPHORE, PAGEIOLATCH_XX) sys.dm_os_ ...

  5. SQLServer修改表字段时进行表连接

    update A set A.XXX='XXXX'from TableA  Ainner join TableB B on B.XX=A.XXwhere XXXXX

  6. JavaScript定时器的开启关闭

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  7. how does Array.prototype.slice.call() work?

    763 down vote accepted +50 What happens under the hood is that when .slice() is called normally, thi ...

  8. UVa1585修改版

    #include<stdio.h> int main() { int i,k=-1; char a[100]; while(scanf("%s",&a)!=EO ...

  9. mongodb报错一例

    开发程序报错信息: Caused by: com.mongodb.MongoException: Executor error: OperationFailed: Sort operation use ...

  10. 01-初学总结之《谭浩强C程序设计》

    注:个人针对于课本的易错点进行了相关的整理.整理的不专业,多多见谅. C语言中的易出错的点 这个笔记综合了 0. 常量&变量 常量 整型常量 -345,1000,0 实型常量 1)   十进制 ...