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

    xiaoxiao2024-02-22  124

    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日人民币每日汇率中间价数据”,分析人民币对美元、欧元、日元、英镑汇率的数据分布特征。

     

    相关资源:七夕情人节表白HTML源码(两款)
    最新回复(0)