CRITIC法之matlab
目錄
1.簡介
2.原理解析
2.1 指標正向化及標準化
2.2?計算信息承載量
2.3?計算權重和評分
3.實例分析
3.1 讀取數據
3.2 指標正向化及標準化
3.3 計算對比度
3.4?矛盾性
3.5 計算信息載量
3.6 計算權重?
3.7 計算得分
完整代碼?
1.簡介
????????CRITIC是Diakoulaki(1995)提出一種評價指標客觀賦權方法。該方法在對指標進行權重計算時圍繞兩個方面進行:對比度和矛盾(沖突)性。
????????它的基本思路是確定指標的客觀權數以兩個基本概念為基礎。一是對比度,它表示同一指標各個評價方案取值差距的大小,以標準差的形式來表現,即標準化差的大小表明了在同一指標內各方案的取值差距的大小,標準差越大各方案的取值差距越大。二是評價指標之間的沖突性,指標之間的沖突性是以指標之間的相關性為基礎,如兩個指標之間具有較強的正相關,說明兩個指標沖突性較低。
2.原理解析
2.1 指標正向化及標準化
????????設有m個待評對象,n個評價指標,可以構成數據矩陣X=(xij)m*n,設數據矩陣內元素,經過指標正向化處理過后的元素為xij'
- 若xj為負向指標(越小越優型指標)
- 若xj為正向指標(越大越優型指標)
2.2?計算信息承載量
-
對比性
用標準差表示第j?項指標的對比性
-
矛盾性
矛盾性反映的是不同指標之間的相關程度,若呈現顯著正相關性,則矛盾性數值越小。設指標𝑗與其余指標矛盾性大小為fj
??rij表示指標i?與指標j?之間的相關系數,在此使用的是皮爾遜相關系數,此為線性相關系數。
-
信息承載量
? ?設指標𝑗與信息承載量為Cj
2.3?計算權重和評分
計算權重:
信息承載量越大可認為權重越大
計算得分:
3.實例分析
| 銀行 | 資產收益率 | 費用利潤率 | 逾期貸款率 | 資產使用 | 自有資本率 |
| 中信 | 0.483 | 13.2682 | 0 | 4.3646 | 5.107 |
| 光大 | 0.4035 | 13.4909 | 39.0131 | 3.6151 | 5.5005 |
| 浦發 | 0.8979 | 25.7776 | 9.0513 | 4.892 | 7.5342 |
| 招商 | 0.5927 | 16.0245 | 13.2935 | 4.4529 | 6.5913 |
3.1 讀取數據
data=xlsread('D:\桌面\CRITIC.xlsx')返回:
3.2 指標正向化及標準化
本實例中逾期貸款率為負向指標數據
因此負向指標標準化:
%%負向指標準化處理, index=[3]; %第三個指標為負向指標 for i=1:length(index)data1(:,index(i))=(max(data(:,index(i)))-data(:,index(i)))/(max(data(:,index(i)))-min(data(:,index(i)))); end data1返回:
在對剩余數據進行正向指標標準化:
%%正向指標準化處理 index_all=1:size(data1,2); index_all(index)=[]; % 除負向指標外其余所有指標 index=index_all; for i=1:length(index)data1(:,index(i))=(data(:,index(i))-min(data(:,index(i))))/(max(data(:,index(i)))-min(data(:,index(i)))); end data1返回:
3.3 計算對比度
%%對比性 the=std(data1)返回:
3.4?矛盾性
%%矛盾性 r=corr(data1);%計算指標間的相關系數 f=sum(1-r)返回:
3.5 計算信息載量
%%信息承載量 c=the.*f返回:
3.6 計算權重?
%計算權重 w=c/sum(c)返回:
3.7 計算得分
%計算得分 s=data1*w'; Score=100*s/max(s); yin={'中信','光大','浦發','招商'}; for i=1:length(Score)fprintf('%s銀行百分制評分為:%4.2f\n',yin{1,i},Score(i)); end返回:
完整代碼?
% CRITIC法分析 clc;clear; %讀取數據 data=xlsread('D:\桌面\CRITIC.xlsx'); %指標正向化和標準化處理后數據為data1 data1=data; %%負向指標準化處理, index=[3]; %第三個指標為負向指標 for i=1:length(index)data1(:,index(i))=(max(data(:,index(i)))-data(:,index(i)))/(max(data(:,index(i)))-min(data(:,index(i)))); end %%正向指標準化處理 index_all=1:size(data1,2); index_all(index)=[]; % 除負向指標外其余所有指標 index=index_all; for i=1:length(index)data1(:,index(i))=(data(:,index(i))-min(data(:,index(i))))/(max(data(:,index(i)))-min(data(:,index(i)))); end %%對比性 the=std(data1); %%矛盾性 r=corr(data1);%計算指標間的相關系數 f=sum(1-r); %%信息承載量 c=the.*f; %計算權重 w=c/sum(c); %計算得分 s=data1*w'; Score=100*s/max(s); yin={'中信','光大','浦發','招商'}; for i=1:length(Score)fprintf('%s銀行百分制評分為:%4.2f\n',yin{1,i},Score(i)); end總結
以上是生活随笔為你收集整理的CRITIC法之matlab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios android 字体颜色,iOS
- 下一篇: 数学建模学习笔记(一)——层次分析模型