Python | Numpy:详解计算矩阵的均值和标准差

简介: 对于 CRITIC 权重法而言,在标准差一定时,指标间冲突性越小,权重也越小;冲突性越大,权重也越大;另外,当两个指标间的正相关程度越大时,(相关系数越接近1),冲突性越小,这表明这两个指标在评价方案的优劣上反映的信息有较大的相似性。

一、前言


CRITIC权重法是一种比熵权法和标准离差法更好的客观赋权法:


  • 它是基于评价指标的对比强度和指标之间的冲突性来综合衡量指标的客观权重。考虑指标变异性大小的同时兼顾指标之间的相关性,并非数字越大就说明越重要,完全利用数据自身的客观属性进行科学评价。


  • 对比强度是指同一个指标各个评价方案之间取值差距的大小,以标准差的形式来表现。标准差越大,说明波动越大,即各方案之间的取值差距越大,权重会越高;


指标之间的冲突性,用相关系数进行表示,若两个指标之间具有较强的正相关,说明其冲突性越小,权重会越低。


对于 CRITIC 权重法而言,在标准差一定时,指标间冲突性越小,权重也越小;冲突性越大,权重也越大;另外,当两个指标间的正相关程度越大时,(相关系数越接近1),冲突性越小,这表明这两个指标在评价方案的优劣上反映的信息有较大的相似性。


在用 Python 复现 CRITIC 权重法时,需要计算变异系数,以标准差的形式来表现,如下所示:



Sj表示第 j 个指标的标准差,在 CRITIC 权重法中使用标准差来表示各指标的内取值的差异波动情况,标准差越大表示该指标的数值差异越大,越能放映出更多的信息,该指标本身的评价强度也就越强,应该给该指标分配更多的权重。


研究收集到湖南省某医院 2011 年 5 个科室的数据,共有 6 个指标,当前希望通过已有数据分析各个指标的权重情况如何,便于医院对各个指标设立权重进行后续的综合评价,用于各个科室的综合比较等。数据如下:



二、详解计算均值和标准差


初始化一个简单的矩阵:


a=np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
    ])
a


分别计算整体的均值、每一列的均值和每一行的均值:


print("整体的均值:", np.mean(a))              # 整体的均值print("每一列的均值:", np.mean(a, axis=0))    # 每一列的均值print("每一行的均值:", np.mean(a, axis=1))    # 每一行的均值


分别计算整体的标准差、每一列的标准差和每一行的标准差:


print("整体的方差:", np.std(a))              # 整体的标准差print("每一列的方差:", np.std(a, axis=0))    # 每一列的标准差print("每一列的方差:", np.std(a, axis=1))    # 每一行的标准差


结果如下:



三、实践:CRITIC权重法计算变异系数


导入需要的依赖库:


importnumpyasnpimportpandasaspd


提取数据:


df=pd.read_excel("./datas/result03.xlsx")
dfdatas=df.iloc[:, 1:]
datas


如下所示:



数据正向和逆向化处理:


X=datas.valuesxmin=X.min(axis=0)
xmax=X.max(axis=0)
xmaxmin=xmax-xminn, m=X.shapeprint(m, n)
foriinrange(n):
forjinrange(m):
ifj==5:
X[i, j] = (xmax[j] -X[i, j]) /xmaxmin[j]   # 越小越好else:
X[i, j] = (X[i, j] -xmin[j]) /xmaxmin[j]   # 越大越好X=np.round(X, 5)
print(X)


如下所示:



按列计算每个指标数据的标准差:



发现结果与文档不一致:



原因:numpy默认是除以样本数,求的是母体标准差;而除以样本-1,得到的才是样本标准差,这时设置参数 ddof=1 即可!



如上图所示,这下与文档里的结果一致了!


推荐阅读:

CRITIC权重法

目录
相关文章
|
6天前
|
分布式计算 负载均衡 并行计算
Python 分布式计算框架 PP (Parallel Python):集群模式下的实践探索
该文介绍了使用Parallel Python (PP) 在两台物理机上构建分布式计算集群的经验。PP是一个轻量级框架,旨在简化Python代码在多处理器系统和集群中的并行执行。文中通过设置子节点的IP、端口和密钥启动PP服务器,并在主节点创建PP实例进行负载均衡。实验使用官方的质数和计算示例,显示PP在集群模式下能有效利用多台机器的多核CPU,实现计算效率的显著提升。未来,作者计划进一步研究PP在更复杂任务和大规模集群中的应用潜力。
|
7天前
|
机器学习/深度学习 算法 Serverless
利用无穷级数逼近计算幂运算与开根号——Python实现
使用泰勒级数逼近法,本文介绍了如何用Python计算特殊幂运算,包括分数次幂和开根号。通过定义辅助函数,如`exp`、`getN_minus_n`、`multi`和`getnum`,实现了计算任意实数次幂的功能。实验结果显示,算法能有效计算不同情况下的幂运算,例如`0.09^2`、`1^2`、`0.25^2`、`0.09^(0.5)`、`1^(0.5)`和`0.25^(0.5)`。虽然精度可能有限,但可通过调整迭代次数平衡精度与计算速度。
|
29天前
|
算法 程序员 Python
年底工资总结,实例教你用Python计算个税 依法纳税做好公民(1)
年底工资总结,实例教你用Python计算个税 依法纳税做好公民(1)
|
29天前
|
机器学习/深度学习
python-随机森林后筛选最重要变量,模型准确率、随机森林混淆矩阵结果、基尼系数排序图
python-随机森林后筛选最重要变量,模型准确率、随机森林混淆矩阵结果、基尼系数排序图
|
29天前
|
机器学习/深度学习 数据采集 自然语言处理
图像分类模型评估之用python绘制混淆矩阵confusion_matrix_python confusion_matrix
图像分类模型评估之用python绘制混淆矩阵confusion_matrix_python confusion_matrix
|
1月前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
1月前
|
Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
|
1月前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(2)
|
1月前
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交(1)
|
存储 算法 Python
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交
168 0
【Python 百练成钢】高精度加法、阶乘计算、矩阵幂运算、矩阵面积交