Matlab正态分布检验:
进行参数估计和假设检验时,通常总是假定总体服从正态分布,虽然在许多情况下这个假定是合理的,但是当要以此为前提进行重要的参数估计或假设检验,或者人们对它有较大怀疑的时候,就确有必要对这个假设进行检验,进行总体正态性检验的方法有很多种,以下针对MATLAB统计工具箱中提供的程序,简单介绍几种方法。
在统计学中,Jarque–Bera检验是对样本数据是否具有符合正态分布的偏度和峰度的拟合优度的检验。该检验以卡洛斯·哈尔克和阿尼·K·贝拉(Carlos Jarque and Anil K. Bera)来命名。
JB统计量定义为
其中n是观测数(或自由度); S是样本偏度,K是样本峰度:
其中 分别是三阶中心矩和四阶中心矩的估计值,
是样本均值,
是二阶中心矩(即方差)的估计值。 如果样本数据来自具有正态分布的总体,JB统计量近似服从自由度为2的卡方分布,因此该统计量可以用于检验数据是否服从正态分布。原假设H0是偏度为0,峰度为3(因为正态分布的偏度为0,峰度为3)。JB统计量的定义表明,任何对此(偏度为0,峰度为3)的偏离都会使得JB统计量增加。
matlab中调用格式:
h = jbtest(x): 检验样本x是否服从均值和方差未知的正态分布,原假设是x服从正态分布。当输出h等于1时,表示在置信区度a=0.05下拒绝原假设;当h=0时,在a=0.05下接受原假设。jbtest函数会把x中的NaN作为缺失数据忽略他们。
h = jbtest(x,alpha)
[h,p] = jbtest(...) 返回检验的p值,当p值小于或等于给定的置信度alpha时,拒绝原假设。p值是通过在内置临界值表上反插值计算得到的,如果在区间[0.001,0.5]上找不到合适的p值,jbtest函数会给出一个警告信息,并返回区间的端点,此时应该用jbtest函数的最后一种调用格式计算更精确的p值。p为接受假设的概率值,P越接近于0,则可以拒绝是正态分布的原假设;
如果数据来自正态分布,则JB统计量渐近地具有具有两个自由度的卡方分布,因此统计量可用于检验数据来自正态分布的假设。零假设是偏度为零且过度峰度为零的联合假设。来自正态分布的样本具有预期的偏斜0和预期的过度峰度0(其与峰度3相同)。正如JB的定义所示,任何偏离都会增加JB统计量。
对于小样本,卡方近似过于敏感,当它为真时通常会拒绝零假设。此外,p值的分布偏离均匀分布,并且变为右倾斜的单峰分布,特别是对于小的p值。这导致大的I类错误率。下表显示了一些近似于卡方分布的p值,这些p值与小样本的真实α水平不同。
摘自wiki,
MATLAB官方注解:https://www.mathworks.com/help/stats/jbtest.html;jsessionid=08da7bd1975768b887ddadd2ab2c
In MATLAB's implementation, the chi-squared approximation for the JB statistic's distribution is only used for large sample sizes (> 2000). For smaller samples, it uses a table derived from Monte Carlo simulations in order to interpolate p-values.
建议检验2000size以上的数据。