MATLAB 数据分析方法(第2版)2.2 数据分布及其检验

2.2 数据分布及其检验

 

样本数据的数字特征刻画了数据的主要特征,而要对数据的总体情况作全面的了解,就必须研究数据的分布。上节中的数据直方图与Q-Q图等能直观粗略地描述数据的分布,本节进一步研究如何判定数据是否服从正态分布的问题。若不服从正态分布,那么又可能服从怎样的分布?

 

2.2.1 一维数据的分布与检验

 

1.经验分布函数

 

设来自总体X的容量为n的样本x1,x2,…,xn,样本的次序统计量为x(1),x(2),…,x(n),对于任意实数x,定义函数

Fn(x)=0,若x<x(1)

kn,若x(k)≤x<x(k+1) (k=1,2,…,n-1)

1,若x≥x(n)(2.2.1)

称Fn(x)为经验分布函数。

 

由定义可知,Fn(x)表示事件{X≤x}在n次独立重复试验中的频率。

 

1933年,格里汶科(Glivenko)证明了以下结果:对于任一实数x,当n→∞时Fn(x)以概率1一致收敛于分布函数F(x),即

Plimn→∞sup-∞<x<∞Fn(x)-F(x)=0=1

  这一结论表明:对于任一实数x,当n充分大时

F(x)≈Fn(x)(2.2.2)

因此可用经验分布函数来近似代替F(x),这一点也是由样本推断总体的最基本理论依据之一。

 

在MATLAB中,作经验(累积)分布函数图形命令cdfplot的调用格式为:

 

① cdfplot(X);               %作样本X(向量)的经验(累积)分布函数图形

 

② h=cdfplot(X);% h表示曲线的环柄

 

③ \[h,stats\]=cdfplot(X);%输出stats表示样本最小值、最大值、均值、中值与标准差

通常,将样本的直方图与经验分布函数图结合应用,对数据的分布作出推断。

 

例2.2.1 生成服从标准正态分布的50个样本点,作出样本的经验分布函数图,并与理论分布函数Φ(x)比较。

 

解:编写程序如下。

 

clear

 

X=normrnd (0,1,50,1);%生成服从标准正态分布的50个样本点

 

\[h,stats\]=cdfplot(X);%绘制样本的经验分布函数图

 

hold on

 

plot(-3:0.01:3, normcdf(-3:0.01:3,0,1), 'r')  %绘制理论分布函数图

 

legend('样本经验分布函数Fn(x)', '理论分布函数Φ(x)' ,'Location','NorthWest');

输出结果:

 

h =

 

  3.0013

 

stats =

 

    min: -1.8740%样本最小值

 

    max: 1.6924%最大值

 

    mean: 0.0565%平均值

 

    median: 0.1032%中间值

 

    std: 0.7559%样本标准差

图2-12表明样本的经验分布函数图形与理论分布函数图很相近。

 

 

 

图2-12 N(0,1)分布函数图及其50个样本点的经验分布函数图

 

 

2.总体分布的正态性检验

 

进行参数估计和假设检验时,通常总是假定总体服从正态分布,虽然在许多情况下这个假定是合理的,但是当要以此为前提进行重要的参数估计或假设检验,或者人们对它有较大怀疑的时候,就确有必要对这个假设进行检验。进行总体正态性检验的方法有很多种,以下针对MATLAB统计工具箱中提供的程序,简单介绍几种方法。

 

(1)Jarque-Bera检验

 

Jarque-Bera检验简称JB检验,它是利用正态分布的偏度sk和峰度ku,构造一个包含sk、ku且自由度为2的卡方分布统计量

JB=n16J2+124B2~χ2(2)(2.2.3)

其中J=1n∑ni=1xi-xS3,B=1n∑ni=1xi-xS4-3。

 

对于显著性水平α,当JB统计量小于χ2分布的1-α分位数χ21-α(2)时接受H0,即认为总体服从正态分布;否则拒绝H0,即认为总体不服从正态分布。这个检验适用于大样本,当样本容量n较小时需慎用。

 

