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

简介:

2.3 数据变换

 

2.3.1 数据属性变换

 

在解决经济问题综合评价时,评价指标通常分为效益型、成本型、适度型等类型。效益型指标值越大越好,成本型指标值越小越好,适度型指标值既不能太大也不能太小为好。

 

一般来说,对问题进行综合评价,必须统一评价指标的属性,进行指标的无量纲化处理。常见的处理方法有极差变换、线性比例变换、样本标准化变换等方法。

 

我们将式(2.1.16)表示的样本数据矩阵X的每一列理解为评价指标,共有p个指标,X的每一行理解为不同决策方案关于p项评价指标的指标值,共有n个方案,这样表示第i个方案关于第j项评价指标的指标值为xij(i=1,2,…,n;j=1,2,…,p)。

 

1.统一趋势与无量纲化

 

我们用I1、I2、I3分别表示效益型、成本型和适度型指标集合,运用极差变换法建立无量纲的效益型矩阵B与成本型矩阵C,运用线性比例变换法可建立无量纲的效益型矩阵D与成本型矩阵E。

 

1)效益型矩阵,其变换公式为:

B=(bij)n×p,bij=(xij-min1≤i≤n xij)(max1≤i≤n xij-min1≤i≤n xij)xij∈I1

(max1≤i≤n xij-xij)(max1≤i≤n xij-min1≤i≤n xij)xij∈I2

(max1≤i≤nxij-αj-xij-αj)max1≤i≤nxij-αj-min1≤i≤nxij-αjxij∈I3(2.3.1)

其中αj为第j项指标的适度数值。

 

显然指标经过极差变换后,均有0≤bij≤1,且各指标下最好结果的属性值bij=1,最坏结果的属性值bij=0。指标变换前后的属性值成线性比例。

 

2)成本型矩阵,其变换公式为:

C=(cij)n×p,cij=(max1≤i≤n xij-xij)(max1≤i≤n xij-min1≤i≤n xij)xij∈I1

(xij-min1≤i≤nxij)(max1≤i≤n xij-min1≤i≤n xij)xij∈I2

xij-αj-min1≤i≤nxij-αjmax1≤i≤nxij-αj-min1≤i≤nxij-αjxij∈I3(2.3.2)

其中αj为第j项指标的适度数值。

 

显然指标经过极差变换后,均有0≤cij≤1,且各指标下最坏结果的属性值cij=1,最好结果的属性值cij=0。

 

3)优属度效益型矩阵,其变换公式为:

D=(dij)n×p,dij=xijmax1≤i≤n xijxij∈I1

min1≤i≤n xijxijxij∈I2

min1≤i≤n xij-αjxij-αjxij∈I3(2.3.3)

其中αj为第j项指标的适度数值。

 

4)比值成本型矩阵,其变换公式为:

E=(eij)n×p,eij=min1≤i≤n xijxijxij∈I1

xijmax1≤i≤n xijxij∈I2

xij-αjmax1≤i≤nxij-αjxij∈I3(2.3.4)

其中αj为第j项指标的适度数值。显然指标变换前后的属性值成比例。

 

例2.3.1 表2-8给出了我国1996~2013年农业生产情况统计数据,根据数据建立效益型矩阵B与比值成本型矩阵E。

 

 

 

表2-8 1996~2013年农业生产情况统计数据

 

 

 

 

年份

粮食产量

(万吨)

受灾面积

 

(千公顷)

有效灌溉面积

 

(千公顷)

农用化肥施用折纯量

 

(万吨)

农村用电量

 

(亿千瓦小时)

 

1996

50453.50

46991

50381.60

3827.90

1812.72

1997

49417.10

53427

51238.50

3980.70

1980.10

1998

51229.53

50145

52295.60

4083.69

2042.15

1999

50838.58

49980

53158.41

4124.32

2173.45

2000

46217.52

54688

53820.33

4146.41

2421.30

(续)

 

 

 

年份

粮食产量

(万吨)

受灾面积

 

(千公顷)

有效灌溉面积

 

(千公顷)

农用化肥施用折纯量

 

(万吨)

农村用电量

 

