【数模】CRITIC客观赋权法(代码实现)

前言

关于详细理论介绍大家可以看这篇博客客观赋权法——CRITIC权重法,本文着重于代码实现

概念

CRITIC的全称是Criteria Importance Though Intercrieria Correlation

它的基本思路是确定指标的客观权数以两个基本概念为基础。一是对比强度,它表示同一指标各个评价方案取值差距的大小,以标准差的形式来表现,即标准化差的大小表明了在同一指标内各方案的取值差距的大小,标准差越大各方案的取值差距越大。二是评价指标之间的冲突性,指标之间的冲突性是以指标之间的相关性为基础,如两个指标之间具有较强的正相关,说明两个指标冲突性较低。

输入和输出

计算有n个样本,m个指标的样本所对应的的熵权
输入: Z : nm的矩阵(要经过正向化和标准化处理,且元素中不存在负数)
输出:W:权重,1
m的行向量

指标变异性

以标准差的形式来表现

S=std(Z);

S j S_j Sj表示第 j j j个指标的标准差
CRITIC法中使用标准差来表示各指标的内取值的差异波动情况,标准差越大表示该指标的数值差异越大,越能放映出更多的信息,该指标本身的评价强度也就越强,应该给该指标分配更多的权重。

指标冲突性

用相关系数进行表示

r=corrcoef(Z);
R=sum(r);

R i j R_{ij} Rij表示第 j j j个指标的标准差
使用相关系数来表示指标间的相关性,与其他指标的相关性越强,则该指标就与其他指标的冲突性越小,反映出相同的信息越多,所能体现的评价内容就越有重复之处,一定程度上也就削弱了该指标的评价强度,应该减少对该指标分配的权重。

信息量

C=S.*R;

C j C_j Cj越大,第 j j j 个评价指标在整个评价指标体系中的作用越大,就应该给其分配更多的权重。

客观权重

W=C./sum(C);

你可能感兴趣的:(数学建模,算法,python,机器学习)