在MATLAB中,JB检验命令jbtest的调用格式为:

 

H = jbtest(X,alpha);

 

\[H,P,JBSTAT,CV\] = jbtest(X,alpha);

对输入向量X进行Jarque-Bera测试,显著性水平alpha缺省为0.05。输出H为测试结果,若H=0,则不能拒绝X服从正态分布;若H=1,则可以否定X服从正态分布。输出P为接受假设的概率值,P小于alpha,则可以拒绝是正态分布的原假设;JBSTAT为测试统计量的值,CV为是否拒绝原假设的临界值,JBSTAT大于CV可以拒绝是正态分布的原假设。

 

命令jbtest一般用于大样本,对于小样本用命令lillietest。

 

(2)Kolmogorov-Smirnov检验

 

Kolmogorov-Smirnov检验简称KS检验,它是通过样本的经验分布函数与给定分布函数的比较,推断该样本是否来自给定分布函数的总体。设给定分布函数为G(x),构造统计量

Dn=maxn(Fn(x)-G(x))(2.2.4)

即两个分布函数之差的最大值,对于假设H0:总体服从给定的分布G(x),及给定的α,根据Dn的极限分布确定统计量关于是否接受H0的数量界限。

 

因为这个检验需要给定G(x),所以当用于正态性检验时只能做标准正态检验,即H0:总体服从标准正态分布N(0,1)。

 

在MATLAB中,KS检验命令kstest的调用格式为:

 

h = kstest(x);

 

h = kstest(x,cdf);

 

\[h,p,ksstat,cv\] = kstest(x,cdf,alpha);

把向量x中的值与标准正态分布进行比较并返回假设检验结果h。如果h=0表示不能拒绝原假设,即不能拒绝服从正态分布;若h=1,则可以否定x服从正态分布。假设的显著水平默认值是0.05。cdf是一个两列矩阵,矩阵的第一列包含可能的x值,第二列是假设累积分布函数G(x)的值。在可能的情况下,cdf的第一列应包含x中的值,如果第一列没有,则用插值的方法近似。指定显著水平alpha,返回p值、KS检验统计量ksstat、截断值cv。

 

(3)Lilliefors检验

 

Lilliefors检验是改进KS检验并用于一般的正态性检验,原假设H0:总体服从正态分布N(μ,σ2),其中μ、σ2由样本均值和方差估计。

 

该检验的MATLAB命令lillietest的调用格式为:

 

H = lillietest(X,alpha);

 \[H,P,LSTAT,CV\] = lillietest(X,alpha);

对输入向量X进行Lilliefors测试,显著性水平alpha在0.01和0.2之间,缺省时为0.05。输出P为接受假设的概率值,LSTAT为测试统计量的值,CV为是否拒绝原假设的临界值。H为测试结果,若H=0,则不能拒绝X服从正态分布;若H=1,则可以否定X服从正态分布。P小于alpha,则可以拒绝是正态分布的原假设;LSTAT大于CV可以拒绝是正态分布的原假设。

 

例2.2.2 在例2.1.5中,检验“中国银行”的股票的收盘价是否服从正态分布。

 

解:程序如下。

 

clear

 

a=xlsread('yhgspj.xls');      %读取收盘价数据

 

h1=jbtest(a(:,1))%JB检验

 

h2=kstest(a(:,1))%KS检验

 

h3=lillietest(a(:,1))%改进KS检验

 

qqplot(a(:,1))

程序运行结果:h1=1,h2=1,h3=1,三种检验都不支持“中国银行”股票的收盘价服从正态分布,Q-Q图(如图2-13所示)也可看出收盘价不服从正态分布,从而可以认为收盘价不服从正态分布。

 

 

 

图2-13 中国银行收盘价的Q-Q图

 

 

 

2.2.2 多维数据的正态分布检验

 

1.多维正态分布的概念与性质

 

设p维总体X=(X1,X2,…,Xp)T的分布密度函数为

f(x1,x2,…,xp)=1(2π)p/2Σ1/2exp-12(x-μ)TΣ-1(x-μ)(2.2.5)

