评价方法-熵权法确定指标权重

评价方法根据确定权重的方法,大体上可分为主观赋权,客观赋权;主观赋权依赖于“专家”的权重或较多独立个体的评判偏好,如层次分析法,功效系数法,模糊综合评价法,综合指数法;客观赋权法根据各指标间相关关系或各指标变异程度来确定权数,此种方法依赖数据本身,本质上与数据间大小、方差有关,如主成分分析法,优劣解距离法,因子分析法,秩和比法,灰色关联法,熵权法等

信息熵:

H=\sum_{i=1}^{n}P_i*logP_i

  •     信息熵=\sum 每种可能事件的概率 * 每种可能事件的信息量信息熵 = \sum 每种可能事件的概率 * 每种可能事件的信息量 (本质是对信息量的期望)
  •     发生的概率越小,(确定它所需要的)信息量越大(利用对数函数拟合)

   

熵权法:

原理:

指标的离散程度越小,(确定它所需要的)信息量越小,信息熵越大;

指标的离散程度越小,该指标对综合评价的影响(即权重)就越小

步骤:

  • 数据标准化
  • 求出各指标下的概率(每个元素占概率的比重)
  • 计算各指标的信息熵 (*1 / ln(n))
  • 计算各指标的权重(1-H:差异系数/信息效用值)
  • (延伸:计算此指标体系下各observation的综合分)

pros: 相对客观 / 可反映出指标的区分能力

cons: 对样本依赖性大 / 不能捕捉指标间相关性、层级关系 

Code

def ewm(df):
    df = df.apply(lambda x: ((x - np.min(x)) / (np.max(x) - np.min(x))))
    rows, cols = df.shape 
    k = 1.0 / math.log(rows)
    #k = (df!=0).astype(int).sum(axis=0)
    #k = list(map(lambda x: 1.0/math.log(x), k))
    
    p = df / df.sum(axis=0)
    lnf = -np.log(p , where = df!=0 )*p*k
    
    d = 1 - lnf.sum(axis=0)
    w = d / d.sum()
    
    w = pd.DataFrame(w)
    w = w.round(5)
    w.index = df.columns
    w.columns =['weight']
    return w

Reference

熵权法

数据运营36计(三):熵权法如何确定指标权重构建评价体系

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值