一、灰色关联分析
1.概述
一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种因素,多种因素共同作用的结果决定了该系统的发展态势。在众多的因素中,哪些是主要因素,哪些是次要因素;哪些因素对系统发展影响大,哪些因素对系统发展影响小;哪些因素对系统发展起推动作用需强化发展,哪些因素对系统发展起抑制作用需加以抑制……这些都是系统分析中需要普遍关心的问题。例如粮食生产系统中,人们希望提高粮食产量,而影响粮食总产量的因素是多方面的,有播种面积以及水利、化肥、土壤、种子、劳力、气候、耕作技术和政策环境等。为了实现少投入多产出,并取得良好的经济效益、社会效益和生态效益,就必须进行系统分析。
2.数理统计缺点
数理统计中的回归分析、方差分析、主成分分析等都是用来进行系统分析的方法。这些方法都有下述不足之处:
(1)要求有大量数据,数据量少就难以找到统计规律;
(2)要求样本服从某个典型的概率分布,要求各因素数据与系统特征数据之间呈线性关系且各因素之间彼此无关,这种要求往往难以满足;
(3)计算量大,一般要靠计算机帮助;(现在也不算缺点了哈)
(4)可能会出现量化结果于定性分析结果不符的现象,导致系统的关系和规律遭到歪曲和颠倒。
尤其是我国统计数据十分有限,而且现有数据灰度较大,再加上人为的原因,许多数据都出现几次大起大落,没有典型的分布规律。因此,采用数理统计方法往往难以奏效。
3.灰色关联优点
灰色关联分析方法弥补了采用数理统计方法作系统分析所导致的遗憾。它对样本量的多少和样本有无规律都同样适用,而且计算量小,十分方便,更不会出现量化结果与定性分析结果不符的情况。
灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其连系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。
4.灰色关联度的计算
分别求两极最小值和两极最大值, x 0 x_0 x0为因变量, x i x_i xi为自变量,也就是求出绝对值差的矩阵的最小值和最大值
a = min i min k ∣ x 0 ( k ) − x i ( k ) ∣ a=\min _{i} \min _{k}\left|x_{0}(k)-x_{i}(k)\right| a=iminkmin∣x0(k)−xi(k)∣
b = max i max k ∣ x 0 ( k ) − x i ( k ) ∣ b=\max _{i} \max _{k}\left|x_{0}(k)-x_{i}(k)\right| b=imaxkmax∣x0(k)−xi(k)∣
我们定义gama为
y ( x 0 ( k ) , x i ( k ) ) ) = a + ρ b ∣ x 0 ( k ) − x i ( k ) ∣ + ρ b y\left(x_{0}(k), x_{i}(k)\right))=\frac{a+ρb}{\left|x_{0}(k)-x_{i}(k)\right|+ρb} y(x0(k),xi(k)))=∣x0(k)−xi(k)∣+ρba+ρb
( ρ 为 分 辨 率 , 一 般 设 为 0.5 ) (ρ为分辨率,一般设为0.5) (ρ为分辨率,一般设为0.5)
我们定义灰色关联度为
Y ( x 0 , x i ) = 1 n ∑ k = 1 n y ( x 0 ( k ) , x i ( k ) ) Y\left(x_{0}, x_{i}\right)=\frac{1}{n} \sum_{k=1}^{n} y\left(x_{0}(k), x_{i}(k)\right) Y(x0,xi)=n1k=1∑ny(x0(k),xi(k))
二、灰色关联应用
1.进行系统分析
下表为某地区国内生产总值的统计数据(以百万元计),问该地区从2000年到2005年之间哪一种产业对GDP总量影响最大。
(1)画统计图:
我们可以先用Excel作各个企业和国内生产总值作时间序列曲线图
首先,我们可以发现四个变量都呈上升趋势,其次第二产业的增幅比较明显,第二产业和第三产业的差距在后三年相差更大
(2)确定分析数列:
母数列(又称参考数列、母指标):能反映系统行为特征的数据序列——类似于因变量Y,此处记作x0
子数列(又称比较数列、子指标):影响系统行为的因素组成的数据序列——类似于自变量X,此处记作(x1,x2……xm)
本例中,国内生产总值就是Y,第一、第二和第三产业就是X
(3)对数据进行预处理:(两个目的:去量纲、缩小变量范围简化计算)
对母序列和子序列的每个指标进行预处理,先求出每个指标的均值,再利用该指标中的每个元素都除以其均值。
Mean = mean(gdp); % 求出每一列的均值以供后续的数据预处理
gdp = gdp ./ repmat(Mean,size(gdp,1),1); %size(gdp,1)=6, repmat(Mean,6,1)可以将矩阵进行复制,复制为和gdp同等大小,然后使用点除(对应元素相除),这些在第一讲层次分析法都讲过
disp('预处理后的矩阵为:'); disp(gdp)
由此我们可以得到的预处理的数据
(4)计算子序列中的各个指标与母序列的关联系数和灰色关联度
Y = gdp(:,1); % 母序列
X = gdp(:,2:end); % 子序列
absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)
a = min(min(absX0_Xi)) % 计算两级最小差a
b = max(max(absX0_Xi)) % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi + rho*b)
disp('子序列中各个指标的灰色关联度分别为:');disp(mean(gamma))
由此我们可以得到各个指标与母序列的灰色关联度
(6)通过比较三个子序列和母序列的灰色关联度可以得到结论:
该地区在2000年至2005年间的国内生产总值受到第三产业的影响最大(其灰色关联度最大)
2.用于综合评价
下表为不同河流的含氧量、PH值、细菌个数和植物性营养物量的统计数据,问水质情况最好的河流
注意:含氧量越高越好,PH值越接近7越好,细菌个数越少越好,植物性营养物量介于10-20之间最好
(1)对指标进行正向化
由题意可知,含氧量为极大型指标,PH值为中间型指标,细菌个数为极小型指标,植物性营养物质为区间型指标
%%极小型转极大型
function [posit_x] = Min2Max(x)posit_x = max(x) - x;%posit_x = 1 ./ x; %如果x全部都大于0,也可以这样正向化
end%%中间型转极大型
function [posit_x] = Mid2Max(x,best)M = max(abs(x-best));posit_x = 1 - abs(x-best) / M;
end%%区间型转极大型
function [posit_x] = Inter2Max(x,a,b)r_x = size(x,1); % row of x M = max([a-min(x),max(x)-b]);posit_x = zeros(r_x,1); for i = 1: r_xif x(i) < aposit_x(i) = 1-(a-x(i))/M;elseif x(i) > bposit_x(i) = 1-(x(i)-b)/M;elseposit_x(i) = 1;endend
end
(2)对正向化的指标进行预处理:
%% 对正向化后的矩阵进行预处理
Mean = mean(X); % 求出每一列的均值以供后续的数据预处理
Z = X ./ repmat(Mean,size(X,1),1);
disp('预处理后的矩阵为:'); disp(Z)
(3)将预处理后的矩阵每一行取最大值构成母序列(虚拟的):
%% 构造母序列和子序列
Y = max(Z,[],2); % 母序列为虚拟的,用每一行的最大值构成的列向量表示母序列
X = Z; % 子序列就是预处理后的数据矩阵
(4)计算得分并排序:
%% 计算得分
absX0_Xi = abs(X - repmat(Y,1,size(X,2))) % 计算|X0-Xi|矩阵
a = min(min(absX0_Xi)) % 计算两级最小差a
b = max(max(absX0_Xi)) % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi + rho*b) % 计算子序列中各个指标与母序列的关联系数
weight = mean(gamma) / sum(mean(gamma)); % 利用子序列中各个指标的灰色关联度计算权重
score = sum(X .* repmat(weight,size(X,1),1),2); % 未归一化的得分
stand_S = score / sum(score); % 归一化后的得分
[sorted_S,index] = sort(stand_S ,'descend') % 进行排序
当得出的结果与熵权法+topsis相比时,可以发现两者有相同的趋势,但两个曲线较大的出入,但我们如果只用topsis而并没有对子序列赋予权重,得出的结果与灰色分析基本一致
三、灰色关联分析思考
1.什么时候使用标准化回归,什么时候用灰色关联分析
当样本个数n较大时,一般使用标准化回归,当样本个数n较小时,一般使用灰色关联分析
2.如果母序列中有多个指标,应该怎么分析
应该分开计算并分析母序列和各个子序列的灰色关联度
3.什么时候需要构造母序列
当用于评价类问题时,我们需要选出预处理后的矩阵的每一行的最大值作为母序列
4.灰色关联分析在什么比赛适用
灰色关联分析是国人提出的,不适用美赛,但适用于国内比赛,例如五一杯等等比赛