Python Numpy實現(xiàn)計算矩陣的均值和標準差詳解
一、
CRITIC權重法是一種比熵權法和標準離差法更好的客觀賦權法:
- 它是基于評價指標的對比強度和指標之間的沖突性來綜合衡量指標的客觀權重??紤]指標變異性大小的同時兼顧指標之間的相關性,并非數(shù)字越大就說明越重要,完全利用數(shù)據自身的客觀屬性進行科學評價。
- 對比強度是指同一個指標各個評價方案之間取值差距的大小,以標準差的形式來表現(xiàn)。標準差越大,說明波動越大,即各方案之間的取值差距越大,權重會越高;
指標之間的沖突性,用相關系數(shù)進行表示,若兩個指標之間具有較強的正相關,說明其沖突性越小,權重會越低。
對于 CRITIC 權重法而言,在標準差一定時,指標間沖突性越小,權重也越小;沖突性越大,權重也越大;另外,當兩個指標間的正相關程度越大時,(相關系數(shù)越接近1),沖突性越小,這表明這兩個指標在評價方案的優(yōu)劣上反映的信息有較大的相似性。
在用 Python 復現(xiàn) CRITIC 權重法時,需要計算變異系數(shù),以標準差的形式來表現(xiàn),如下所示:
Sj表示第 j 個指標的標準差,在 CRITIC 權重法中使用標準差來表示各指標的內取值的差異波動情況,標準差越大表示該指標的數(shù)值差異越大,越能放映出更多的信息,該指標本身的評價強度也就越強,應該給該指標分配更多的權重。
研究收集到湖南省某醫(yī)院 2011 年 5 個科室的數(shù)據,共有 6 個指標,當前希望通過已有數(shù)據分析各個指標的權重情況如何,便于醫(yī)院對各個指標設立權重進行后續(xù)的綜合評價,用于各個科室的綜合比較等。數(shù)據如下:
二、詳解計算均值和標準差
初始化一個簡單的矩陣:
a = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) a
分別計算整體的均值、每一列的均值和每一行的均值:
print("整體的均值:", np.mean(a)) # 整體的均值 print("每一列的均值:", np.mean(a, axis=0)) # 每一列的均值 print("每一行的均值:", np.mean(a, axis=1)) # 每一行的均值
分別計算整體的標準差、每一列的標準差和每一行的標準差:
print("整體的方差:", np.std(a)) # 整體的標準差 print("每一列的方差:", np.std(a, axis=0)) # 每一列的標準差 print("每一列的方差:", np.std(a, axis=1)) # 每一行的標準差
結果如下:
三、實踐:CRITIC權重法計算變異系數(shù)
導入需要的依賴庫:
import numpy as np import pandas as pd
提取數(shù)據:
df = pd.read_excel("./datas/result03.xlsx") df datas = df.iloc[:, 1:] datas
如下所示:
數(shù)據正向和逆向化處理:
X = datas.values xmin = X.min(axis=0) xmax = X.max(axis=0) xmaxmin = xmax - xmin n, m = X.shape print(m, n) for i in range(n): for j in range(m): if j == 5: X[i, j] = (xmax[j] - X[i, j]) / xmaxmin[j]# 越小越好 else: X[i, j] = (X[i, j] - xmin[j]) / xmaxmin[j]# 越大越好 X = np.round(X, 5) print(X)
如下所示:
按列計算每個指標數(shù)據的標準差:
發(fā)現(xiàn)結果與文檔不一致:
原因:numpy默認是除以樣本數(shù),求的是母體標準差;而除以樣本-1,得到的才是樣本標準差,這時設置參數(shù) ddof=1 即可!
如上圖所示,這下與文檔里的結果一致了!
以上就是Python Numpy實現(xiàn)計算矩陣的均值和標準差詳解的詳細內容,更多關于Python計算矩陣均值標準差的資料請關注本站其它相關文章!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。