适用范围:计算影响结果的因素的重要程度,也适用于评价类问题
基本思想:根据曲线集合形状的相似程度,判断联系是否紧密,曲线越接近,相应序列之间的关联度越大,反之越小
灰色关联分析优点:计算量小,对样本的量多少和有无规律都同样适用,不会出现量化结果与定性分析结果不符的情况
灰色关联分析缺点:不太主流,美赛不适用
简单总结灰度分析步骤:
一,先把数据除以该列的平均值
二,计算|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)|计算后结果:
根据公式计算关联系数得到的结果:
四.计算灰色关联度
简单来说就是关联系数的平均值
运算结果:
注意点:
何时用标准化回归?或灰色关联分析?
样本个数较大时用,标准化回归,样本个数较少时用灰色关联
母序列多个指标怎么分析?
比如:Y1和Y2时母序列,X1,X2,X3…是子序列
分开计算Y1和所有子序列进行分析,再计算Y2和所有子序列进行分析
所以哪个图像相似就必是其影响越大?
有时用灰色关联分析,图像很相似的不一定是灰色关联度最大的指标
五.简单代码实现
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)
建模小白的笔记,望指点