Python综合评价模型(九)CRITIC法

目录

      • 第一步 导入第三方库和案例数据
      • 第二步 标准化数据(min-max标准化)
      • 第三步 计算评价指标的变异性(变异系数)
      • 第四步 计算评价指标的独立性(1-|相关系数|)
      • 第五步 计算评价指标的综合信息载荷量(变异性和独立性的乘积)
      • 第六步 计算评价指标的权重
      • 第七步 计算综合得分
      • 第八步 导出综合评价结果
          • 关注公众号“ T r i H u b 数研社”发送“ 230409 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230409”获取案例数据和代码} 关注公众号TriHub数研社发送“230409”获取案例数据和代码

CRITlC法是综合考虑评价指标的变异性和独立性来分配权重,评价指标的变异性和独立性均较大,所赋权重就越大,并以此对评价对象进行综合评价的方法

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

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

Python综合评价模型(九)CRITIC法_第1张图片

第二步 标准化数据(min-max标准化)

使用min-max标准化方法标准化数据后,各评价指标的最大值为1,最小值为0

正向指标(指标值越大越好)的min-max标准化计算公式为:

y i j = x i j − min ⁡ x i j max ⁡ x i j − min ⁡ x i j ( 1 ≤ i ≤ n , 1 ≤ j ≤ m ) y_{ij} = \frac{x_{ij} - \min{x_{ij}}}{\max{x_{ij}} - \min{x_{ij}}} \quad (1 \leq i \leq n,1 \leq j \leq m) yij=maxxijminxijxijminxij(1in,1jm) n n n为评价对象的个数, m m m为评价指标的个数

负向指标(指标值越小越好)的min-max标准化计算公式为:

y i j = max ⁡ x i j − x i j max ⁡ x i j − min ⁡ x i j ( 1 ≤ i ≤ n , , 1 ≤ j ≤ m ) y_{ij} = \frac{\max{x_{ij}} - x_{ij}}{\max{x_{ij}} - \min{x_{ij}}} \quad (1 \leq i \leq n, , 1 \leq j \leq m) yij=maxxijminxijmaxxijxij(1in,,1jm) n n n为评价对象的个数, m m m为评价指标的个数

#定义正向指标min-max标准化函数
def minmax_p(x): 
    return (x - x.min()) / (x.max() - x.min())
#定义负向指标min-max标准化函数
def minmax_n(x): 
    return (x.max() - x) / (x.max() - x.min())
#使用正向指标min-max标准化函数标准化数据
data_m = minmax_p(data)
data_m

Python综合评价模型(九)CRITIC法_第2张图片

第三步 计算评价指标的变异性(变异系数)

j j j项评价指标变异系数的计算公式为:

v j = ∑ i = 1 n ( y i j − y j ˉ ) 2 n − 1 y j ˉ v_j = \frac{\sqrt{\frac{\sum_{i=1}^{n}(y_{ij}-\bar{y_j})^2}{n-1}}}{\bar{y_j}} vj=yjˉn1i=1n(yijyjˉ)2 n n n为评价对象的个数

即评价指标的标准差除以评价指标的均值

vi = data_m.std()/ data_m.mean()
vi

Python综合评价模型(九)CRITIC法_第3张图片

第四步 计算评价指标的独立性(1-|相关系数|)

ri = data_m.corr().abs()
fi = (1 - ri).sum()
fi

Python综合评价模型(九)CRITIC法_第4张图片

第五步 计算评价指标的综合信息载荷量(变异性和独立性的乘积)

pi = vi * fi
pi

Python综合评价模型(九)CRITIC法_第5张图片

第六步 计算评价指标的权重

#归一化评价指标的综合信息载荷量
w = pi / pi.sum()
w

Python综合评价模型(九)CRITIC法_第6张图片

第七步 计算综合得分

data['CRITIC法得分'] = data_m.dot(w)
data

Python综合评价模型(九)CRITIC法_第7张图片

第八步 导出综合评价结果

data.to_excel('CRITIC法综合评价结果.xlsx', index = True)
关注公众号“ T r i H u b 数研社”发送“ 230409 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230409”获取案例数据和代码} 关注公众号TriHub数研社发送“230409”获取案例数据和代码

你可能感兴趣的:(Python综合评价,python)