赞
踩
“对于一个系统而言(y),哪些是主要影响因素(x1)?哪些是相对次要的(x2)?哪些对系统发展起抑制作用(x3)?哪些对系统起促进作用(x4)?…又该怎么更好地去评价这些影响因素对于系统的影响。”
对于这个问题的思考,除了第一时间涌上脑海的传统的数理统计的方法(回归分析、主成分分析、方差分析等),还联想到了灰色关联法,这种方法可以用于“系统分析”与“综合评价”。
应用实例:
提示:本文学习数据出自“清风老师”
刘思峰教授《灰色系统理论及其应用》一文中提及“灰色关联分析的基本思想是根据序列曲线几何形状的相识程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联性就越大,反之则越小。”
废话不多说,咱们上数据进行分析,老样子看着流程图进行算法解析叭。
eg:
我们可以从图中得到:1.第二、第三产业在国内生产总值中占比比第一产业要大;2.第二、第三产业在2013年占比开始上升;3.国内生产总值呈逐年上升的趋势等信息。
这里对数据进行预处理,一来是为了消除数据之间的量纲的隔阂,二来为了将数据压缩到一个较小的范围,如(0,1),简化数据的运算与分析。这里的预处理与前面 《Matlab实现——结合AHP or 熵权法的TOPSIS评判模型》一文中的消除量纲预处理有所不同,灰色关联中预处理方法:
求出每个序列Xi(指标)的均值,再用该序列Xi(指标)的每个元素都处于其均值
即分析可得:
定义两极最大差b与两极最小差a,即计算公式如下,其中i为列坐标,k为横坐标:
计算可得,b=0.1862、a=0.0060:
从而可得到灰色关联系数 y :
其中ρ为分辨系数,一般取0.5.
即处理数据可得 y(Y,Xi(k)):
即求得各序列(指标)的灰色关系系数的平均值:
通过比较灰色关联度可知,第三产业对国内生产总值的影响最大。
以上便是利用灰色关联分析系统的全部过程。可以得知虽然样本数据量不是很大,但利用灰色关联分析,可以较好地直观体现各个指标(因素)对于一个系统的影响。
clear;clc
load gdp.mat % 导入数据 一个6*4的矩阵
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))
对于“综合评价”类算法,我们前面有提及到AHP、TOPSIS两种综合评价类算法,而今天学习的灰色关联法也同样可以作为一种综合评价类模型而使用。灰色关联综合评价模型总体上与TOPSIS模型相识,同样是从数据本身出发进行分析评价。
其中:
具体步骤可以说与 《Matlab实现——结合AHP or 熵权法的TOPSIS评判模型》十分相识,甚至可以说比TOPSIS算法来的简单。故不再在这里加以赘述了。
本人是一个比较懒的人,希望通过这种方式来加强我学习的印象,同时也希望可以和大家多多的交流经验,大家有什么问题可以后台留言。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。