写在前面:
博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。
1.算法原理
熵权法是一种客观赋值方法。在具体使用的过程中,熵权法根据各指标的变异程度,利用信息熵计算出各指标的熵权,再通过熵权对各指标的权重进行修正,从而得到较为客观的指标权重。一般来说,若某个指标的信息熵指标权重确定方法之熵权法越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。相反,若某个指标的信息熵指标权重确定方法之熵权法越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。
2.算法步骤
(1)数据标准化处理
这里采用的标准化方式是数据归一化方法。
(2)计算信息熵
每个指标的信息熵计算公式为
其中
(3)计算指标权重
(4)计算综合得分
3.实例分析
表中为2020年安徽省16个地级市11个指标的数据,利用熵权法对这16个地区的经济发展水平进行综合评价。
Matlab代码:
clc;clear; data=xlsread('2020.xlsx');%读取数据 %数据标准化 mapminmax对行进行标准化,所以转置一下 data1=mapminmax(data‘,0.002,0.996); %标准化到0.002-0096之间 data1=data1'; [m,n]=size(data1); p=zeros(m,n); for j=1:n p(:,j)=data1(:,j)/sum(data1(:,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=data1*w'%计算得分
综合得分排序结果:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
0.9960 |
0.3857 |
0.2494 |
0.2399 |
0.2189 |
0.1845 |
0.1835 |
0.1808 |
合肥 |
芜湖 |
滁州 |
阜阳 |
马鞍山 |
宣城 |
蚌埠 |
安庆 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
0.1203 |
0.1195 |
0.1194 |
0.1157 |
0.0946 |
0.0935 |
0.0842 |
0.0574 |
宿州 |
亳州 |
铜陵 |
六安 |
黄山 |
淮南 |
淮北 |
池州 |
通过排序出的得分结果可以看出:合肥市排在第一位,且得分遥遥领先于其他城市,可见省会城市居民消费水平之高,也侧面反映除了合肥市的经济发展水平更好!