CRITIC权重法附实例及matlab代码实现

CRITIC权重法是一种客观赋权法,但是它所反应的权重和熵权法中的权重有所不同。
一篇文章里看到的,感觉蛮不错。
CRITIC权重法附实例及matlab代码实现_第1张图片

关于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权重法附实例及matlab代码实现_第2张图片
因为看到的这篇的文献里也提到,看了相关研究,做了改进才将相关系数取了绝对值,因此,还是看怎么效果好怎么来吧。

参考文献:长三角一体化视角下制造业高质量发展评价研究——基于改进的CRITIC-熵权法组合权重的TOPSIS评价模型

你可能感兴趣的:(机器学习,数学建模,matlab,CRITIC,评价模型,机器学习)