日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

CRITIC法之python

發布時間:2025/3/15 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CRITIC法之python 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

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.48313.268204.36465.107
光大0.403513.490939.01313.61515.5005
浦發0.897925.77769.05134.8927.5342
招商0.592716.024513.29354.45296.5913

3.1 讀取數據

#導入數據 data=pd.read_excel('D:\桌面\CRITIC.xlsx') print(data)

返回:

去掉變量名和序號:

label_need=data.keys()[1:] data1=data[label_need].values print(data1)

返回:

3.2 指標正向化及標準化

查看行數和列數:

data2 = data1 [m,n]=data2.shape print(m,n)

返回:

?

本實例中逾期貸款率為負向指標數據

因此負向指標標準化

#負向指標標準化 index=[2] #負向指標位置,注意python是從0開始計數,對應位置也要相應減1 for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(d_max-data1[:,j])/(d_max-d_min) print(data2)

返回:

在對剩余數據進行正向指標標準化

# 正向指標標準化 #正向指標位置 index_all=np.arange(n) index=np.delete(index_all,index) for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min) print(data2)

返回:

3.3 計算對比度

#對比性 the=np.std(data2,axis=0) print(the)

返回:

3.4?矛盾性

#矛盾性 data3=list(map(list,zip(*data2))) #矩陣轉置 r=np.corrcoef(data3) #求皮爾遜相關系數 f=np.sum(1-r,axis=1) print(f)

返回:

3.5 計算信息載量

#信息承載量 c=the*f print(c)

返回:

3.6 計算權重?

#計算權重 w=c/sum(c) print(w)

返回:

3.7 計算得分

#計算得分 s=np.dot(data2,w) Score=100*s/max(s) for i in range(0,len(Score)):print(f"{data['銀行'][i]}銀行百分制評分為:{Score[i]}")

返回:

完整代碼?

#完整代碼 #導入相關庫 import pandas as pd import numpy as np #導入數據 data=pd.read_excel('D:\桌面\CRITIC.xlsx') label_need=data.keys()[1:] data1=data[label_need].values #查看行數和列數 data2 = data1 [m,n]=data2.shape #負向指標標準化 index=[2] #負向指標位置,注意python是從0開始計數,對應位置也要相應減1 for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(d_max-data1[:,j])/(d_max-d_min) # 正向指標標準化 #正向指標位置 index_all=np.arange(n) index=np.delete(index_all,index) for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min) #對比性 the=np.std(data2,axis=0) #矛盾性 data3=list(map(list,zip(*data2))) #矩陣轉置 r=np.corrcoef(data3) #求皮爾遜相關系數 f=np.sum(1-r,axis=1) #信息承載量 c=the*f #計算權重 w=c/sum(c) #計算得分 s=np.dot(data2,w) Score=100*s/max(s) for i in range(0,len(Score)):print(f"{data['銀行'][i]}銀行百分制評分為:{Score[i]}")

總結

以上是生活随笔為你收集整理的CRITIC法之python的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。