(亿千瓦小时)

 

2001

45263.67

52215

54249.39

4253.76

2610.78

2002

45705.75

46946

54354.85

4339.39

2993.40

2003

43069.53

54506

54014.23

4411.56

3432.92

2004

46946.95

37106

54478.42

4636.58

3933.03

2005

48402.19

38818

55029.34

4766.22

4375.70

2006

49804.23

41091

55750.50

4927.69

4895.82

2007

50160.28

48992

56518.34

5107.83

5509.93

2008

52870.92

39990

58471.68

5239.02

5713.15

2009

53082.08

47214

59261.45

5404.35

6104.44

2010

54647.71

37426

60347.70

5561.68

6632.35

2011

57120.85

32471

61681.56

5704.24

7139.62

2012

58957.97

24960

63036.43

5838.85

7508.46

2013

60193.84

31350

63350.60

5911.86

8549.52

  

资料来源:中华人民共和国国家统计局,http://www.stats.gov.cn/。

 

 

解:根据指标的具体含义可知,受灾面积是成本型数据,化肥施用量是适度型数据(取适度数值为4000),其余指标都是效益型数据。编写程序如下。

 

clear

 

A=\[50453.50, 46991 ,50381.60, 3827.90, 1812.72;

 

……

 

60193.84,31350,63350.60,5911.86,8,549.52\];       %输入原始数据

 

\[m,n\]=size(A);

 

%对矩阵A,按列指标的属性,对数据进行变换,建立效益型矩阵B的程序

 

B1=\[A(:,1)-min(A(:,1)),max(A(:,2))-A(:,2),A(:,3)-min(A(:,3)),max(abs(A(:,4)-4000))- abs(A(:,4)-4000),A(:,5)-min(A(:,5))\];

 

B2=\[ones(m,1)*range(A)\];

 

B=B1./\[B2(:,1:3),ones(m,1)*range(max(abs(A(:,4)-4000))- abs(A(:,4)-4000)),B2(:,5)\];

 

%按A矩阵列指标的属性,对数据进行变换,建立比值成本型矩阵E程序

 

E1=\[ones(m,1)*min(A(:,\[1,3,5\]))\]./A(:,\[1,3,5\]);   

 

E2=A(:,2)./max(A(:,2));

 

E3=abs( A(:,4)-4000)./\[max(abs( A(:,4)-4000))\];

 

E=\[E1(:,1),E2,E1(:,2), E3,E1(:,3)\]

程序运行结果(仅列出了变换后数据的前两行,其余各行省略了):

 

B=

 

 0.4312  0.2589    0  0.9193    0

 

 0.3707  0.0424  0.0661  1.0000  0.0248

 

 ……

 

E=

 

 0.8536  0.8593  1.0000  0.0900  1.0000

 

 0.8716  0.9769  0.9833  0.0101  0.9155

 

 ……

2.压缩变换模糊化

 

对于实际数据还可以通过如下变换将原始数据压缩到\[0,1\]区间,从而构造出模糊集合。利用MATLAB的模糊数学工具箱,可以直接调用表2-9中函数命令实现数据压缩模糊转换。

 

 

 

表2-9 模糊工具箱隶属度函数

 

 

 

 

函数名称

函数表达式

命令格式

数据类型

 

高斯形函数

y=e-(x-c)22s2

y=gaussmf(x,\[s,c\])适度型

钟形函数

y=11+x-ca2b

y=gbellmf(x,\[a,b,c\])

适度型

S形函数

f(x,a,b)=0,x≤a

 

2x-ab-a2,a≤x≤a+b2

 

1-2x-ab-a2,a+b2≤x≤b

 

1,x≥b

y=smf(x,\[a,b\])

效益型

Z形函数

f(x,a,b)=1,x≤a

 

1-2x-ab-a2,a≤x≤a+b2

 

2x-ab-a2,a+b2≤x≤b

 

0,x≥b

y=zmf(x,\[a,b\])

成本型

sigmoid函数

y=11+e-a(x-c)

y=sigmf(x,\[a,c\])

a>0,效益型

 

a<0,成本型

  

 

 

