综合评价与决策方法(三)——灰色关联分析

19 篇文章 13 订阅

灰色关联分析“交响曲”

乐谱概要

1、确定比较对象(评价对象)和参考数列;
2、确定各指标对应的权重;
3、计算灰色关联系数;
4、计算灰色加权关联度;
5、评价分析。

演奏开始

灰色关联分析的前奏

1、确定比较对象(评价对象)和参考数列(评价标准)。设评价对象有 m m m个,评价指标有 n n n个,参考数列为 x 0 = [ x 0 ( k ) ∣ k = 1 , 2 , . . . , n ] x_0=[x_0(k)|k=1,2,...,n] x0=[x0(k)k=1,2,...,n],比较数列为 x i = [ x i ( k ) ∣ k = 1 , 2 , . . . , n ] , i = 1 , 2 , . . . , m x_i=[x_i(k)|k=1,2,...,n],i=1,2,...,m xi=[xi(k)k=1,2,...,n],i=1,2,...,m
2、确定各指标对应的权重。权重的确定需要采用层次分析法来实现,具体的步骤详见后面的介绍博客。由层次分析法等确定各指标对应的权重 w = [ w 1 , w 2 , . . . , w n ] w=[w_1,w_2,...,w_n] w=[w1,w2,...,wn],其中 w k ( k = 1 , 2 , . . . , n ) w_k(k=1,2,...,n) wk(k=1,2,...,n)为第 k k k个评价指标对应的权重。

灰色关联分析的高潮

3、计算灰色关联系数:
在这里插入图片描述
上述表达式为比较数列 x i x_i xi对参考数列 x 0 x_0 x0在第 k k k个指标上的关联系数,其中 ρ ∈ [ 0 , 1 ] ρ∈[0,1] ρ[0,1]为分辨系数。其中,称在这里插入图片描述
分别为两级最小差及两级最大差。
一般来讲,分辨系数 ρ ρ ρ越大,分辨率越大; ρ ρ ρ越小,分辨率越小。
4、计算灰色加权关联度。灰色加权关联度的计算公式为:
在这里插入图片描述
其中, r i r_i ri为第 i i i个评价对象对理想对象的灰色加权关联度。

灰色关联分析的尾声

5、评价分析。根据灰色加权关联度的大小,对各评价对象进行排序,可建立评价对象的关联序,关联度越大,其评价结果越好。

参考函数代码

function [gsort,index] = grey_correlation(a,bar_code)
%   grey_correlation 该函数进行灰色关联分析
%   bar_code是一个向量,只能取1或者2,它相当于一个条形码,用于区分效益型指标和成本型指标
%   在bar_code中,数字1表示为效益型指标,数字2表示为成本型指标
%   输入的数据矩阵中,每一行表示为评价指标,每一列表示为评价对象
ind1=find(bar_code==1);%确定效益型指标的索引号
ind2=find(bar_code==2);%确定成本型指标的索引号
for i=1:length(ind1)  %效益型指标标准化
    a(ind1(i),:)=(a(ind1(i),:)-min(a(ind1(i),:)))/(max(a(ind1(i),:))-min(a(ind1(i),:)));
end
for j=1:length(ind2)  %成本型指标标准化
   a(ind2(j),:)=(max(a(ind2(j),:))-a(ind2(j),:))/(max(a(ind2(j),:))-min(a(ind2(j),:))); 
end
[~,n]=size(a);
cankao=max(a,[],2);  %求参考序列的取值(此处区别于书中的代码做了简化)
t=repmat(cankao,[1,n])-a;  %求参考序列与每一个序列的差
mmin=min(min(t));   %计算最小差
mmax=max(max(t));  %计算最大差
rho=0.5; %分辨系数
xishu=(mmin+rho*mmax)./(t+rho*mmax);  %计算灰色关联系数
guanliandu=mean(xishu);   %取等权重,计算关联度
[gsort,index]=sort(guanliandu,'descend');  %对关联度按照从大到小排序
end

如果想要自定义分辨系数,可以修改函数为:

function [gsort,index] = grey_correlation(a,bar_code,rho)
%   grey_correlation 该函数进行灰色关联分析
%   bar_code是一个向量,只能取1或者2,它相当于一个条形码,用于区分效益型指标和成本型指标
%   在bar_code中,数字1表示为效益型指标,数字2表示为成本型指标
%   输入的数据矩阵中,每一行表示为评价指标,每一列表示为评价对象
%   rho设置为了输入变量,可以自行定义
ind1=find(bar_code==1);%确定效益型指标的索引号
ind2=find(bar_code==2);%确定成本型指标的索引号
for i=1:length(ind1)  %效益型指标标准化
    a(ind1(i),:)=(a(ind1(i),:)-min(a(ind1(i),:)))/(max(a(ind1(i),:))-min(a(ind1(i),:)));
end
for j=1:length(ind2)  %成本型指标标准化
   a(ind2(j),:)=(max(a(ind2(j),:))-a(ind2(j),:))/(max(a(ind2(j),:))-min(a(ind2(j),:))); 
end
[~,n]=size(a);
cankao=max(a,[],2);  %求参考序列的取值(此处区别于书中的代码做了简化)
t=repmat(cankao,[1,n])-a;  %求参考序列与每一个序列的差
mmin=min(min(t));   %计算最小差
mmax=max(max(t));  %计算最大差
xishu=(mmin+rho*mmax)./(t+rho*mmax);  %计算灰色关联系数
guanliandu=mean(xishu);   %取等权重,计算关联度
[gsort,index]=sort(guanliandu,'descend');  %对关联度按照从大到小排序
end

灰色关联分析用于供应商选择决策中可以针对大量不确定性因素及其相互关系,将定量和定性方法有机结合起来,使原本复杂的问题更加清晰简单,并可在一定程度上排除决策者的主观任意性。
上述的函数可以通过书中的例子加一验证。

参考文献

司守奎,孙玺菁. 数学建模算法与应用. 北京:国防工业出版社,2011.

  • 7
    点赞
  • 0
    评论
  • 29
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值