熵权法 —— matlab
目錄
一、熵權(quán)法介紹
二、熵權(quán)法賦權(quán)步驟
1.指標(biāo)正向化
mapminmax介紹
2.數(shù)據(jù)標(biāo)準(zhǔn)化
3.計算信息熵
4.計算權(quán)重以及得分
三、實例分析
1.讀取數(shù)據(jù)
2.指標(biāo)正向化
2.1?越小越優(yōu)型處理
2.2?某點最優(yōu)型指標(biāo)處理
3.數(shù)據(jù)標(biāo)準(zhǔn)化
4.計算信息熵
5.計算權(quán)重
6.計算得分
總結(jié)
一、熵權(quán)法介紹
熵權(quán)法是一種客觀賦值方法。在具體使用的過程中,熵權(quán)法根據(jù)各指標(biāo)的變異程度,利用信息熵計算出各指標(biāo)的熵權(quán),再通過熵權(quán)對各指標(biāo)的權(quán)重進(jìn)行修正,從而得到較為客觀的指標(biāo)權(quán)重。
一般來說,若某個指標(biāo)的信息熵指標(biāo)權(quán)重確定方法之熵權(quán)法越小,表明指標(biāo)值得變異程度越大,提供的信息量越多,在綜合評價中所能起到的作用也越大,其權(quán)重也就越大。
相反,若某個指標(biāo)的信息熵指標(biāo)權(quán)重確定方法之熵權(quán)法越大,表明指標(biāo)值得變異程度越小,提供的信息量也越少,在綜合評價中所起到的作用也越小,其權(quán)重也就越小。
二、熵權(quán)法賦權(quán)步驟
1.指標(biāo)正向化
這個步驟視情況自己決定把。。。。
????????不同的指標(biāo)代表含義不一樣,有的指標(biāo)越大越好,稱為越大越優(yōu)型指標(biāo)。有的指標(biāo)越小越好,稱為越小越優(yōu)型指標(biāo),而有些指標(biāo)在某個點是最好的,稱為某點最優(yōu)型指標(biāo)。為方便評價,應(yīng)把所有指標(biāo)轉(zhuǎn)化成越大越優(yōu)型指標(biāo)。
設(shè)有m個待評對象,n個評價指標(biāo),可以構(gòu)成數(shù)據(jù)矩陣?
設(shè)數(shù)據(jù)矩陣內(nèi)元素,經(jīng)過指標(biāo)正向化處理過后的元素為? (Xij)'
-
越小越優(yōu)型指標(biāo):C,D屬于此類指標(biāo)
其他處理方法也可,只要指標(biāo)性質(zhì)不變即可
-
某點最優(yōu)型指標(biāo):E屬于此類指標(biāo)
????????設(shè)最優(yōu)點為a, 當(dāng)a=90時E最優(yōu)。
? ? ? ? ??其他處理方法也可,只要指標(biāo)性質(zhì)不變即可
-
越大越優(yōu)型指標(biāo):其余所有指標(biāo)屬于此類指標(biāo)
? ?此類指標(biāo)可以不用處理,想要處理也可,只要指標(biāo)性質(zhì)不變
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],其中當(dāng)前行的最大值變?yōu)閅MAX,最小值變?yōu)閅MIN。PS為結(jié)構(gòu)體儲存相關(guān)信息,如最大最小值等
[Y,PS] = mapminmax(X,FP)?其中FP為結(jié)構(gòu)體類型,這時就是將矩陣的每一行壓縮到[?FP.ymin,?FP.ymax]中
Y = mapminmax('apply',X,PS)?可以將之前儲存的結(jié)構(gòu)體應(yīng)用到新的矩陣中,利用上一步得到的PS來映射X到Y(jié)
X = mapminmax('reverse',Y,PS)?可按照之前數(shù)據(jù)規(guī)律,反歸一化,利用歸一化后的Y和PS重新得到X
2.數(shù)據(jù)標(biāo)準(zhǔn)化
????????因為每個指標(biāo)的數(shù)量級不一樣,需要把它們化到同一個范圍內(nèi)再比較。標(biāo)準(zhǔn)化的方法比較多,這里僅用最大最小值標(biāo)準(zhǔn)化方法。
????????設(shè)標(biāo)準(zhǔn)化后的數(shù)據(jù)矩陣元素為rij,由上可得指標(biāo)正向化后數(shù)據(jù)矩陣元素為?(Xij)'
3.計算信息熵
????????為避免Pij零元素的出現(xiàn)出現(xiàn)計算錯誤,歸一化最低區(qū)間可以從0.002開始。如果某個指標(biāo)的信息熵Ej越小,就表明其指標(biāo)值的變異程度越大,提供的 信息量也越大,可以認(rèn)為該指標(biāo)在綜合評價起到作用也越大。
4.計算權(quán)重以及得分
權(quán)重為:
得分為:
三、實例分析
????????用一篇高引用的核心期刊論文[1]為例,針對各個銀行的資產(chǎn)收益率,費用利潤率,逾期貸款率,非生息資產(chǎn)率,流動性比率,資產(chǎn)使用率,自有資本率指標(biāo)進(jìn)行評價。設(shè)資產(chǎn)收益率為A,費用利潤率為B,逾期貸款率為C,非生息資產(chǎn)率為D,流動性比率為E,資產(chǎn)使用率為F,自有資本率為G。數(shù)據(jù)表格如下:
1.讀取數(shù)據(jù)
%讀取數(shù)據(jù) data=xlsread('D:\桌面\shangquan.xlsx')返回:
在這里,我們可以看到讀取的數(shù)據(jù)中,有部分是我們不想要的,于是我們得做處理
data=data(:,3:end) %只取指標(biāo)數(shù)據(jù)返回:
2.指標(biāo)正向化
%指標(biāo)正向 化處理后數(shù)據(jù)為data1 data1=data;2.1?越小越優(yōu)型處理
%%越小越優(yōu)型處理 index=[3,4];%越小越優(yōu)指標(biāo)位置 for i=1:length(index)data1(:,index(i))=max(data(:,index(i)))-data(:,index(i)) end返回:
2.2?某點最優(yōu)型指標(biāo)處理
%%某點最優(yōu)型指標(biāo)處理 index=[5]; a=90;%最優(yōu)型數(shù)值 for i=1:length(index)data1(:,index(i))=1-abs(data(:,index(i))-a)/max(abs(data(:,index(i))-a)) end返回:
3.數(shù)據(jù)標(biāo)準(zhǔn)化
data2=mapminmax(data1',0.002,1) %標(biāo)準(zhǔn)化到0.002-1區(qū)間返回:
?由于是mapminmax對行進(jìn)行標(biāo)準(zhǔn)化,所以需要轉(zhuǎn)置一下
data2=data2'返回:
4.計算信息熵
%得到信息熵 [m,n]=size(data2); p=zeros(m,n); for j=1:np(:,j)=data2(:,j)/sum(data2(:,j)) end for j=1:nE(j)=-1/log(m)*sum(p(:,j).*log(p(:,j))) end返回:?
5.計算權(quán)重
%計算權(quán)重 w=(1-E)/sum(1-E)返回:
6.計算得分
%計算得分 s=data2*w'; Score=100*s/max(s); disp('12個銀行分別得分為:') disp(Score)返回:
總結(jié)
clc;clear; %讀取數(shù)據(jù) data=xlsread('D:\桌面\shangquan.xlsx'); data=data(:,3:end); %只取指標(biāo)數(shù)據(jù)%指標(biāo)正向 化處理后數(shù)據(jù)為data1 data1=data; %%越小越優(yōu)型處理 index=[3,4];%越小越優(yōu)指標(biāo)位置 for i=1:length(index)data1(:,index(i))=max(data(:,index(i)))-data(:,index(i)); end %%某點最優(yōu)型指標(biāo)處理 index=[5]; a=90;%最優(yōu)型數(shù)值 for i=1:length(index)data1(:,index(i))=1-abs(data(:,index(i))-a)/max(abs(data(:,index(i))-a)); end%數(shù)據(jù)標(biāo)準(zhǔn)化 mapminmax對行進(jìn)行標(biāo)準(zhǔn)化,所以轉(zhuǎn)置一下 data2=mapminmax(data1',0.002,1); %標(biāo)準(zhǔn)化到0.002-1區(qū)間 data2=data2';%得到信息熵 [m,n]=size(data2); p=zeros(m,n); for j=1:np(:,j)=data2(:,j)/sum(data2(:,j)); end for j=1:nE(j)=-1/log(m)*sum(p(:,j).*log(p(:,j))); end%計算權(quán)重 w=(1-E)/sum(1-E);%計算得分 s=data2*w'; Score=100*s/max(s); disp('12個銀行分別得分為:') disp(Score)總結(jié)
以上是生活随笔為你收集整理的熵权法 —— matlab的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒙特卡罗型概率算法
- 下一篇: 【matlab之熵权法计算指标权重】