例2.3.2 对于例2.3.1的粮食产量数据用S形函数建立高产的隶属度函数。

 

解:编写程序如下。

 

clear

 

A=\[50453.5046991 50381.60 3827.90 1812.72

 

……

 

60193.843135063350.605911.868,549.52\];          %输入原始数据

 

a=min(A(:,1));%设置S形函数的参数a

 

b=max(A(:,1));%设置S形函数的参数b

 

y=smf(A(:,1),\[a,b\]);%S形函数命令

 

subplot(211),plot(A(:,1), '-* '),title('粮食产量数据图')

 

subplot(212),plot(y, '-or '), title('变换后数据图')

从图2-15可以看出,利用S形函数将粮食产量数据压缩到\[0,1\]区间,产量越高数值越接近1;反之,产量越低函数值越接近于零,两个图形的走势完全一致。

 

 

 

图2-15 粮食产量数据图与S形函数图

 

 

2.3.2 Box-Cox变换

 

当时间序列数据在左(或右)边有长尾巴或很不对称时,有时需要对数据进行变换以符合非参数(或参数)统计推断方法的某些条件,其中最常用的一种方法就是Box-Cox变换

y=(xλ-1)/λ,λ≠0

 

lnx,λ=0(2.3.5)

在MATLAB中,Box-Cox变换命令boxcox的调用格式为:

 

\[transdat, lambda\]=boxcox(x);

其中x是原始数据,transdat是变换以后的数据,lambda是变换公式中参数λ的数值。

 

例2.3.3 淮河位于中国东部,介于长江与黄河之间,是中国七大河之一。淮河流域地跨湖北、河南、安徽、江苏、山东5省,1952~1991年因水灾造成的流域成灾面积数据见表2-10,应用Box-Cox变换考查数据的正态分布特性。

 

 

 

表2-10 淮河流域成灾面积

(单位:106公倾2)

 

 

 

年份

1952

1953

1954

1955

1956

1957

1958

1959

 

成灾面积

1.4963

1.3411

4.082

1.2787

4.1549

3.6359

0.9416

0.2083

年份

1960

1961

1962

1963

1964

1965

1966

1967

成灾面积

1.4567

0.8569

2.7197

6.7494

3.6884

2.5395

0.2596

0.2747

年份

1968

1969

1970

1971

1972

1973

1974

1975

成灾面积

0.5398

0.5804

0.7038

0.9679

1.0219

0.5106

1.3253

1.8438

年份

1976

1977

1978

1979

1980

1981

1982

1983

成灾面积

0.4933

0.3437

0.2856

2.5296

1.6594

0.1615

3.208

1.4698

年份

1984

1985

1986

1987

1988

1989

1990

1991

成灾面积

2.938

1.9233

0.7498

0.7933

0.1276

1.4853

1.386

4.6226

  

数据来源:自然灾害学报,2005,6。

 

 

解:考查正态分布特性,可检验数据是否服从正态分布或考查经验分布函数与正态分布函数的差异。将淮河流域1951~1991年的成灾面积数据作为矩阵X输入,程序如下。

 

%绘制Q-Q图

 

clear

 

X=\[data\];                  %输入原始成灾面积数据data

 

\[b,t\]=boxcox(X');%对数据作Box-Cox变换

 

normplot(X)%原始数据的Q-Q图

 

figure(2);normplot(b)%变换数据的Q-Q图

 

%变换前后数据的经验分布函数图及相应的统计量

 

sa=sort(X);%原始数据次序统计量

 

sb=sort(b);%变换数据次序统计量

 

figure(3);cdfplot(X);%原始数据经验分布

 

hold on;

 

plot(sa,normcdf(sa),'-r')%正态分布函数

 

figure(4);cdfplot(b);%变换数据经验分布

 

hold on;

 

plot(sb,normcdf(sb),'-r')%变换数据经验分布与正态分布函数

作出图形如图2-16、图2-17所示,可以看出原始数据与正态分布函数相差甚远,变换后的数据则比较接近。

 

从图2-16、图2-17可以看出原始数据没有分布在直线上,而变换后的数据基本上落在直线上,因此可认为原始数据不服从正态分布,而变换后的数据服从正态分布。

 

从经验分布图2-18、图2-19可以看出:原始数据不服从正态分布,而变换数据近似服从正态分布。

 

 

 

图2-16 成灾面积原始数据Q-Q图

  

 

 

 

图2-17 成灾面积Box-Cox变换数据Q-Q图

 

 

 

 

图2-18 原始数据经验分布图

  

 

 

 

图2-19 变换数据经验分布图

 

 

2.3.3 基于数据变换的综合评价模型

 

例2.3.4 为了全面了解10家上市银行的绩效,用X1表示每股净收益,X2表示总资产利润率,X3表示净资产收益率,X4表示净利润增长率,X5表示净资产增长率,X6表示总资产增长率。这些指标的统计数据如表2-11所示,试对上市银行进行综合评价。

 

 

 

表2-11 10家上市银行的统计数据

 

 

 

 

公司名称

X1

X2

X3

X4

X5

X6

 

工商银行

0.21

0.33

4.01

0.60

15.59

6.95

农业银行

0.16

0.30

4.33

0.46

12.22

9.37

建设银行

0.27

0.35

4.53

1.14

14.74

9.54

中国银行

0.15

0.29

3.46

1.81

10.29

6.37

交通银行

0.26

0.26

3.44

0.93

13.00

11.73

招商银行

0.73

0.34

4.84

6.45

14.43

10.66

华夏银行

0.41

0.21

3.12

7.36

34.70

15.01

平安银行

0.43

0.23

3.24

8.12

37.21

16.33

兴业银行

0.82

0.29

4.76

6.05

20.73

21.22

浦发银行

0.70

0.27

4.18

24.10

20.65

22.86

  

数据来源:各银行2016年3月31日财务报告。

 

 

解:设原始数据矩阵为

X=x11x12…x1p

x21x22…x2p



xn1xn2…xnp (n=10,p=6)

  1)利用变异系数法建立权向量

wj=vj/∑6j=1vj

其中vj=sj/xj,sj与xj分别为第j项指标的标准差和均值。

 

2)建立理想方案

u=u01,u02,…,u06

其中u0j=max1≤i≤10{xij}(j=1,2,…,6)。

 

3)建立相对偏差模糊矩阵R

R=r11r12…r1p

x21x22…r2p



rn1rn2…rnp (n=10,p=6), 其中rij=xij-u0jmax1≤i≤10{xij}-min1≤i≤10{xij}

  4)建立综合评价模型

Di=∑6j=1rijwj (i=1,2,…,10)

评价准则为:若Di<Dj,则第i家上市公司的业绩优于第j家上市公司的业绩。

 

MATLAB程序如下:

 

clear

 

X=\[0.21,0.33,4.01,0.60,15.59,6.95;

0.16,0.30,4.33,0.46,12.22,9.37;

0.27,0.35,4.53,1.14,14.74,9.54;

0.15,0.29,3.46,1.81,10.29,6.37;

0.26,0.26,3.44,0.93,13.00,11.73;

0.73,0.34,4.84,6.45,14.43,10.66;

0.41,0.21,3.12,7.36,34.70,15.01;

0.43,0.23,3.24,8.12,37.21,16.33;

0.82,0.29,4.76,6.05,20.73,21.22;

0.70,0.27,4.18,24.10,20.65,22.86\];            %输入原始数据

m=mean(X);%计算各指标均值

s=std(X);%计算各指标标准差

v=s./abs(m);%计算各指标变异系数

w=v/sum(v);%计算各指标权重

R=abs(X-ones(10,1)*max(X))./\[ones(10,1)*range(X)\];%相对偏差矩阵

D=R*w';%计算综合评价值

\[F1,t1\]=sort(D);%综合评价值排序

\[F2,t2\]=sort(t1)%t2为输出上市公司的排名

程序运行结果:

D1=0.8735,D2=0.8908,D3=0.8066,D4=0.9373,D5=0.8702,

D6=0.5683,D7=0.5906,D8=0.5350,D9=0.4426,D10=0.1803

根据评价准则可得各公司排名见表2-12。

 

表2-12 10家上市银行的综合排名

 

 

银行

工商

农业

建设

中国

交通

招商

华夏

平安

兴业

浦发

排名

8

9

6

10

7

4

5

3

2

1

  

说明:如果采取不同的方法建立权向量,或者根据不同的方法得到相对优属度矩阵,评价的结果会有所不同。

 

习 题 2

 

1.已知样本数据为

1,3,4,2,9,6,7,8,11,2.5,3,10

1)求该数据的中位数;2)该数据的次序统计量;3)写出上述计算的MATLAB实现程序。

 

2.设数据(x1,x2,…,xn),用MATLAB编写3种不同程序,均能实现计算∑ni=1(xi-x)2。

 

3.设矩阵A表示某球队参加5场比赛的技术统计数据

A=a1a2,…,a6=a11a12…a16

a21a22…a26



a51a52…a56

其中a1表示投篮命中率,a2表示罚球命中率,a3表示后场篮板球,a4表示失误次数,a5表示抢断次数,a6表示盖帽次数。1)指标ai中哪些是效益型指标,哪些是成本型指标,写出统一趋势化的计算公式。2)写出MATLAB中的计算程序。

 

4.利用MATLAB软件生成均值向量为(3,2)、协方差矩阵为11.5

1.54的二元正态分布的随机数,并给出作散点图以及密度函数曲面图的程序。

 

5.考查鸢尾属植物中两个不同品种的花的如下四个形状指标:X1为萼片长度;X2为萼片宽度;X3为花瓣长度;X4为花瓣宽度;从这两个品种(记为1、2)中各选取50株,测得上述指标的取值见表2-13,求解以下问题:1)计算各指标的均值、方差、标准差、变异系数以及相关系数矩阵;2)计算各指标的偏度、峰度、三均值以及极差;3)作出各指标数据直方图并检验该数据是否服从正态分布;4)检验两个品种是否来自正态总体。

 

 

 

表2-13 鸢尾属植物两个不同品种的花的形状数据

 

编号

品种

x1

x2

x3

x4编号

品种

x1

x2

x3

x4

 

 

1165284615

2162224515

3159324818

4161304614

5160275116

6156253911

7157284513

8163334716

9170324714

10164324515

11161284013

12155243811

13154304515

14158264012

15155264412

 

16150233310

17167314414

18156304515

19158274110

20160294515

21157263510

22157194213

23149243310

24156274213

25157304212

26166294613

27152273914

28160344516

29150203510

30155243710

 

(续)

 

编号

品种

x1

x2

x3

x4编号

品种

x1

x2

x3

x4

 

31158273912

32162294313

33159304215

34160224010

35167314715

36163234413

37156304113

38163254915

39161284712

40164294313

41151253011

42157284113

43161294714

44156293613

45169314915

46155254013

47155234013

48166304414

49168284814

50167305017

51264285622

52267315624

53263285115

54269315123

55265305220

56265305518

57258275119

58268325923

59262345423

60277386722

61267335725

62276306621

63249254517

64267305223

65259305118

66263255019

67264325323

68279386420

69267335721

70277286720

71263274918

72272326018

73261304918

74261265614

75264285621

76262284818

77277306123

78263345624

79258275119

80272305816

81271305921

82264315518

83260304818

84263295618

85277266923

86260225015

87269325723

88274286119

89256284920

90273296318

91267255818

92265305822

93269315421

94272366125

95265325120

96264275319

97268305521

98257255020

99258285124

100263336025  

数据来源:梅长林,范金城,数据分析方法,高等教育出版社。

6.利用压缩变换对蠓虫分类问题建立模糊集合,并作出相应图形进行分析。

实验1 数据统计量及其分布检验

 

实验目的

1.熟练掌握利用MATLAB软件计算均值、方差、协方差、相关系数、标准差与变异系数、偏度与峰度、中位数、分位数、三均值、四分位极差与极差。

2.熟练掌握jbtest与lillietest关于一维数据的正态性检验。

3.掌握统计作图方法。

4.掌握多维数据的数字特征与相关矩阵的处理方法。

 

实验数据与内容

实验一

