文章目录
对数据进行正态分布检验
对数据进行正态分布检验,即判断数据是否满足皮尔逊相关系数假设检验的第一个条件。
一、正态分布 J B JB JB检验(大样本 n > 30 n>30 n>30)
对于一个随机变量 {
X
i
X_i
Xi},假设其偏度为
S
S
S,峰度为
K
K
K,那么可以构造
J
B
JB
JB统计量:
可以证明,如果{
X
i
X_i
Xi}是正态分布,那么在大样本的情况下
J
B
JB
JB服从于一个自由度为2的卡方分布。
1.偏度
- 百度百科 — 偏度
- 对于正态分布来说,其偏度为0
2.峰度
- 百度百科 — 峰度
- 对于正态分布来说,按照图中第一个式子定义,其峰度为3。按照第二个式子定义,其峰值为0。
3.Matlab中偏度和峰度的计算
举例:
x = normrnd(2,3,100,1);
%生成100*1的随机向量,所有元素是均值为2,标准差为3的正态分布
skewness(x) %偏度
kurtosis(x) %峰度
4. J B JB JB检验实操步骤
- 设置原假设和备择假设
原假设 H 0 : H_0: H0:该随机变量服从正态分布
备择假设 H 1 : H_1: H1:该随机变量不服从正态分布 - 计算该变量的偏度和峰度,得到检验值 J B ∗ JB^* JB∗
- 计算其对应的 p p p值
- 将 p p p值与0.05比较,如果小于0.05则拒绝原假设,否则无法拒绝原假设(默认置信水平为95%)
5.Matlab中进行** J B JB JB**检验的语法:
- x是需要检验的随机变量,其只能是向量
- alpha是显著性水平,一般选取0.05,此时置信水平为0.95(1-alpha)
- 当h输出等于1时,表示拒绝原假设;当h输出等于0时,表示无法拒绝原假设
- jbtest函数只能一列一列单独检验,无法同时检验多列数据
代码演示:
1.检验第一列数据是否为正态分布
[h , p] = jbtest(Test(:,1),0.05)
2.用循环检验所有列的数据
n_c = size(Test,2);
%求列数
H = zeros(1,6);
P = zeros(1,6);
%初始化数据
for i = 1;n_c
[h , p] = jbtest(Test(:,1),0.05);
H(i)=h;
P(i)=p;
end
disp(H)
disp(P)
二、夏皮洛-威尔克检验(小样本3≤n≤50)
1.理论介绍
统计学习:夏皮罗-威尔克检验(Shapiro–Wilk test)
2.实操步骤
- 设置原假设和备择假设
原假设 H 0 : H_0: H0:该随机变量服从正态分布
备择假设 H 1 : H_1: H1:该随机变量不服从正态分布 - 利用SPSS计算出威尔克统计量(即检测值),得到对应的p值
- 将 p p p值与0.05比较,如果小于0.05则拒绝原假设,否则无法拒绝原假设(默认置信水平为95%)
3.如何利用SPSS计算威尔克统计量?
SPSS — 分析 — 描述统计 — 探索 — 转移数据 — 图 — 勾选“含检验的正态图“ — 完成
生成图的最后一列,即显著性,就是p值
三、Q-Q图(要求样本数据数量非常大)
在统计学中,Q-Q图(Q代表分位数Quantile)是一种通过比较两个概率分布的分位数对这两个概率分布进行比较的概率图方法。
对比前两种方法,第三种方法不建议使用,因为需要巨大的样本数量
1.实操步骤
- 利用Matlab自带的函数 qqplot,输出图像
- 分析判断Q-Q图上的点是否近似的在一条直线上(正态分布的图像上,各点近似分布在同一条直线上)