Python综合评价模型(七)变异系数法

目录

      • 第一步 导入第三方库和案例数据
      • 第二步 标准化数据(min-max标准化)
      • 第三步 计算评价指标的变异系数
      • 第四步 计算评价指标的权重
      • 第五步 计算综合得分
      • 第六步 导出综合评价结果
          • 下期预告: P y t h o n 综合评价模型(八)熵权法 \textcolor{RoyalBlue}{下期预告 : Python综合评价模型(八)熵权法} 下期预告:Python综合评价模型(八)熵权法
          • 关注公众号“ T r i H u b 数研社”发送“ 230326 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230326”获取案例数据和代码} 关注公众号TriHub数研社发送“230326”获取案例数据和代码

变异系数法是根据评价指标的变异程度来分配权重,评价指标的变异程度越大,所赋权重就越大,并以此对评价对象进行综合评价的方法

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

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

Python综合评价模型(七)变异系数法_第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 = data.apply(minmax_p, axis = 0)
data_m

Python综合评价模型(七)变异系数法_第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综合评价模型(七)变异系数法_第3张图片

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

#归一化评价指标的变异系数
w = vi / vi.sum()
w

Python综合评价模型(七)变异系数法_第4张图片

第五步 计算综合得分

data['变异系数法得分'] = data_m.dot(w)
data

Python综合评价模型(七)变异系数法_第5张图片

第六步 导出综合评价结果

data.to_excel('变异系数法综合评价结果.xlsx', index = True)
下期预告: P y t h o n 综合评价模型(八)熵权法 \textcolor{RoyalBlue}{下期预告 : Python综合评价模型(八)熵权法} 下期预告:Python综合评价模型(八)熵权法
关注公众号“ T r i H u b 数研社”发送“ 230326 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230326”获取案例数据和代码} 关注公众号TriHub数研社发送“230326”获取案例数据和代码

你可能感兴趣的:(Python综合评价,python,数据分析,开发语言)