则称X服从p维正态分布,记为X~Np(μ,Σ),其中

x=(x1,x2,…,xp)T,μ=(μ1,μ2,…,μp)T,Σ=σ11σ12…σ1p

σ21σ22…σ2p

…

σp1σp2…σpp

μ称为总体均值向量,Σ称为总体协方差矩阵。

 

多维正态分布具有如下性质:

 

1)多维正态分布的边缘分布还是服从正态分布,但反之不真。

 

2)多维正态分布在线性变换下仍然服从多维正态分布。即若X~Np(μ,Σ),A为s×p阶常数矩阵,d为s维常数向量,则

AX+d~Ns(Aμ+d,AΣAT)

  3)服从正态分布的随机变量间相互独立与不相关等价。

 

2.多维正态分布的Q-Q图检验方法

 

对于来自总体且由式(2.1.16)表示的样本数据矩阵X,怎样检验其是否是来自于多维正态总体呢?一般可按照以下Q-Q图检验方法,具体的过程如下:

 

1)由样本数据矩阵X计算均值向量X和协方差矩阵S。

 

2)计算样本点X[t]到X的马氏平方距离,其中X[t]表示X的第t行。(参见第4章)。

D2t=(X[t]-X)TS-1(X[t]-X) (t=1,…,n)

  3)对上述马氏平方距离从小到大排序

D2(1)≤D2(2)≤…≤D2(n)

  4)计算pt=t-0.5n(t=1,2,…,n)及χ2t,其中χ2t满足H(χ2tp)=pt。

 

5)以马氏距离为横坐标,χ2t分位数为纵坐标作n个点(D2(t),χ2t)的平面散点图,即分布的Q-Q图。

 

6)考查散点图是否在一条通过原点且斜率为1的直线上,若是则接受数据来自p维正态分布总体的假设,否则拒绝正态分布假设。

 

以上Q-Q图检验方法的MATLAB程序实现如下。

 

%输入样本数据矩阵X

 

X=\[data\];

 

\[N,p\]=size(X);                %X的行数及列数

 

d=mahal(X,X);%计算马氏距离

 

d1=sort(d);%马氏距离从小到大排序

 

pt=\[\[1:N\]-0.5\]/N;%计算分位数

 

x2=chi2inv(pt,p);%计算χ2t

 

