參考原理博客地址https://blog.csdn.net/u013713294/article/details/53407087
一、基本原理
在信息論中,熵是對不確定性的一種度量。信息量越大,不確定性就越小,熵也就越小;信息量越小,不確定性越大,熵也越大。
根據熵的特性,可以通過計算熵值來判斷一個事件的隨機性及無序程度,也可以用熵值來判斷某個指標的離散程度,指標的離散程度越大,該指標對綜合評價的影響(權重)越大,其熵值越小。
二、熵值法步驟
1. 選取
n個國家,
m個指標,則
為第
i個國家的第
j個指標的數值(
i=1, 2…,
n;
j=1,2,…,
m);
為第
i個國家的第
j個指標的數值(
i=1, 2…,
n;
j=1,2,…,
m);
2. 指標的歸一化處理:異質指標同質化
由於各項指標的計量單位並不統一,因此在用它們計算綜合指標前,先要對它們進行標准化處理,即把指標的絕對值轉化為相對值,並令
,從而解決各項不同質指標值的同質化問題。而且,由於正向指標和負向指標數值代表的含義不同(正向指標數值越高越好,負向指標數值越低越好),因此,對於高低指標我們用不同的算法進行數據標准化處理。其具體方法如下:
,從而解決各項不同質指標值的同質化問題。而且,由於正向指標和負向指標數值代表的含義不同(正向指標數值越高越好,負向指標數值越低越好),因此,對於高低指標我們用不同的算法進行數據標准化處理。其具體方法如下:
正向指標:
負向指標:
則
為第
i個國家的第
j個指標的數值(
i=1, 2…,
n;
j=1, 2,…,
m)。為了方便起見,歸一化后的數據仍記為
;
為第
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個待評價個體的分數和 指標所占的權重

