秩和比综合评价法(RSR)详解及Python实现和应用

简介: 秩和比综合评价法(RSR)详解及Python实现和应用

一、RSR秩和比综合评价法概述


秩和比(Rank-sum ratio,RSR)法,它是一组全新的统计信息分析方法,是数量方法中一种广谱的方法,针对性强,操作简便,使用效果明显。非常适合于医学背景的广大用户。本法从理论上讲,融古典的参数统计与近代的非参数统计于一体,兼及描述性与推断性。该法经过二十余年的发展,在广大学者的共同支持和努力下,此法已日渐完善,广泛地应用于医疗卫生领域的多指标综合评价、统计预测预报、统计质量控制等方面。


一般过程是将效益型指标从小到大排序进行排名、成本型指标从大到小排序进行排名,再计算秩和比,最后统计回归、分档排序。通过秩转换,获得无量纲统计量RSR;在此基础上,运用参数统计分析的概念与方法,研究RSR的分布;以RSR值对评价对象的优劣直接排序或分档排序,从而对评价对象做出综合评价。


二、设计思想


设计思想:算得的RSR越大越好,为此,指标编秩时要严格区分高优与低优。


一般说来,编秩是不难的。例如治疗有效率、诊断符合率等可视为高优指标;发病率、住院病死率、平均住院日等可视为低优指标。编秩时,还可参照指标间相关分析和参照指定的“标准”。例如基于某省10个地区的产前检查率 ,孕妇死亡率,围产儿死亡率进行综合评价在综合评价中,秩和比的值能够包含所有评价指标的信息,显示出这些评价指标的综合水平,RSR值越大表明综合评价越优。


但有时还需实事求是地加以限定.例如病床利用率、平均病床周转次数一般可作高优指标理解,但过高也不见得是好事。


除区分高优指标与低优指标外,有时还要运用不分高优与低优及其种种组合形式,例如在疗效评价中,微效率可视为偏高优(高优与不分的均数),不变率可视为稍低优(偏低优与“不分”的均数)。总之,编秩的技巧问题要从业务出发来合理地解决。综合评价的方法一般是主客观结合的,方法的选择需基于实际指标数据情况选定,最为关键的是指标的选取,以及指标权重的设置,这些需要基于广泛的调研和扎实的业务知识,不能说单纯的从数学上解决的。


三、RSR的特点以及应用范围


1.优点


因为 RSR 只使用了数据的相对大小关系,而不真正运用数值本身,所以此方法综合性强,可以显示微小变动,对离群值不敏感;

能够对各个评价对象进行排序分档,找出优劣,是做比较,找关系的有效手段;

能够找出评价指标是否有独立性。

以非参数法为基础,对指标的选择无特殊要求,适用于各种评价对象,由于计算时使用的数值是秩次,可以消除异常值的干扰。


2.缺点


  1. 通过秩替代原始指标值,会损失部分信息,如原始数据的大小差别等。
  2. 不容易对各个指标进行恰当的编秩。
  3. 当 RSR 值实际上不满足正态分布时,分档归类的结果与实际情况会有偏差,且只能回答分级程度是否有差别,不能进一步回答具体的差别情况。


3.应用范围


综合评价的应用领域和范围非常广泛。


从学科领域上看,在自然科学中广泛应用于各种事物的特征和性质的评价。比如,环境监测综合评价、药物临床试验综合评价、地质灾害综合评价、气候特征综合评价、产品质量综合评价等等;

在社会科学中广泛应用于总体特征和个体特征的综合评价。比如,社会治安综合评价,生活质量综合评价、社会发展综合评价、教学水平综合评价、人居环境综合评价等等。

在经济学学科领域更为普遍。如,综合经济效益评价、小康建设进程评价、经济预警评价分析、生产方式综合评价、房地产市场景气程度综合评价等等。


四、实现步骤


1.指标权重计算


进行结果评定时我们知道影响因素的权重大小都是不一致的,我们需要先计算出各个指标的权重再进行加权秩和比,不然各个指标之间的信息差就没有意义。


计算指标权重的方法有AHP、熵权法或是自定义权重,笔者均写过AHP和熵权法、若不清楚可以阅览:层次分析法(AHP)原理以及应用


