matlab检验洪水受灾面积是否服从正态分布jbtest

在搞数学建模中,一直流传着这样一句话,数模数模,学到就是赚到。每一项技术都可以在现实生活中得到广泛的应用。就犹如正态分布跟二八法则一样。而今天学习的jbtest()函数就可以判断数据是否服从正态分布

Jarque-Bera检验简单理论

在统计学中,Jarque-Bera检验是对样本数据是否具有符合正态分布的偏度和峰度的拟合优度的检验,其统计测试结果总是非负的。其结果远大于0,则表示数据不具有正态分布。

正态分布概率纸

正态概率纸是一张特殊刻度的坐标纸,使得对于任何正态分布,将(x,F(x))在该坐标纸上点图,则成一条直线。正态分布不同,相应的直线不同
正态概率纸的用处很多:最简单的就是查正态分布函数,检验分布的正态性和估计正态分布的参数μ和sigama

例子:淮河流域历史上:经常发生洪水灾害,据统计1949~1991年淮河流域成灾面积(单位:万亩)每年总计分别为下列

>> x = [3383.4 4687.4 1631.1 2244.5 2011.7 6123.1 1918.0 6232.4 ...
5453.9 1412.4 321.5 2185.0 1285.4 4079.6 10124.2 5532.7 ...
3809.3 389.4 412.1 809.7 870.6 1055.7 1451.8 1532.9 765.9 ...
1987.6 2765.5 739.9 515.6 428.4 3794.5 242.3 4812 2204.7 ...
4407.1 2885 1124.7 1190 191.4 2227.9 2079 6934.1];

实验步骤

  • 数据录入进matlab里
  • 使用normplot(x) 概率值验证是否服从正态分布
  • 采用jbtest(x,0.05) 正态分布的拟合的检验

normplot函数与jbtest函数使用

前者只需要将x的随机数据传入进去比如

x= [1 2 3 4]
normplot(x)

第二个函数用来对正态分布函数进行拟合检验,第一个参数也是x数据,第二参数就是置信水平α默认0.05

实验代码



>> x = [3383.4 4687.4 1631.1 2244.5 2011.7 6123.1 1918.0 6232.4 ...
5453.9 1412.4 321.5 2185.0 1285.4 4079.6 10124.2 5532.7 ...
3809.3 389.4 412.1 809.7 870.6 1055.7 1451.8 1532.9 765.9 ...
1987.6 2765.5 739.9 515.6 428.4 3794.5 242.3 4812 2204.7 ...
4407.1 2885 1124.7 1190 191.4 2227.9 2079 6934.1];

>> 
>> normplot(x);

>> [h,P,Jbstat,CV] = jbtest(x,0.05)

h =

     1


P =

  6.1626e-004


Jbstat =

   14.7837


CV =

    5.9915

实验效果查看及详解

matlab检验洪水受灾面积是否服从正态分布jbtest_第1张图片
从图上可以看出散点并不聚集在直线上,因此流域数据不服从正态分布,但是我们需要检验才能说话,因此我们用jbtest检验

>> [h,P,Jbstat,CV] = jbtest(x,0.05)

h =

     1


P =

  6.1626e-004


Jbstat =

   14.7837


CV =

    5.9915

通过检验之后发现,h=1表示在置信水平α=0.05不接受原假设,且P=很小的值,且Jbstat=14.7837大于临界值CV=5.9915,所以不接受原假设,
也就是数据不服从正态分布

你可能感兴趣的:(数学建模,matlab)