plot(d1,x2','*',\[0:m\],\[0:m\],'-r')%作散点图与直线y=x,其中m是正整数

以下举例说明上述程序的应用。

 

例2.2.3 为了研究某种疾病,对一批60人分为三组:G1、G2、G3,同时进行4项指标的检测,即β脂蛋白(X1)、甘油三酯(X2)、α脂蛋白(X3)、前β脂蛋白(X4)。检测的结果列在表2-7中,现将三组检验数据视为一个总体,问总体是否服从四维正态分布?

 

 

 

表2-7 四项指标检测数据

 

 

 

 

G1

G2

G3

 

X1

X2

X3

X4

X1

X2

X3

X4

X1

X2

X3

X4

260

75

40

18

310

122

30

21

320

64

39

17

200

72

34

17

310

60

35

18

260

59

37

11

240

87

45

18

190

40

27

15

360

88

28

26

170

65

39

17

225

65

34

16

295

100

36

12

270

110

39

24

170

65

37

16

270

65

32

21

205

130

34

23

210

82

31

17

380

114

36

21

190

69

27

15

280

67

37

18

240

55

42

10

200

46

45

15

210

38

36

17

260

55

34

20

250

117

21

20

280

65

30

23

260

110

29

20

200

107

28

20

200

76

40

17

295

73

33

21

225

130

36

11

200

76

39

20

240

114

38

18

210

125

26

17

280

94

26

11

310

103

32

18

170

64

31

14

190

60

33

17

330

112

21

11

270

76

33

13

295

55

30

16

345

127

24

20

190

60

34

16

270

125

24

21

250

62

22

16

(续)

 

 

 

G1

G2

G3

 

280

81

20

18

280

120

32

18

260

59

21

19

310

119

25

15

240

62

32

20

225

100

34

30

270

57

31

8

280

69

29

20

345

120

36

18

250

67

31

14

370

70

30

20

360

107

25

23

260

135

39

29

280

40

37

17

250

117

36

16

  

数据来源:高惠璇,应用多元统计分析,北京大学出版社,2005年第一版。

 

 

解:先将表2-7中数据按原位置作为矩阵A输入,然后整理成样本数据矩阵X。程序如下。

 

clear

 

A=\[260  75  40  18  310  122  30  21  320  64  39  17;

 

 200  72  34  17  310  60  35  18  260  59  37  11;

 

 ……

 

 260  135  39  29  280  40  37  17  250  117  36  16\];

 

X=\[A(:,1:4);A(:,5:8);A(:,9:12)\];%整理成样本数据矩阵X

 

\[N,p\]=size(X);

 

d=mahal(X,X);%计算马氏距离

 

d1=sort(d);%从小到大排序

 

pt=\[\[1:N\]-0.5\]/N;%计算分位数

 

x2=chi2inv(pt,p);%计算χ2t

 

plot(d1,x2','*',\[0:12\],\[0:12\],'-r')%作图

输出图形如图2-14所示。

 

 图2-14 四项检测数据的多维

正态检验Q-Q图

 

 

从图2-14可以看出,数据点基本落在直线上,故不能拒绝该数据服从四维正态分布的假设。

 

3.多个总体协方差矩阵的相等性检验

 

(1)两个总体协方差矩阵相等的检验

 

设从两个总体分别抽取样本容量为n1、n2的两个样本,其样本的协方差矩阵分别为S1、S2,那么在两个总体协方差矩阵相等时,其总体的协方差矩阵的估计为

S=(n1-1)S1+(n2-1)S2(n1+n2-2)

若检验两个总体的协方差矩阵相等,可以有如下假设检验:

H0:Si=SH1:Si≠S,(i=1,2)

检验统计量

Qi=(ni-1)[lnS-lnSi-p+tr(S-1Si)]~χ2(p(p+1)/2)(i=1,2)(2.2.6)

其中·表示行列式,p是向量的维数,tr表示矩阵的迹。

 

对给定的α,卡方分布临界值为λ,若Qi<λ(i=1,2)则接受H0,否则拒绝H0。

 

例2.2.4(1989年国际数学竞赛A题:蠓的分类) 蠓是一种昆虫,分为很多类型,其中有一种名为Af,是能传播花粉的益虫;另一种名为Apf,是会传播疾病的害虫,这两种类型的蠓在形态上十分相似,很难区别。现测得6只Apf和9只Af蠓虫的触角长度和翅膀长度数据

 

Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96);

 

Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08)。

 

判别Apf与Af两类蠓虫的协方差矩阵是否相等。

 

解:编写检验协方差矩阵相等的源程序如下。

 

clear

 

apf=\[1.14,1.78; 1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96\];

 

af=\[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08\];

 

n1=6;n2=9;p=2;

 

s1=cov(apf);s2=cov(af);

 

s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);               %计算混合样本方差

 

Q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1)) ;

 

Q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2)) ;%计算检验统计量观测值

输出结果为

 

Q1 =

 

  2.5784

 

Q2 =

 

  0.7418

给定α=0.05,查表得到临界值χ21-α(3)=7.8147(命令chi2inv(0.95,3)),由于Q1=2.5784<7.8147,Q2=0.7418<7.8147,故认为两类总体协方差矩阵相同。

 

(2)多个总体协方差矩阵相等的检验

 

设有k个p维总体Gi,i=1,2,…,k,从每个总体中分别抽取样本容量为ni(i=1,2,…,k)的k个样本,其样本的协方差矩阵为S1,S2,…,Sk,用S1,S2,…,Sk估计Σ1,Σ2,…,Σk。其中Σi为总体Gi的协方差矩阵。

 

原假设  H0:Σ1=Σ2=…=Σk;

 