一文速学-熵权法实战确定评价指标权重


这里采用熵权法演示,且文可接熵权法演示实验,实验数据均相同,这里熵权法原理不作解释,想要了解可以看我之前的博客。


数据为港口数据开发能力系统指标:


49ac1f72c9704b329e73124fac4677a6.png

import numpy as np
import pandas as pd
df1=pd.read_excel(r'D:\拟定指标test1.xlsx')
data1=df1.iloc[:,1:7]
#min-max标准化
data1_std=(data1-data1.min())/(data1.max()-data1.min())
m,n=data1_std.shape
data1_value=data1_std.values
k=1/np.log(m)
yij=data1_value.sum(axis=0)
#计算第j项指标下第i个样本值占比重:
pij=data1_value/yij
#计算各指标的信息熵:
test=pij*np.log(pij)
test=np.nan_to_num(test)
ej=-k*(test.sum(axis=0))
#计算每种指标的权重
wi=(1-ej)/np.sum(1-ej)

得到各个指标的权重:

7e4bb1620cdc4c25a26ac57766d81601.png

2.编秩


根据每一个具体的评价指标按其指标值的大小进行排序,得到秩次R,用秩次R来代替原来的评价指标值。

编秩方法总共有两种:


1.整秩法


将 n 个评价对象的 m 个评价指标排列成 n 行 m 列的原始数据表。编出每个指标各评价对象的秩,其中效益型指标(可以理解为正向指标)从小到大编秩,成本型指标(可理解为负向指标)从大到小编秩,同一指标数据相同者编平均秩。得到秩矩阵R;


2.非整秩法


此方法用类似于线性插值的方式对指标值进行编秩,以改进 RSR 法编秩方法的不足,所编秩次与原指标值之间存在定量的线性对应关系,从而克服了 RSR 法秩次化时易损失原指标值定量信息的缺点。


对于效益型指标:

8e12f8f15aee4bbbb328696945efa2a8.png


对于成本型指标:


12dc653801af4cdb8e6ac71e870e4424.png

这里采用整秩法:

R_result=pd.DataFrame()
for i, X in enumerate(data1_std.columns):
            R_result[f'X{str(i + 1)}:{X}'] = data1_std.iloc[:, i]
            R_result[f'R{str(i + 1)}:{X}'] = R_result.iloc[:, i].rank(method="dense")


a31eca7035c5442dbf583b8122f60d79.png


3.计算秩和比RSR值

一个gif.gifgif.gif列的矩阵中,其对应的RSR计算公式为:

gif.gif

其中i=1,2,...,n;j=1,2...,m,R_{ij}表示为第i行第j列元素的秩。

当个评价指标的权重不同时,计算加权秩和比为


gif.gif

W_{j}表示第第j个指标的权重。RSR值无量纲,最小值为gif.gif,最大值为1.

# 计算秩和比
R_result['RSR'] = (R_result.iloc[:, 1::2] * wi).sum(axis=1) / n
R_result['RSR_Rank'] = R_result['RSR'].rank(ascending=False)


4.绘制秩和比RSR分布表


其方法为:

● 将RSR值按照从小到大的顺序排列;

● 列出各组频数;

● 计算各组累计频数;

● 确定各组RSR的秩次R及平均秩次 gif.gif

计算向下累计频率\frac{\bar{R}}{n}*100%, 最后一项用gif.gif修正;

● 根据累计频率,查询“百分数与概率单位对照表”,求其所对应概率单位 Probit 值;

● 利用表格中的RSR分布值作为自变量,Probit值作为因变量,进行线性回归,结果如下表格。

百分比与概率单位对照表 - 豆丁网


#绘制RSR分布表
RSR=R_result['RSR']
RSR_RANK_DICT = dict(zip(RSR.values, RSR.rank().values))
Distribution = pd.DataFrame(index=sorted(RSR.unique()))
Distribution['f'] = RSR.value_counts().sort_index()
Distribution['Σf'] = Distribution['f'].cumsum()
Distribution[r'平均秩数'] = [RSR_RANK_DICT[i] for i in Distribution.index]
Distribution[r'平均秩数/n*100%'] = Distribution[r'平均秩数'] / m
Distribution.iat[-1, -1] = 1 - 1 / (4 * n)
Distribution['Probit'] = 5 - norm.isf(Distribution.iloc[:, -1])

