天天看點

MATLAB 資料分析方法(第2版)2.3 資料變換

<b>2.3 資料變換</b>

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)

顯然名額經過極差變換後,均有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)

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&gt;0,效益型

a&lt;0,成本型

例2.3.2 對于例2.3.1的糧食産量資料用s形函數建立高産的隸屬度函數。

解:編寫程式如下。

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圖

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);%變換資料經驗分布

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

3.44

0.93

13.00

11.73

招商銀行

0.73

0.34

4.84

6.45

14.43

10.66

華夏銀行

0.41

3.12

7.36

34.70

15.01

平安銀行

0.43

0.23

3.24

8.12

37.21

16.33

興業銀行

0.82

4.76

6.05

20.73

21.22

浦發銀行

0.70

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&lt;dj,則第i家上市公司的業績優于第j家上市公司的業績。

matlab程式如下:

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 鸢尾屬植物兩個不同品種的花的形狀資料

編号

品種

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

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日人民币每日匯率中間價資料”,分析人民币對美元、歐元、日元、英鎊匯率的資料分布特征。

繼續閱讀