熵权法 —— matlab

news2024/11/25 19:22:26

目录

一、熵权法介绍

二、熵权法赋权步骤

1.指标正向化

mapminmax介绍

2.数据标准化

3.计算信息熵

4.计算权重以及得分

三、实例分析

1.读取数据

2.指标正向化

2.1 越小越优型处理

2.2 某点最优型指标处理

3.数据标准化

4.计算信息熵

5.计算权重

6.计算得分

总结


一、熵权法介绍

熵权法是一种客观赋值方法。在具体使用的过程中,熵权法根据各指标的变异程度,利用信息熵计算出各指标的熵权,再通过熵权对各指标的权重进行修正,从而得到较为客观的指标权重。

一般来说,若某个指标的信息熵指标权重确定方法之熵权法越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。

相反,若某个指标的信息熵指标权重确定方法之熵权法越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。

二、熵权法赋权步骤

1.指标正向化

这个步骤视情况自己决定把。。。。

        不同的指标代表含义不一样,有的指标越大越好,称为越大越优型指标。有的指标越小越好,称为越小越优型指标,而有些指标在某个点是最好的,称为某点最优型指标。为方便评价,应把所有指标转化成越大越优型指标。

设有m个待评对象,n个评价指标,可以构成数据矩阵 

设数据矩阵内元素,经过指标正向化处理过后的元素为  (Xij)'

  • 越小越优型指标:C,D属于此类指标

其他处理方法也可,只要指标性质不变即可

  • 某点最优型指标:E属于此类指标

        设最优点为a, 当a=90时E最优。

          其他处理方法也可,只要指标性质不变即可

  • 越大越优型指标:其余所有指标属于此类指标

   此类指标可以不用处理,想要处理也可,只要指标性质不变

mapminmax介绍

最大最小值归一化

语法

[Y,PS] = mapminmax(X,YMIN,YMAX)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)

说明:

[Y,PS] = mapminmax(X,YMIN,YMAX) mapminmax(X,YMIN,YMAX) 将矩阵的每一行压缩到 [YMIN,YMAX],其中当前行的最大值变为YMAX,最小值变为YMIN。PS为结构体储存相关信息,如最大最小值等

[Y,PS] = mapminmax(X,FP) 其中FP为结构体类型,这时就是将矩阵的每一行压缩到[ FP.ymin, FP.ymax]中

Y = mapminmax('apply',X,PS) 可以将之前储存的结构体应用到新的矩阵中,利用上一步得到的PS来映射X到Y

X = mapminmax('reverse',Y,PS) 可按照之前数据规律,反归一化,利用归一化后的Y和PS重新得到X

2.数据标准化

        因为每个指标的数量级不一样,需要把它们化到同一个范围内再比较。标准化的方法比较多,这里仅用最大最小值标准化方法。

        设标准化后的数据矩阵元素为rij,由上可得指标正向化后数据矩阵元素为 (Xij)'

3.计算信息熵

        为避免Pij零元素的出现出现计算错误,归一化最低区间可以从0.002开始。如果某个指标的信息熵Ej越小,就表明其指标值的变异程度越大,提供的 信息量也越大,可以认为该指标在综合评价起到作用也越大。

4.计算权重以及得分

权重为:

得分为:

三、实例分析

        用一篇高引用的核心期刊论文[1]为例,针对各个银行的资产收益率,费用利润率,逾期贷款率,非生息资产率,流动性比率,资产使用率,自有资本率指标进行评价。设资产收益率为A,费用利润率为B,逾期贷款率为C,非生息资产率为D,流动性比率为E,资产使用率为F,自有资本率为G。数据表格如下:

1.读取数据

%读取数据
data=xlsread('D:\桌面\shangquan.xlsx')

返回:

在这里,我们可以看到读取的数据中,有部分是我们不想要的,于是我们得做处理

data=data(:,3:end) %只取指标数据

返回:

2.指标正向化

%指标正向    化处理后数据为data1
data1=data;

2.1 越小越优型处理

%%越小越优型处理
index=[3,4];%越小越优指标位置
for i=1:length(index)
  data1(:,index(i))=max(data(:,index(i)))-data(:,index(i))
end

返回:

2.2 某点最优型指标处理

%%某点最优型指标处理
index=[5];
a=90;%最优型数值
for i=1:length(index)
  data1(:,index(i))=1-abs(data(:,index(i))-a)/max(abs(data(:,index(i))-a))