1949年到1990年,我国洪涝灾害统计数据如表2-14所列,解决以下问题:1)计算各项指标的平均值、标准差、变异系数、三均值、偏度与峰度;2)各项指标是否服从正态分布?若服从正态分布,计算概率为1%时的受灾面积、受灾人口及直接经济损失;若不服从正态分布,利用Box-Cox变换将数据进行变换,对变换后的数据进行相应的分析。

 

表2-14 我国洪涝灾害统计数据

年份

受灾面积

受灾人口

直接经济损失

1949928.22006190300

1950656192812028.87

195141760112614.71

1952279.4105923339.56

195374181210897.38

195416133937209300

195552540713061.56

195614382576326801.7

1957808.2787045708.41

1958428113214692

195948184525746

1960101668258179.59

1961887186726172.85

1962981150153865.8

196314072757629755.2

19641493156131458.73

196555968323751.14

1966251107968286.03

1967170.8957514286.03

1968224.343728232.32

1969463.18125223293.55

197031330517424.71

(续)

年份

受灾面积

受灾人口

直接经济损失

 

197139961815312.09

1972408160821804

1973624174614378.77

1974640198835974.6

197568212081000000

1976420258926163.63

1977910187260604.77

1978285213026155.93

1979676219154798.1

1980915410690339.39

19818624560335319.3

19828364499120239.5

198312165294221760.3

19841069nan1530

19851419.731294470282

1986915.53321703600

1987868.62105246253.3

19881194.933522803387.8

19891132.8nan233000

19901180.476111591968

 

注:表中nan表示数据缺失。

 

实验二

登录“国家外汇管理局”网站(http://www.safe.gov.cn/),在主页面“统计数据”栏查找“人民币汇率中间价”统计表,下载“2016年1月1日~2016年7月20日人民币每日汇率中间价数据”,分析人民币对美元、欧元、日元、英镑汇率的数据分布特征。

 

相关文章
|
2月前
|
数据挖掘 PyTorch TensorFlow
|
24天前
|
机器学习/深度学习 人工智能 搜索推荐
某A保险公司的 数据图表和数据分析
某A保险公司的 数据图表和数据分析
53 0
某A保险公司的 数据图表和数据分析
|
3月前
|
数据采集 DataWorks 数据挖掘
提升数据分析效率:DataWorks在企业级数据治理中的应用
【8月更文第25天】本文将探讨阿里巴巴云的DataWorks平台如何通过建立统一的数据标准、规范以及实现数据质量监控和元数据管理来提高企业的数据分析效率。我们将通过具体的案例研究和技术实践来展示DataWorks如何简化数据处理流程,减少成本,并加速业务决策。
409 54
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
|
1月前
|
数据挖掘 数据处理
ChatGPT在常用的数据分析方法中的应用(交叉分析)
ChatGPT在常用的数据分析方法中的应用(交叉分析)
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
47 0
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(对比分析)
ChatGPT在常用的数据分析方法中的应用(对比分析)
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【9月更文挑战第11天】在信息爆炸的时代,数据如沉睡的宝藏,等待发掘。Python以简洁的语法和丰富的库生态成为数据分析的首选,而TensorFlow则为深度学习赋能,助你洞察数据核心,解锁商机。通过Pandas库,我们可以轻松处理结构化数据,进行统计分析和可视化;TensorFlow则能构建复杂的神经网络模型,捕捉非线性关系,提升预测准确性。两者的结合,让你在商业竞争中脱颖而出,把握市场脉搏,释放数据的无限价值。以下是使用Pandas进行简单数据分析的示例:
42 5
|
2月前
|
SQL 数据采集 数据可视化
数据分析的方法
数据分析的方法
79 3
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于NSCT非采样轮廓波变换和CNN网络人脸识别matlab仿真
本项目展示了一种结合非采样轮廓波变换(NSCT)与卷积神经网络(CNN)的人脸识别系统。通过NSCT提取多尺度、多方向特征,并利用CNN的强大分类能力实现高效识别。项目包括ORL人脸库的训练结果对比,提供Matlab 2022a版本下的完整代码及详细中文注释,另有操作步骤视频指导。
下一篇
无影云桌面