熵權法原理及matlab代碼實現


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

一、基本原理


在信息論中,熵是對不確定性的一種度量。信息量越大,不確定性就越小,熵也就越小;信息量越小,不確定性越大,熵也越大。
根據熵的特性,可以通過計算熵值來判斷一個事件的隨機性及無序程度,也可以用熵值來判斷某個指標的離散程度,指標的離散程度越大,該指標對綜合評價的影響(權重)越大,其熵值越小。

二、熵值法步驟


1. 選取 n個國家, m個指標,則 為第 i個國家的第 j個指標的數值( i=1, 2…,  nj=1,2,…,  m);

2. 指標的歸一化處理:異質指標同質化

由於各項指標的計量單位並不統一,因此在用它們計算綜合指標前,先要對它們進行標准化處理,即把指標的絕對值轉化為相對值,並令 ,從而解決各項不同質指標值的同質化問題。而且,由於正向指標和負向指標數值代表的含義不同(正向指標數值越高越好,負向指標數值越低越好),因此,對於高低指標我們用不同的算法進行數據標准化處理。其具體方法如下:
正向指標:
負向指標:
為第 i個國家的第 j個指標的數值( i=1, 2…,  nj=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個待評價個體的分數和 指標所占的權重
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM