數(shù)據(jù)分析是在當(dāng)今信息爆炸的時(shí)代中應(yīng)用廣泛的技術(shù)之一。為了從大量的數(shù)據(jù)中提取有價(jià)值的信息,我們需要一種有效的方法來(lái)對(duì)不同的指標(biāo)進(jìn)行權(quán)重分配,熵權(quán)法可以作為一個(gè)客觀的綜合評(píng)價(jià)方法,比如根據(jù)河流的不同指標(biāo),評(píng)估不同河流的水質(zhì)。熵權(quán)法能夠幫助我們確定不同指標(biāo)的權(quán)重,使得我們能夠更準(zhǔn)確地評(píng)估數(shù)據(jù)的價(jià)值和重要性。本文將介紹熵權(quán)法其原理、應(yīng)用(excel&python)和評(píng)估方式。
為什么要用熵權(quán)法?或者說(shuō)具體什么場(chǎng)景下應(yīng)用。如果你很熟悉業(yè)務(wù)指標(biāo),可以根據(jù)你的經(jīng)驗(yàn),主觀去給指標(biāo)賦權(quán)重,并且指標(biāo)就幾個(gè),這種情況就不需要用熵權(quán)法。但是當(dāng)你不熟悉,無(wú)法根據(jù)過(guò)往經(jīng)驗(yàn)給權(quán)重,那么我們就需要用熵權(quán)法。例如,在投資決策中,可以使用熵權(quán)法來(lái)確定不同投資指標(biāo)的重要性,從而指導(dǎo)投資策略的制定。接下來(lái)我們看什么是熵權(quán)法。
一、熵權(quán)法的原理
熵是信息理論中表示信息量的概念。熵對(duì)不同指標(biāo)的權(quán)重進(jìn)行分配,指標(biāo)越混亂熵越大,越有秩序熵越小。那么,熵權(quán)法是通過(guò)計(jì)算每個(gè)指標(biāo)的熵值來(lái)衡量其隨機(jī)性和不確定性,然后根據(jù)熵值的大小來(lái)確定每個(gè)指標(biāo)的權(quán)重,基本思路是根據(jù)指標(biāo)變異性的大小來(lái)確定客觀權(quán)重。總的來(lái)說(shuō),指標(biāo)數(shù)據(jù)變異程度越高,熵越大,給的權(quán)重也越高。
二、熵權(quán)法的應(yīng)用
1. 準(zhǔn)備數(shù)據(jù)
①缺失值處理
數(shù)據(jù)要保證沒(méi)有缺失值,如果有缺失值,可以考慮用均值,中位數(shù)等進(jìn)行填充。
②確定指標(biāo)類型
在所有的指標(biāo)中,可能有正向,可能有負(fù)向。正向是數(shù)值越大越好,負(fù)向是數(shù)值越小越好。比如用戶分層模型,R最近消費(fèi)間隔,數(shù)值越小越好;F消費(fèi)頻次,M消費(fèi)金額越大越好。那么R就是負(fù)向指標(biāo),F(xiàn)M就是正向指標(biāo)。在本案例數(shù)據(jù)中p1-P13是正向指標(biāo),n1-n2是負(fù)向指標(biāo)。
③數(shù)據(jù)標(biāo)準(zhǔn)化
確定數(shù)據(jù)類型,就是在標(biāo)準(zhǔn)化這一步來(lái)使用的,標(biāo)準(zhǔn)化是來(lái)解決量綱不一致的問(wèn)題。看到我們的案例數(shù)據(jù),最大的單位有百萬(wàn),最小的是十。我們需要根據(jù)公式對(duì)正向和負(fù)向指標(biāo)分別標(biāo)準(zhǔn)化。公式如下:
- xij : 對(duì)于i個(gè)樣本,j個(gè)指標(biāo),則xij為第i個(gè)樣本的第j個(gè)指標(biāo);比如這里的x14表示第一個(gè)樣本的第四個(gè)指標(biāo)數(shù)據(jù),也就是為0.3724
2. 實(shí)現(xiàn)過(guò)程【excel】
①新建輔助行 ,type標(biāo)記正向指標(biāo)、負(fù)向指標(biāo)
②計(jì)算出每個(gè)指標(biāo)的max,min,max-min
③標(biāo)準(zhǔn)化數(shù)據(jù)
公式:=IF(type="p",(B3-min)/max_min,(max-B3)/max_min)
④將值為0的調(diào)成0.00001,因?yàn)橄乱徊接?jì)算熵值時(shí),需要進(jìn)行l(wèi)og取數(shù),若數(shù)值=0,則得出的值就會(huì)是無(wú)限大,在程序體現(xiàn)就是NaN。為了避免這種情況,若計(jì)算結(jié)果等于0的情況,則將值稍微調(diào)大一點(diǎn),調(diào)成0.00001。
公式:=IF(B16=0,B16+0.00001,B16)
⑤計(jì)算指標(biāo)比重Pij
公式:=B27/SUM(B35)
⑥計(jì)算熵值
首先計(jì)算k,公式:=-1/LN(9),這里因?yàn)橛?行數(shù)據(jù),所以用LN(9)
計(jì)算熵值ej,公式:=46*SUMPRODUCT(B37:B45,LN(B37:B45))
⑦計(jì)算變異系數(shù)
公式:1-B47
⑧根據(jù)變異系數(shù),計(jì)算各指標(biāo)權(quán)重
公式:=B48/SUM(48:
48)
⑨線性加權(quán),計(jì)算綜合得分 xij為標(biāo)準(zhǔn)化之前的數(shù)據(jù)
最后將各指標(biāo)的加權(quán)得分相加,計(jì)算出綜合得分。
3.實(shí)現(xiàn)過(guò)程【python】
①讀取數(shù)據(jù)
import pandas as pd
import numpy as np
df= pd.read_excel('data_shiyan - 副本.xlsx')
df.head()
②空值處理
df.isnull().sum()
③標(biāo)準(zhǔn)化數(shù)據(jù)
df = df.set_index(df['時(shí)間'])
def data_Standardization(d):
for i in list(d.columns):
Max =np.max(d[i])
Min = np.min(d[i])
if (i=='n1') or (i=='n2'):
d[i] = (Max - d[i]) / (Max - Min)
else:
d[i] = (d[i] - Min) / (Max - Min)
return d
df = data_Standardization(df)
df
④將值為0的調(diào)成0.00001,因?yàn)橄乱徊接?jì)算熵值時(shí),需要進(jìn)行l(wèi)og取數(shù),若數(shù)值=0,則得出的值就會(huì)是無(wú)限大,在程序體現(xiàn)就是NaN。為了避免這種情況,若計(jì)算結(jié)果等于0的情況,則將值稍微調(diào)大一點(diǎn),調(diào)成0.00001。
df = df.replace(0,0.00001)
⑤計(jì)算指標(biāo)比重Pij
for col in df.columns:
df[col] = df[col] / sum(df[col])
df
⑥計(jì)算熵值
k = 1 /np.log(9)
entropy = [(-k) * sum([pij*np.log(pij) for pij in df[col]]) for col in df.columns]
s_entropy = pd.Series(entropy,index=df.columns,name='指標(biāo)的熵值')
s_entropy
⑦計(jì)算變異系數(shù)dj
s_by = pd.Series(1-s_entropy,index=df.columns,name='變異系數(shù)')
⑧根據(jù)變異系數(shù),計(jì)算各指標(biāo)權(quán)重
s_weight = s_by/sum(s_by)
s_weight.sort_values(ascending=False)
⑨線性加權(quán),計(jì)算綜合得分 xij為標(biāo)準(zhǔn)化之前的數(shù)據(jù)
df_dict ={}
for idx in range(len(df.columns)):
df_dict[df_gz.iloc[:,idx].name] = df_gz.iloc[:,idx] * s_weight[idx]
df_gz['最終得分'] = pd.DataFrame(df_dict).sum(axis=1).round(2)
df_gz.sort_values('最終得分',ascending=False)
最后將各指標(biāo)的加權(quán)得分相加,計(jì)算出綜合得分。
4. 得出結(jié)論
從各指標(biāo)權(quán)重占比來(lái)看,Top3分別是指標(biāo)p7、n2、p5。2010-2018年期間,綜合得分逐年上漲。
三、總結(jié)
結(jié)語(yǔ):本文介紹了熵權(quán)法作為一種數(shù)據(jù)分析方法的原理、excel & python 應(yīng)用和評(píng)估方式。通過(guò)理解和應(yīng)用熵權(quán)法,我們可以更好地利用數(shù)據(jù),做出更準(zhǔn)確和可靠的決策。希望本文能對(duì)讀者對(duì)熵權(quán)法的理解和運(yùn)用有所幫助。