CRITIC权重法附实例及matlab代码实现
Posted Icy Hunter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRITIC权重法附实例及matlab代码实现相关的知识,希望对你有一定的参考价值。
CRITIC权重法是一种客观赋权法,但是它所反应的权重和熵权法中的权重有所不同。
一篇文章里看到的,感觉蛮不错。
关于CRITIC的计算过程,感觉已经有蛮不错的博客了,而且计算起来也比较简单,例如这个就讲的不错客观赋权法——CRITIC权重法
过程挺清晰明了的。
下面展示一道例题。题目链接:http://www.doc88.com/p-4082292004105.html
但是感觉他的结果可能算错了。
下面是我的结果
下面上代码
clc,clear
data = [0.4830 13.2682 0 4.3646 5.1070
0.4035 13.4909 39.0131 3.6151 5.5005
0.8979 25.7776 9.0513 4.8920 7.5342
0.5927 16.0245 13.2935 4.4529 6.5913];
data(:, 3) = -data(:, 3); % 成本型指标转换为效益型
[m, n] = size(data);
for i = 1:n
data(:, i) = (data(:, i) - min(data(:, i)))/(max(data(:, i)) - min(data(:, i)));
end
corr = corrcoef(data); % 计算相关系数矩阵
corr_1 = sum(1 - corr); % 计算冲突性
data_std = std(data); % 计算每列方差
C = data_std .* corr_1; % 计算信息量
w = C./sum(C); % 计算权重
w
至于关于相关系数如果出现负数要不要取正这个问题,原始的CRITIC应该不用。
因为看到的这篇的文献里也提到,看了相关研究,做了改进才将相关系数取了绝对值,因此,还是看怎么效果好怎么来吧。
参考文献:长三角一体化视角下制造业高质量发展评价研究——基于改进的CRITIC-熵权法组合权重的TOPSIS评价模型
以上是关于CRITIC权重法附实例及matlab代码实现的主要内容,如果未能解决你的问题,请参考以下文章