15de671c59204fce8913d48a57187ff0.png

5.回归分析


上一步得到Probit值之后,将其作为自变量X,将RSR分布值作为因变量Y;进行回归模型拟合,并结合此回归模型公式得到各个地区RSR值的拟合值,用于最终的分档排序等使用。

r0 = np.polyfit(Distribution['Probit'], Distribution.index, deg=1)
sm.OLS(Distribution.index, sm.add_constant(Distribution['Probit'])).fit().summary()

e29493cc9ec3436f9dae8577aa29d750.png

6.分档


按照回归方程推算所对应的RSR估计值对评价对象进行分档排序,分档数由研究者根据实际情况决定。  

● 通过RSR拟合值,以及上一表格中的RSR临界(拟合值)进行区间比较,进而得到分档等级水平;

● 分档等级Level数字越大表示等级水平越高,即效应越好。


R_result['Probit'] = R_result['RSR'].apply(lambda item: Distribution.at[item, 'Probit'])
R_result['RSR Regression'] = np.polyval(r0, R_result['Probit'])
threshold=None
threshold = np.polyval(r0, [2, 4, 6, 8,10]) if threshold is None else np.polyval(r0, threshold)
R_result['Level'] = pd.cut(R_result['RSR Regression'],threshold, labels=range(len(threshold) - 1, 0, -1))
R_result

8356575395a1411eaea7e11e56933383.png


目录
相关文章
|
2月前
|
机器学习/深度学习 数据可视化 算法
Python数值方法在工程和科学问题解决中的应用
本文探讨了Python数值方法在工程和科学领域的广泛应用。首先介绍了数值计算的基本概念及Python的优势,如易学易用、丰富的库支持和跨平台性。接着分析了Python在有限元分析、信号处理、优化问题求解和控制系统设计等工程问题中的应用,以及在数据分析、机器学习、模拟建模和深度学习等科学问题中的实践。通过具体案例,展示了Python解决实际问题的能力,最后总结展望了Python在未来工程和科学研究中的发展潜力。
|
5月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
229 20
|
28天前
|
存储 监控 算法
企业数据泄露风险防控视域下 Python 布隆过滤器算法的应用研究 —— 怎样防止员工私下接单,监控为例
本文探讨了布隆过滤器在企业员工行为监控中的应用。布隆过滤器是一种高效概率数据结构,具有空间复杂度低、查询速度快的特点,适用于大规模数据过滤场景。文章分析了其在网络访问监控和通讯内容筛查中的实践价值,并通过Python实现示例展示其技术优势。同时,文中指出布隆过滤器存在误判风险,需在准确性和资源消耗间权衡。最后强调构建多维度监控体系的重要性,结合技术与管理手段保障企业运营安全。
52 10
|
26天前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
68 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
1月前
|
存储 机器学习/深度学习 算法
论上网限制软件中 Python 动态衰减权重算法于行为管控领域的创新性应用
在网络安全与行为管理的学术语境中,上网限制软件面临着精准识别并管控用户不合规网络请求的复杂任务。传统的基于静态规则库或固定阈值的策略,在实践中暴露出较高的误判率与较差的动态适应性。本研究引入一种基于 “动态衰减权重算法” 的优化策略,融合时间序列分析与权重衰减机制,旨在显著提升上网限制软件的实时决策效能。
48 2
|
2月前
|
Python
Python中Cp、Cpk、Pp、Ppk的计算与应用
总的来说,Cp、Cpk、Pp、Ppk是衡量过程能力的重要工具,它们可以帮助我们了解和改进生产过程,提高产品质量。
156 13
|
6月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
7月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
426 3
|
2月前
|
数据采集 XML 存储
Headers池技术在Python爬虫反反爬中的应用
Headers池技术在Python爬虫反反爬中的应用
|
4月前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
126 12

推荐镜像

更多