Chaos is a ladder.|

West11

园龄:11个月粉丝:1关注:1

灰色关联度分析

灰色关联度分析法(Grey Relation Analysis),就是在一个灰色系统中,我们想要了解其中某个我们所关注的某个项目受其他的因素影响的相对强弱。

为此,需要设立母序列, 记为x0, 与子序列, 记为x1,2,

首先,对数据进行处理

正向化(省略)

标准化:xij1ni=1nxij

n 处理好数据后,母序列为

x0=x0(1),x0(2),, 子序列为x1=x1(1),x1(2),,x2=x2(1),x2(2),,

我们首先计算出母子序列最小差a=min|x0(k)xi(k)|,i,k之后再计算一下母子序列最大差b=max|x0(k)xi(k)|,i,k.

其次,定义r(x0k,xik)=a+ρb|x0kxik|+ρb,i,k.

其中,ρ一般位于[0, 1],往往取0.5. 计算各个序列,也就是指标与系统总体的关联程度。

我们定义 r(x0,xi)=i=1nr(x0k,xik)n , 用它来表达某个指标与系统总体发展的关联度。其实就是上面,求出了指标内部各个元素与母序列对应元素的关联度,把他们求个平均值,就可以看作该指标与系统总体的关联度了。

clear;clc
load gdp.mat  % 导入数据
Mean = mean(gdp);  % 求出每一列的均值以供后续的数据预处理
gdp = gdp ./ repmat(Mean,size(gdp,1),1); 
disp('预处理后的矩阵为:'); disp(gdp)
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))

本文作者:cxy1114blog

本文链接:https://www.cnblogs.com/cxy1114blog/p/18459132

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   West11  阅读(44)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起