通常情况下,我们在对数据进行预处理时或者在对数据进行假设检验之前,会判断数据是否满足正态分布。方法如下:

重点内容:

语言:MATLAB

hist函数用法

qqplot函数用法

kstest函数

adtest函数

1.描述性统计方法:

1.1 Q-Q图“分位数-分位数图”(quantile-quantile)

Q-Q图是样本数据直方图和正态分布图之间一种拟合优度的直观度量方式,当QQ图上的点都大致落在一条直线上时,表示高度正相关,即这些数据是正态分布的。

data = randn(10000,1)%定义数据

qqplot(data)

title("Q-Q图")

hist(data) %默认10个等间隔区间

ge = -4:0.1:4;%间隔区间

hist(data,ge)

n = 100;

hist(data,n)

2.概率统计方法:

2.1 K-S检验:

主要是计算出经验分布和理论分布之间的距离,并将其中最大的距离(差异)作为检验统计量。因此K-S检验的优点是不仅可检验正态分布,还可用于检验其他任何分布。在大样本情况下K-S检验还是非常实用的

通俗理解:就是看自己的数据分布和你想要证明的分布之间差别有多大,差别不大就服从,差别大了就不行。

H = kstest(X) %测试向量X是否服从标准正态分布,测试水平为5%。

若h=0表明不能拒绝原假设,即服从正态分布;若h=1,则可以否定x服从正态分布。

H = kstest(X,cdf) %指定累积分布函数为cdf的测试(cdf=[ ]时表示标准正态分布),测试水平为5%

H = kstest(X,cdf,alpha) % alpha为指定测试水平

H=kstest(X,cdf,alpha,tail) % tail=0为双侧检验, tail=1单侧(<)检验, tail=-1单侧(>) 检验

[H,P,KSSTAT,CV] = kstest(X,cdf,alpha) %P为原假设成立的概率,KSSTAT为测试统计量的值,CV为是否接受假设的临界值。

注意:kstest适用于小样本,当数据过大时,检验拒绝的临界值非常小,结果往往是拒绝原假设。

2.2 A-D检验:

主要通过计算数据的累积分布曲线理想正态分布的累积分布曲线之间的差异来进行检验,与K-S检验不同,该方法考虑了两条累积分布曲线之间的所有差异,因此它比K-S检验效果更好,也是检验正态性最好的方法之一。但该方法的缺点是仅适用于小样本

程序:

h = adtest(data)

若h=0表明不能拒绝原假设,即服从正态分布;若h=1,则可以否定data服从正态分布。

引用csdn文章:

文章链接:正态检验 (Normality Test)——常见方法汇总与简述_Pterosaur_Zero的博客-CSDN博客

文章链接:MATLAB数据分析方法 2.2数据分布及检验(1)_matlab kstest_热豆浆不加糖的博客-CSDN博客

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