参考原理博客地址https://blog.csdn.net/u013713294/article/details/53407087

一、基本原理

在信息论中,熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。
根据熵的特性,可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大,其熵值越小。

二、熵值法步骤

1. 选取n个国家,m个指标,则为第i个国家的第j个指标的数值(i=1,
2…, n; j=1,2,…, m);

2. 指标的归一化处理:异质指标同质化

由于各项指标的计量单位并不统一,因此在用它们计算综合指标前,先要对它们进行标准化处理,即把指标的绝对值转化为相对值,并令,从而解决各项不同质指标值的同质化问题。而且,由于正向指标和负向指标数值代表的含义不同(正向指标数值越高越好,负向指标数值越低越好),因此,对于高低指标我们用不同的算法进行数据标准化处理。其具体方法如下:
正向指标:
负向指标:
为第i个国家的第j个指标的数值(i=1, 2…, n; j=1,
2,…, m)。为了方便起见,归一化后的数据仍记为;

3. 计算第j项指标下第i个国家占该指标的比重:

4. 计算第j项指标的熵值:
其中. 满足;

5. 计算信息熵冗余度:

6. 计算各项指标的权值:

7. 计算各国家的综合得分:

注:对正逆指标归一化的时候如果采用的方法不一样,正指标归一化得到的值会大一些,逆指标的归一化得到的值会小一些,然后算权重,逆指标对应的权重也会相应的小,从而逆指标对应的得分也小些,就相当于对逆指标进行了处理。如果对正逆指标归一化采用的方法一样,为了体现逆指标的不利影响,最后应该总分减去逆指标的得分的。两种方法不同,但都是为了体现逆指标对综合得分的不利影响。

matlab代码实现及其注释

https://github.com/wangjiwu/entropy-method-matlab-

只需要更改相应的data 和 指标矩阵即可

main.m 主函数

clc;
load shang_datas % load the data %加载数据 列数表示指标数 , 行数表示评价的个体数
%此数据 7个评价个体 3个评价指标
X = shang_datas %说明指标是正向指标还是负向指标
%此数据第一个是负向指标, 其余为正向指标
Ind=[2 1 1]; %Specify the positive or negative direction of each indicator %S 为分数排名 W为指标权重
[S,W]=shang(X,Ind) % get the score

其他函数请查看github项目地址

运行结果

我使用的数据是 3个指标, 7个待评价个体



进行处理后得到 7个待评价个体的分数和 指标所占的权重

最新文章

  1. Restful WebApi项目开发实践
  2. 你必须知道的Javascript 系列
  3. webapp开发调试环境--weinre配置
  4. SublimeText的奇特应用
  5. 百度编辑器 UEditor 报错汇总
  6. 烂泥:KVM使用NAT联网并为VM配置iptables端口转发
  7. 在Windows下使用BAT调度存储在资源库中的KTR
  8. ALTER TABLE 语句与 FOREIGN KEY 约束"FK_SCHEDULE_REFERENCE_POSTCONF"冲突。
  9. Django里面的自定义tag和filter
  10. vue-cli脚手架npm相关文件解读(1)webpack.base.conf.js
  11. PHP生成 uuid
  12. 西北地区打不开github的解决办法~
  13. Krpano教程tour.xml详解
  14. Rime 小狼毫 注意事项
  15. SVG绘制太极图
  16. ABP框架系列之十:(Application-Services-应用服务)
  17. windows service 的错误 错误 14001:
  18. Java数值类型之间转换
  19. [vue]spa单页开发及vue-router基础
  20. Unity3D学习笔记(二):个体层次、绝对和局部坐标、V3平移旋转

热门文章

  1. P1469 找筷子
  2. 因为mac不支持移动硬盘的NTFS格式,mac电脑无法写入移动硬盘的终极解决办法
  3. 【Python学习笔记六】获取百度搜索结果以及百度返回“百度安全验证”问题解决
  4. three.js 数学方法之Box3
  5. 题解 洛谷 P5163 【WD与地图】
  6. java并发编程[持续更新]
  7. paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器?
  8. 2Ants(独立,一个个判,弹性碰撞,想象)
  9. javascript 中 this
  10. nginx访问日志分析,筛选时间大于1秒的请求