备择假设 H1:Σ1,Σ2,…,Σk至少有一对不相等。

 

在H0成立时,统计量

ξ=(1-d)M~χ2(f)(2.2.7)

其中M=(n-k)lnS-∑ki=1(ni-1)lnSi,S=∑ki=1(ni-1)Si/(n-k),f=p(p+1)(k-1)/2为自由度,n=n1+n2+…+nk,

d=2p2+3p-16(p+1)(k-1)∑ki=11ni-1-1n-k,ni不全等

(2p2+3p-1)(k+1)6(p+1)(n-k),ni全等(2.2.8)

  对给定的α,计算概率p=P(ξ>χ2α(f)),若p<α则拒绝H0,否则接受H0。

 

以上过程和程序可用下例说明。

 

例2.2.5 检验表2-7中三个总体G1、G2、G3的协方差矩阵是否相等(α=0.1)。

 

解:编写程序如下。

 

clear

 

A=\[data\];                               %输入样本数据

 

G1=A(:,1:4);%提取总体1的样本

 

G2=A(:,5:8);

 

G3=A(:,9:12);

 

n=size(G1,1)+ size(G2,1)+ size(G2,1);%计算总的样本容量

 

\[n1,p\]= size(G1);

 

k=3;

 

f=p*(p+1)*(k-1)/2;%统计量自由度

 

d=(2*p^2+3*p-1)*(k+1)/(6*(p+1)*(n-k));%由式(2.2.8)计算

 

s1=cov(G1);%协方差矩阵

 

s2=cov(G2);%协方差矩阵

 

s3=cov(G3);%协方差矩阵

 

s=(n1-1)*(s1+s2+s3)/(n-k);%总体协方差矩阵估计

 

M=(n-k)*log(det(s))-19*(log(det(s1))+log(det(s2))+log(det(s3)));%计算式(2.2.7)中的M值

 

T=(1-d)*M;%计算式(2.2. 7)统计量

 

P0=1-chi2cdf(T,f);%卡方分布概率

输出结果:

 

T= 20.3316,P0= 0.4374

由于由统计量计算得到的概率为P0=0.4374>0.1,故判定3个总体协方差矩阵相等。

 

时间: 2024-10-15 14:00:11

MATLAB 数据分析方法(第2版)2.2 数据分布及其检验的相关文章

MATLAB 数据分析方法(第2版) 1.1 数据分析与MATLAB

第1章 MATLAB基础 MATLAB数据分析方法   本章主要介绍MATLAB软件的一些入门知识,包括MATLAB界面及其基本操作.变量与函数.运算符与操作符.矩阵数据的输入与输出.符号运算.M文件与编程等,为读者学习以后各章打下基础.   1.1 数据分析与MATLAB 1.1.1 数据分析概述 1.数据分析的概念   数据分析是指用适当的统计方法对收集来的数据进行详细研究,提取其中有用信息并形成结论,以求最大化地开发数据的功能,发挥数据的作用.在统计学领域,有人将数据分析划分为描述性数据分

MATLAB 数据分析方法(第2版)导读

前言 自本书第1版出版以来,我们的社会已进入大数据时代,数据分析方法越来越受到人们的重视,许多学校选用了本书作为教材,并取得了良好的教学效果.同时分析数据的MATLAB软件也在不断地升级与更新,功能越来越强大.越来越智能化.为了让读者更好地学习与掌握数据分析方法,我们对第1版进行了修订.这次修订仍然保持原教材的基本框架与内容体系,但对部分章节的例题数据进行了更新,涉及软件更新的部分也对原书的程序进行改编与优化,补充了部分更具有现实意义的数据分析例题与习题,力求体现三方面的特点: 第一,通过例题或

MATLAB 数据分析方法(第2版)1.2 MATLAB基础概述