end

返回:

3.数据标准化

data2=mapminmax(data1',0.002,1) %标准化到0.002-1区间

返回:

 由于是mapminmax对行进行标准化,所以需要转置一下

data2=data2'

返回:

4.计算信息熵

%得到信息熵
[m,n]=size(data2);
p=zeros(m,n);
for j=1:n
    p(:,j)=data2(:,j)/sum(data2(:,j))
end
for j=1:n
   E(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)))
end

返回: 

5.计算权重

%计算权重
w=(1-E)/sum(1-E)

返回:

6.计算得分

%计算得分
s=data2*w';
Score=100*s/max(s);
disp('12个银行分别得分为:')
disp(Score)

返回:

总结

clc;clear;
%读取数据
data=xlsread('D:\桌面\shangquan.xlsx');
data=data(:,3:end); %只取指标数据

%指标正向    化处理后数据为data1
data1=data;
%%越小越优型处理
index=[3,4];%越小越优指标位置
for i=1:length(index)
  data1(:,index(i))=max(data(:,index(i)))-data(:,index(i));
end
%%某点最优型指标处理
index=[5];
a=90;%最优型数值
for i=1:length(index)
  data1(:,index(i))=1-abs(data(:,index(i))-a)/max(abs(data(:,index(i))-a));
end

%数据标准化 mapminmax对行进行标准化,所以转置一下
data2=mapminmax(data1',0.002,1); %标准化到0.002-1区间
data2=data2';

%得到信息熵
[m,n]=size(data2);
p=zeros(m,n);
for j=1:n
    p(:,j)=data2(:,j)/sum(data2(:,j));
end
for j=1:n
   E(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)));
end

%计算权重
w=(1-E)/sum(1-E);

%计算得分
s=data2*w';
Score=100*s/max(s);
disp('12个银行分别得分为:')
disp(Score)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三章 技术选型

1、需要考虑以下几点 可控性 必须有人可以兜底,可以解决 稳定性 修改的版本最好可以上下兼容 核心项目不要用最新的技术 commit的时长 是否有团队维护 适用性 更多人都会的技术 易用性 学习曲线 2、有哪些好用的移动端React组件库 3、为什么使用NestJS 1、最像…

【LeetCode: 16. 最接近的三数之和 | 双指针专题 】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

港联证券|涨停不封板意味着什么?

涨停不封板或许是因为股票价格到达了涨停价,可是买卖量还未到达涨停板规则的要求,因而买卖并没有被暂停。涨停不封板也有或许是个股当天涨停之后,又呈现开板的状况。 总归,涨停不封板意味着上方的抛压较多,空方力气大于…

Node.js开发

Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境。 也就是说Node.js基于V8引擎来执行JavaScript的代码,但是不仅仅只有V8引擎:  前面我们知道V8可以嵌入到任何C 应用程序中,无论是Chrome还是Node.js,事实上都是嵌入…

C++智能指针使用及原理

在讲解之前,先讲述一种RAII思想. 目录 RAII 智能指针原理 auto_ptr auto_ptr的介绍 auto_ptr的实现 unique_ptr unique_ptr的介绍 unique_ptr实现 shared_ptr shared_ptr的介绍 shared_ptr实现 weak_ptr weak_ptr的介绍 weak_ptr的实现 RAII RAII&a…

西安大华时代网络科技有限公司

大华时代是行业领先的软件与信息技术服务企业。我们拥有专业的团队和先进的技术,在金融、电信、高科技和互联网等行业,为客户提供优质的产品、先进的解决方案和热情的服务!

【SpringBoot + Mybatis系列】插件机制 Interceptor

