适用范围:计算影响结果的因素的重要程度,确定权重,也适用于评价类问题
基本思想:根据曲线集合形状的相似程度,判断联系是否紧密,曲线越接近,相应序列之间的关联度越大,反之越小
灰色关联分析优点:计算量小,对样本的量多少和有无规律都同样适用,不会出现量化结果与定性分析结果不符的情况
灰色关联分析缺点:不太主流,美赛不适用
简单总结灰度分析步骤: 一,先把数据除以该列的平均值
二,计算|x0(k)-xi(k)|,得到两极最小值和最大值,计算出关联系数矩阵(x0此处指母序列) 三,计算出列平均值即灰色关联度
一.确定分析序列:
母序列(参考序列,母指标):能反映系统行为特征的数据序列,类似于y(此处的国内生产总值)
子序列(比较序列,子指标):影响 系统行为的因素组成的数据序列,类似于x(各个产业生产总值)
二.变量预处理
目的:缩小变量范围简化计算,去除量纲
对母序列和子序列中的每个指标进行预处理,先求出每个列均值,再用该指标中的每个元素都除以其均值
三.计算子序列中各个指标与母序列关联系数
两极最小差a = minmin|x0(k)-xi(k)|
两极最大差b = maxmax|x0(k)-xi(k)|
分辨系数p一般取0.5
关联系数计算公式:
|x0(k)-xi(k)|计算后结果:
根据公式计算关联系数得到的结果
四.计算灰色关联度
简单来说就是关联系数的平均值
运算结果:五.简单代码MATLAB实现
clear;clc
load gdp.mat % 载入数据
% 数据预处理,每一个元素除所在列的均值
Mean = mean(gdp);
gdp = gdp ./ repmat(Mean,size(gdp,1),1);
% 确定子母序列
Y = gdp(:,1);
X = gdp(:,2:end);
% 计算两级最小差,和最大差
val_min = 100;
val_max = 0;
for i = 1:3
val_min = min(val_min,min(abs(X(:,i)-Y)));
val_max = max(val_max,max(abs(X(:,i)-Y)));
end
% 计算灰度关联系数
p = 0.5; % 分辨系数取0.5
absX0_Xi = abs(X - repmat(Y,1,size(X,2))); % 计算|X0-Xi|矩阵
g = (val_min+p*val_max) ./ (absX0_Xi+p*val_max); % 各指标与母序列关联系数
% 计算灰色关联度
res = mean(g)
该模型也可以用来确定权重