Python综合评价模型(二)灰色关联度法

灰色关联度法是基于评价指标(比较数列)与评价标准(参考数列)的灰色关联度对评价对象进行综合评价

若评价指标有目标值,则可把目标值数列作为参考数列
若评价指标无目标值,则可把正理想解数列(或负理想解数列)作为参考数列

改进简化后,第i个评价对象的第j个评价指标数值与参考数列的第j个评价指标数值的灰色关联系数计算公式为:
ζ i , j = min ⁡ i ∣ x 0 j − x i j ∣ + ρ max ⁡ i ∣ x 0 j − x i j ∣ ∣ x 0 j − x i j ∣ + ρ max ⁡ i ∣ x 0 j − x i j ∣ \zeta_{i,j}=\frac{\min_i|x_{0j}-x_{ij}|+\rho \max_i|x_{0j}-x_{ij}|}{|x_{0j}-x_{ij}|+\rho \max_i|x_{0j}-x_{ij}|} ζi,j=x0jxij+ρmaxix0jxijminix0jxij+ρmaxix0jxij
式中,ρ为分辨系数,取值区间为(0,1),一般取0.5,分辨系数越小,关联系数间差异越大,区分能力越强,反之亦然

第一步 导入第三方库和案例数据

import numpy as np
import pandas as pd
#按指定路径导入数据,以“地区”为索引(文件路径需按实际情况更换)
data = pd.read_excel(r'C:/Users/AROUS/Desktop/综合评价案例数据.xlsx', index_col = '地区')
data

第二步 标准化数据

#定义z-score标准化函数
def z_score(x): 
    return (x - x.mean()) / x.std()
#使用z-score标准化函数标准化数据
data_z = data.apply(z_score, 0)
data_z

第三步 确定参考数列

#逐列求解最大值,即计算正理想解
cplus = data_z.max(axis = 0)

第四步 计算指标数列与参考数列的差(绝对值)

diff = abs(cplus - data_z)
diff

第五步 计算灰色关联系数

#计算各项评价指标的最小差
mmin = diff.min()
#计算各项评价指标的最大差
mmax = diff.max()
#设置分辨系数
rho = 0.5
#计算灰色关联系数
grc = (mmin + rho*mmax)/(diff + rho*mmax)
grc

第六步 计算灰色关联度

方式1 求灰色关联系数的简单平均(评价指标权重相等)
data_z['灰色关联度法得分(权重相等)'] =  grc.mean(axis = 1)
data_z

方式2 求灰色关联系数的加权平均(评价指标权重不等)
#导入评价指标权重
w_list = [0.2, 0.15, 0.15, 0.1, 0.1, 0.1, 0.1, 0.1]
w = pd.DataFrame(w_list, columns=['评价指标权重'])
w
# 计算灰色关联系数的加权平均
data_z['灰色关联度法得分(权重不等)'] =  grc.values.dot(w.values)
data_z

下期预告: P y t h o n 综合评价模型(三)秩和比法 \textcolor{RoyalBlue}{下期预告 : Python综合评价模型(三)秩和比法} 下期预告:Python综合评价模型(三)秩和比法

关注公众号“ T r i H u b 数研社”发送“ 230219 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230219”获取案例数据和代码} 关注公众号TriHub数研社发送“230219”获取案例数据和代码

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值