28. 灰色关联分析
一、灰色系统理论简介
若系统的内部信息是完全已知的,称为白色系统;若系统的内部信息是一无所知(一团漆黑),只能从它同外部的联系来观测研究,这种系统便是黑色系统;灰色系统介于二者之间,灰色系统的一部分信息是已知的,一部分是未知的。
灰色系统理论以“部分信息已知、部分信息未知”的“小样本”、“贫信息”不确定型系统为研究对象,其特点是:
(1)认为不确定量是灰数,用灰色数学来处理不确定量,使之量化,灰色系统理论只需要很少量的数据序列;
(2)观测到的数据序列看作随时间变化的灰色量或灰色过程,通过鉴别系统因素之间发展趋势的相似或相异程度,即进行关联度分析;
(3)通过累加生成和累减生成逐步使灰色量白化,从而建立相应于微分方程解的模型,从而预测事物未来的发展趋势和未来状态。
二、灰色关联度分析
1. 要定量地研究两个事物间的关联程度,可以用相关系数和相似系数等,但这需要足够多的样本数或者要求数据服从一定概率分布。
在客观世界中,有许多因素之间的关系是灰色的,分不清哪些因素之间关系密切,哪些不密切,这样就难以找到主要矛盾和主要特性。
灰因素关联分析,目的是定量地表征诸因素之间的关联程度,从而揭示灰色系统的主要特性。
关联分析是灰色系统分析和预测的基础。
关联分析源于几何直观,实质上是一种曲线间几何形状的分析比较,即几何形状越接近,则发展变化趋势越接近,关联程度越大。
如下图所示:
x
t
曲线A 与B 比较平行,则认为A 与B 的关联程度大;曲线C 与A 随时间变化的方向很不一致,则认为A 与C 的关联程度较小;曲线A 与D 相差最大,则认为两者的关联程度最小。
2. 关联度分析是分析系统中各因素关联程度的方法
步骤:
(1) 计算关联系数
设参考序列为
0000{(1),(2),...,()}X x x x n =
比较序列为
{(1),(2),...,()}, 1,,i i i i X x x x n i m ==
比较序列X i 对参考序列X 0在k 时刻的关联系数定义为:
0000min min ()() max max ()()()()() max max ()()s s s t s t
i i s s t
x t x t x t x t k x k x k x t x t ρηρ-+-=-+- 其中,0min min ()()s s t
x t x t -和0max max ()()s s t x t x t -分别称为两级最小差、两级最大差,[0,1]ρ∈称为分辨系数,ρ越大分辨率越大,一般采用0.5ρ=
对单位不一,初值不同的序列,在计算关联系数之前应首先进行初值化,即将该序列的所有数据分别除以第一数据,将变量化为无单位的相对数值。
注1:若数据是负向数据(越小越好),初值化时要取倒数,即用第一数据除以该所有数据;
注2:也可以数据均值化,所有数据都除以均值;也可以数据百分比化,所有数据都除以最大值;也可以数据归一化。
(2) 计算关联度
关联系数只表示了各个时刻参考序列和比较序列之间的关联程度,为了从总体上了解序列之间的关联程度,必须求出它们的时间平均值,即关联度:
1
1()n
i i k r k n η==∑ 注:若各指标有不同的权重,可以对i η进行加权平均,得到灰色
加权关联度。
例1对某健将级女子铅球运动员的跟踪调查,获得其1982 年至1986 年每年最好成绩及16项专项素质和身体素质的时间序列资料:
做灰色关联度分析,看哪些指标与铅球成绩关联度更高?从而进行更加有针对性的训练。
代码:
data=xlsread('data28_1.xlsx');
x=data(:,2:18);
%初始化数据
for i=1:15
x(:,i)=x(:,i)/x(1,i);
end
for i=16:17
x(:,i)=x(1,i)./x(:,i);
end
n=size(x,1); %序列元素个数
ck=x(:,1); %提取参考序列
bj=x(:,2:end); %提取比较序列
m=size(bj,2);
for j=1:m %每个比较序列与参考序列作差
t(:,j)=bj(:,j)-ck;
end
min2=min(min(abs(t))); %求两级最小差
max2=max(max(abs(t))); %求两级最大差
rho=0.5; %分辨系数
eta=(min2+rho*max2)./(abs(t)+rho*max2); %求关联系数
r=mean(eta) %求关联度
[rs,rind]=sort(r,'descend') %对关联度从大到小排序
运行结果:
r = 0.5881 0.6627 0.8536 0.7763 0.8549 0.5022 0.6592 0.5820 0.6831 0.6958 0.8955 0.7047 0.9334 0.8467 0.7454 0.7261
rs = 0.9334 0.8955 0.8549 0.8536 0.8467 0.7763 0.7454 0.7261 0.7047 0.6958 0.6831 0.6627 0.6592 0.5881 0.5820 0.5022
rind =
13 11 5 3 14 4 15 16 12 10 9 2 7 1 8 6
结果表明,影响铅球专项成绩的前8项主要因素依次为:全蹲x13,3kg滑步x11,高翻x5,4kg原地x3,挺举x14,立定跳远x4,
30米起跑x15,100米x16.
三、优势分析
当参考序列不止一个,比较序列也不止一个时,需要进行优势分析。
设有m个参考序列(母因素),记为y1, …, y m
有l个比较序列(子因素),记为x1, …, x l
则这l个比较序列对每一个参考序列都有l个关联度,记r ij表示比较序列x j对参考序列y i的关联度,可得到关联度矩阵R=(r ij)m×l 根据矩阵R的各元素的大小,可分析判断出哪些因素起主要影响(优势因素),哪些因素起次要影响;进一步,当某一列元素大于其他列元素时,称此列对应的因素为优势子因素;若某一行元均大于其他行元素时,称此行所对应的母因素为优势母因素。
若矩阵R的某个元素达到最大,则该行对应的母因素被认为是所有母因素中影响最大的。
注:为了便于分析,常将较小的元素近似为0.
例2某地区有5个子因素,6个母因素:
x1:固定资产投资y1:国民收入
x2:工业投资y2:工业收入
x3:农业投资y3:农业收入
x4:科技投资y4:商业收入
x5:交通投资y5:交通收入
y6:建筑业收入
其数据见下表:
代码:
data=xlsread('data28_2.xlsx');
x=data(:,2:end);
[m,n]=size(x); %m为观测时刻数; n为所有因素的个数
%初值化数据
for i=1:n
x(:,i)=x(:,i)/x(1,i);
end
s1=6; %母因素个数
s2=5; %子因素个数ý
mu=x(:,s2+1:end); %提取母因素
zi=x(:,1:s2); %提取子因素
for i=1:s1
%对每个母因素, 分别计算子因素关于它的关联度, 作为关联度矩阵的1行for j=1:s2
t(:,j)=zi(:,j)-mu(:,i);
end
min2=min(min(abs(t)));
max2=max(max(abs(t)));
rho=0.5;
eta=(min2+rho*max2)./(abs(t)+rho*max2);
R(i,:)=mean(eta);
end
R
运行结果:
R = 0.8017 0.7611 0.5567 0.8096 0.9349
0.6887 0.6658 0.5287 0.8854 0.8004
0.8910 0.8581 0.5786 0.5773 0.6749
0.6776 0.6634 0.5675 0.7800 0.7307
0.8113 0.7742 0.5648 0.8038 0.9205
0.7432 0.7663 0.5616 0.6065 0.6319
结果说明:从关联度矩阵R可以看出,
(1) 第4行元素都比较小,表明各种投资对商业收入影响不大,即商业是一个不太需要依赖外部投资而能自行发展的行业。
从消耗投资上看,这是劣势,但从少投资多收入的效益观点看,商业是优势;
(2) 各行最大值反应了哪个子因素对该行对应的母因素影响最大,例如,r15=0.9349最大,表明交通投资(x5)对国民收入(y1)的影响最大;
(3) 第一行和第五行除了第3个元素外都较大,说明国民收入、交通收入是较综合性的行业,受除农业投资外其他投资的影响都较大。