1.2 MATLAB基础概述   1.2.1 MATLAB的影响   MATLAB源于Matrix Laboratory,即矩阵实验室,是由美国Mathworks公司发布的主要面对科学计算.数据可视化.系统仿真以及交互式程序设计的高科技计算环境.自1984年该软件推向市场以来,历经30多年的发展与竞争,现已成为适合多学科.多种工作平台的功能强大的大型软件.MATLAB应用广泛,其中包括信号处理和通信.图像和视频处理.控制系统.测试和测量.计算金融学及计算生物学等众多应用领域.在国际学术界,MAT

MATLAB 数据分析方法(第2版)2.3 数据变换

2.3 数据变换   2.3.1 数据属性变换   在解决经济问题综合评价时,评价指标通常分为效益型.成本型.适度型等类型.效益型指标值越大越好,成本型指标值越小越好,适度型指标值既不能太大也不能太小为好.   一般来说,对问题进行综合评价,必须统一评价指标的属性,进行指标的无量纲化处理.常见的处理方法有极差变换.线性比例变换.样本标准化变换等方法.   我们将式(2.1.16)表示的样本数据矩阵X的每一列理解为评价指标,共有p个指标,X的每一行理解为不同决策方案关于p项评价指标的指标值,共有n

MATLAB 数据分析方法(第2版)2.1 基本统计量与数据可视化

第2章 数据描述性分析   数据描述性分析是从样本数据出发,概括分析数据的集中位置.分散程度.相互关联关系以及数据分布的正态或偏态特征等.它是进行数据分析的基础,对不同类型量纲的数据有时还要进行变换,然后再作出合理分析.本章主要介绍样本数据的基本统计量.数据的可视化.数据分布检验及数据变换等内容.   2.1 基本统计量与数据可视化   2.1.1 一维样本数据的基本统计量   描述数据的基本特征主要为集中位置和分散程度.   设从所研究的对象(即总体)X中观测得到n个观测值 x1,x2,-,x

MATLAB 数据分析方法(第2版)1.4 数组和矩阵运算

1.4 数组和矩阵运算   矩阵是MATLAB数据存储的基本单元,矩阵运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算都是以对矩阵的操作为基础的.   1.4.1 数组的创建与运算   1.数组的创建   在MATLAB中,一般使用方括号(\[\]).逗号(,).空格.冒号(:).函数命令等方法来创建数组,具体方法见表1-8.       表1-8 数组的创建方法         命令 用途   x=\[a,b,c,d\] 创建包含指定元素的数组 x=first:last 创建

MATLAB 数据分析方法(第2版)1.6 MATLAB通用操作实例

1.6 MATLAB通用操作实例   下面通过一个操作实例,说明MATLAB的通用操作界面的使用方法,使读者对软件环境更加熟悉,并且掌握如何在命令行窗口中使用简单命令.   实验 MATLAB通用操作界面综合练习实验   按照以下步骤进行.   1)启动MATLAB.   2)在命令行窗口中输入以下几行命令:   a=\[1,2,3;4,5,6;7,8,9\];   b=\[1,3,5;2,4,6;5,7,9\];   c='矩阵加法计算';   d=a+b;   wlb='矩阵乘法计算';  

MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法

1.3 MATLAB基本语法   1.3.1 数据类型   MATLAB中的基本数据类型有15种,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等.不论数据是怎样的类型,在计算机程序中总是以常量与变量的形式出现.   1.常量   在程序执行过程中,其值不能被改变的量为常量.MATLAB中的常量也称为数值量,简单地可理解为具体的数值.例如:   1)整型常量:如12.78.109.   2)实数(浮点)型常量:如5.+5.-5.55.0.0056.6.5e-5.100

MATLAB 数据分析方法(第2版)1.5 M文件与编程

1.5 M文件与编程   1.5.1 M文件编辑/调试器窗口   在默认状态下,M文件编辑/调试器(Editor/Debugger)窗口不随MATLAB界面的出现而启动.当需要编写M文件时,在主界面的主页上单击"新建脚本"按钮,即可启动该窗口.如图1-17所示.     图1-17 M文件编辑/调试器窗口     M文件编辑/调试器的菜单与工具栏请参考"帮助"系统.   1.5.2 M文件   M文件是由MATLAB语句(命令或函数)构成的ASCII码文本文件,文件