【SpringBoot Mybatis系列】插件机制 Interceptor 在 Mybatis 中,插件机制提供了非常强大的扩展能力,在 sql 最终执行之前,提供了四个拦截点,支持不同场景的功能扩展 Executor (update, query, flushStatements, commit, rollbac…

mysql check slow_log造成锁-waiting for table level lock

背景: 我们在生产环境使用mysql的时候开启了slow_log 记录表,但有的时候由于记录数据过大,造成该表损坏 ERROR 1194 (HY000): Table slow_log is marked as crashed and should be repaired 这时候就想着用check table 命令来看看表是否正…

云服务器下WordPress发送邮件的设置

WordPress的邮件功能很强大,可以实现用户密码以往后自助恢复等问题。 WordPress默认是使用php发邮件的,php需要配置好smtp(端口25)服务器及密码。这种方式不直观,因此一般都用smtp插件,常用的插件是WP Mai…

FastDDS 源码剖析:src/cpp/fastdds 源码结构与Publisher源码分析

目录 源码结构 Publisher分析 Publisher 类分析 PublisherIImpl 类分析 源码结构 —builtin:该目录包含FastDDS使用的内置类型和协议的实现。 —core:该目录包含FastDDS库中使用的核心类和函数。这包括处理错误、管理内存和处理线程的类。 --domain:此目录包含DomainPart…

本地资源检测 自定义规则 零基础上手指南

本地资源检测是UWA推出的、面向于静态资源的全量分析。可以全面自动检测项目静态工程内各项资源、代码和设置,能够帮助项目组制定合理的资源与代码标准,及时发现潜在的性能问题和异常错误,建立有效的开发规范。其中“自定义规则”功能特别获得…

docker 安装zookeeper单机版

1. 安装版本3.5.7, 也可以自己去官网找到自己需要的版本复制命令即可 https://hub.docker.com/_/zookeeper/tags docker pull zookeeper:3.5.7 2. 创建映射文件夹: #1. 在centos中创建三个文件夹 mkdir -p /home/zookeeper/conf mkdir -p /home/zookeeper/data mkd…

图片视频抹除算法总结Inpaint

基本是从图片抹水印和视频抹水印两个方向 Video Inpainting:https://paperswithcode.com/task/video-inpaintingImage Inpainting:https://paperswithcode.com/task/image-inpainting 请根据目录查看 图片 Partial Conv 部分卷积层 源自于Image In…

游戏服务器搭建过程中Maven多模块编译遇到的一些问题

目录 1、多模块的创建 1.1 父模块的创建 1.2 删除垃圾文件 1.3 修改pom.xml 1.4 创建子模块继承 2、子模块之间的互相引用 3、多个模块间版本的管理 3.1 dependencis 3.2 dependencyManagement 4、依赖执行 5、在Spring Boot项目中加载依赖项目的组件有几种常用的方法…

十一、PBR材质金属度、粗糙度以及环境贴图的使用

Three.js——十一、PBR材质金属度、粗糙度以及环境贴图的使用 metalness金属度 金属度属性.metalness表示材质像金属的程度, 非金属材料,如木材或石材,使用0.0,金属使用1.0。 new THREE.MeshStandardMaterial({metalness: 1.0,//金属度属性 }) // 或者 // mesh.material.met…

Java面试题-并发篇(2万字带你搞定并发问题)

Java面试题-并发篇 一、线程 1. 线程和进程有什么区别? 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务…

山西电力市场日前价格预测【2023-07-12】

日前价格预测 预测明日(2023-07-12)山西电力市场全天平均日前电价为446.44元/MWh。其中,最高日前价格为584.92元/MWh,预计出现在12: 00。最低日前电价为325.62元/MWh,预计出现在00: 30。 价差方向预测 1:实…

【操作系统】磁盘调度算法 先来先服务、最短寻道时间优先、扫描算法、循环扫描算法

目录 一、实验要求二、实验原理三、实验内容四、实验结果五、总结 一、实验要求 设计程序模拟先来先服务FCFS、最短寻道时间优先SSTF、扫描算法SCAN和循环扫描算法CSCAN的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反…

【sgRectSelect】Vue实现拖拽鼠标圈选、划区域、框选组件:矩形区域选中checkbox,并回调相关选中、取消选中的操作

边框线虚线动画效果请参阅边框虚线滚动动画特效_虚线滚动效果_你挚爱的强哥的博客-CSDN博客【代码】边框虚线滚动动画特效。_虚线滚动效果https://blog.csdn.net/qq_37860634/article/details/130507289 碰撞检测原理请前往 原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞…

嵌入式c语言编码规范

学习嵌入式的同学应该首先掌握嵌入式编码规范,这样才能更好的嵌入式系统。 下面就从这几个方面讲解一下嵌入式c编码规范。 注释风格、排版风格、头文件风格、变量定义、宏定义、函数 1 注释风格 1.1 注释的原则是有助于对程序的阅读和理解,注释不宜太多…