数据包络分析(DEA)详解(以第八届宁夏省赛为例)

目录

一、基本介绍

1.1原理

1.2CCR模型

 1.3BCC模型

 二、代码

2.1MATLAB代码

 2.2Python代码

三、案例分析

3.1案例介绍

3.2案例分析

3.3案例求解


一、基本介绍

1.1原理

数据包络分析有多种模型,主要为:CCR模型,BBC模型、交叉模型、A&P模型。纵观该方法的各种模型,每一模型的具体数学推理过程基本一致,所得的标准线性规划求解公式也比较相似,它们之间的差异主要体现在每个模型所适用的条件有所不同。在国外,此方法较早地运用于银行医院、城市等方面效率的评价。近些年来,该方法在我国社会经济的许多领域也取得了不少应用成果。由于方法对评价对象的要求相对比较宽松,应用其评价相同类型DMU的相对有效性的优势地位,是其他方法难以取代的。

1.2CCR模型

CCR模型是指对DMU通过“投入一定数量的生产要素,并产出一定数量的产品”的经济系统来判断各个单元的相对合理性和有效性。从投入资源的角度来看,在当前产出的水准下,比较投入资源的使用情况,以此作为效益评价的依据,这种模式称为“投入导向模式”。

定义决策单元j的效率评价指数为:

 对上式可以适当的取权系数v和u,使得h_{j}\leq 1,对第j_{0}个决策单元进行效率评价,一般来说h_{j0}越大表明DUM_{j0}能够用相对较少的输入而取得相对较多的输出。故只需求得的最大值,即可探究DUM_{j0}在这n个DUM中相对来说是不是最优的。

 1.3BCC模型

 BCC模型是从产出的角度探讨效率,即在相同的投入水准下,比较产出资源的达成情况,这种模式称为“投入导向模式”。所得到的是“技术效益”,DEA=1称为“技术有效”,最优解TE_{j}是决策单元j的“技术效益”。

 二、代码

2.1MATLAB代码

clear
clc
format long
data=[14.40 0.65 31.30 3621.00 0.00
16.90 0.72 32.20 3943.00 0.09
15.53 0.72 31.87 4086.67 0.07
15.40 0.76 32.23 4904.67 0.13
14.17 0.76 32.40 6311.67 0.37
13.33 0.69 30.77 8173.33 0.59
12.83 0.61 29.23 10236.00 0.51
13.00 0.63 28.20 12094.33 0.44
13.40 0.75 28.80 13603.33 0.58
14.00 0.84 29.10 14841.00 1.00]';X=data([1:3],:);%X为输入变量
Y=data([4:5],:);%Y为输出变量
[m,n]=size(X);
s=size(Y,1);
A=[-X' Y'];%由于目标函数求最小,这里的-X就转化成了求最大
b=zeros(n,1);
LB=zeros(m+s,1);UB=[];
for i=1:nf=[zeros(1,m) -Y(:,i)'];Aeq=[X(:,i)',zeros(1,s)];beq=1;w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);%前3列为投入系数,后2列为产出系数E(i,i)=Y(:,i)'*w(m+1:m+s,i);%产出值*产出系数
end
theta=diag(E)';
fprintf('用DEA方法对此的相对评价结果为:\n');
disp(theta);

 2.2Python代码

import gurobipy
import pandas as pd# 分页显示数据, 设置为 False 不允许分页
pd.set_option('display.expand_frame_repr', False)# 最多显示的列数, 设置为 None 显示全部列
pd.set_option('display.max_columns', None)# 最多显示的行数, 设置为 None 显示全部行
pd.set_option('display.max_rows', None)class DEA(object):def __init__(self, DMUs_Name, X, Y, AP=False):self.m1, self.m1_name, self.m2, self.m2_name, self.AP = X.shape[1], X.columns.tolist(), Y.shape[1], Y.columns.tolist(), APself.DMUs, self.X, self.Y = gurobipy.multidict({DMU: [X.loc[DMU].tolist(), Y.loc[DMU].tolist()] for DMU in DMUs_Name})print(f'DEA(AP={AP}) MODEL RUNING...')def __CCR(self):for k in self.DMUs:MODEL = gurobipy.Model()OE, lambdas, s_negitive, s_positive = MODEL.addVar(), MODEL.addVars(self.DMUs),  MODEL.addVars(self.m1), MODEL.addVars(self.m2)MODEL.update()MODEL.setObjectiveN(OE, index=0, priority=1)MODEL.setObjectiveN(-(sum(s_negitive) + sum(s_positive)), index=1, priority=0)MODEL.addConstrs(gurobipy.quicksum(lambdas[i] * self.X[i][j] for i in self.DMUs if i != k or not self.AP) + s_negitive[j] == OE * self.X[k][j] for j in range(self.m1))MODEL.addConstrs(gurobipy.quicksum(lambdas[i] * self.Y[i][j] for i in self.DMUs if i != k or not self.AP) - s_positive[j] == self.Y[k][j] for j in range(self.m2))MODEL.setParam('OutputFlag', 0)MODEL.optimize()self.Result.at[k, ('效益分析', '综合技术效益(CCR)')] = MODEL.objValself.Result.at[k, ('规模报酬分析', '有效性')] = '非 DEA 有效' if MODEL.objVal < 1 else 'DEA 弱有效' if s_negitive.sum().getValue() + s_positive.sum().getValue() else 'DEA 强有效'self.Result.at[k, ('规模报酬分析', '类型')] = '规模报酬固定' if lambdas.sum().getValue() == 1 else '规模报酬递增' if lambdas.sum().getValue() < 1 else '规模报酬递减'for m in range(self.m1):self.Result.at[k, ('差额变数分析', f'{self.m1_name[m]}')] = s_negitive[m].Xself.Result.at[k, ('投入冗余率',  f'{self.m1_name[m]}')] = 'N/A' if self.X[k][m] == 0 else s_negitive[m].X / self.X[k][m]for m in range(self.m2):self.Result.at[k, ('差额变数分析', f'{self.m2_name[m]}')] = s_positive[m].Xself.Result.at[k, ('产出不足率', f'{self.m2_name[m]}')] = 'N/A' if self.Y[k][m] == 0 else s_positive[m].X / self.Y[k][m]return self.Resultdef __BCC(self):for k in self.DMUs:MODEL = gurobipy.Model()TE, lambdas = MODEL.addVar(), MODEL.addVars(self.DMUs)MODEL.update()MODEL.setObjective(TE, sense=gurobipy.GRB.MINIMIZE)MODEL.addConstrs(gurobipy.quicksum(lambdas[i] * self.X[i][j] for i in self.DMUs if i != k or not self.AP) <= TE * self.X[k][j] for j in range(self.m1))MODEL.addConstrs(gurobipy.quicksum(lambdas[i] * self.Y[i][j] for i in self.DMUs if i != k or not self.AP) >= self.Y[k][j] for j in range(self.m2))MODEL.addConstr(gurobipy.quicksum(lambdas[i] for i in self.DMUs if i != k or not self.AP) == 1)MODEL.setParam('OutputFlag', 0)MODEL.optimize()self.Result.at[k, ('效益分析', '技术效益(BCC)')] = MODEL.objVal if MODEL.status == gurobipy.GRB.Status.OPTIMAL else 'N/A'return self.Resultdef dea(self):columns_Page = ['效益分析'] * 3 + ['规模报酬分析'] * 2 + ['差额变数分析'] * (self.m1 + self.m2) + ['投入冗余率'] * self.m1 + ['产出不足率'] * self.m2columns_Group = ['技术效益(BCC)', '规模效益(CCR/BCC)', '综合技术效益(CCR)','有效性', '类型'] + (self.m1_name + self.m2_name) * 2self.Result = pd.DataFrame(index=self.DMUs, columns=[columns_Page, columns_Group])self.__CCR()self.__BCC()self.Result.loc[:, ('效益分析', '规模效益(CCR/BCC)')] = self.Result.loc[:, ('效益分析', '综合技术效益(CCR)')] / self.Result.loc[:,('效益分析', '技术效益(BCC)')]return self.Resultdef analysis(self, file_name=None):Result = self.dea()file_name = 'DEA 数据包络分析报告.xlsx' if file_name is None else f'\\{file_name}.xlsx'Result.to_excel(file_name, 'DEA 数据包络分析报告')

三、案例分析

3.1案例介绍

3.2案例分析

问题一首先要求我们对原始数据进行分析并预处理,在种类繁多的各项指标中,找到合适的投入与产出指标,构建评价体系,建立数学模型,找到对机构运营效率影响较大的关键内部指标,计算各妇幼保健机构在各分项指标及总体运营效率得分。很明显,这是一个多指标投入和多指标产出对相同类型的单位(部门)进行相对有效性或效益评价的系统分析问题,我们查阅大量文献之后选择利用数据包络分析(DEA)方法来解决该问题。

在对数据进行DEA分析之前我们要对数据进行预处理,首先对原始数据给出的各项指标进行分类,找到他们的二级指标甚至一级指标,从而划分投入指标和产出指标,之后利用Excel和Python将数据集中的错误数据进行清理,在查阅大量文献的基础上,剔除相对不重要的指标,创造出新的数据集,导入MPai数据科学平台,首先对每一年的数据集分别进行DEA分析,最后再计算技术效益、规模效益、综合技术效益的算术均值,即可解决该问题。

相对于问题一,问题二更符合实际情况,研究价值更高,毕竟研究医院管理离不开卫生经济,研究卫生经济离不开国家宏观经济,妇幼保健机构所在地区经济发展水平、人口等客观因素对其发展程度和运行效率的影响是巨大的。当前,我国宏观经济形势进入新常态,下行压力非常大。同时,人口老龄化程度加重,由于缺乏劳动力,对整个经济的发展是不利的,经济问题本质上就是人口问题,整个经济下滑了,对医疗卫生的投入就难以增加,医院的收入就难以增长,只能实行严格的医疗控费。因此,探索不同投入结构变化对最终运营效率的影响刻不容缓。

在问题一的基础上,我们首先访问各省的统计年鉴,获取相应省份医疗卫生费用占GDP的比重以及各省对于妇幼保健机构的支持程度,查阅大量文献,确定影响因子,利用优劣解距离法(TOPSIS)消除量纲的影响,对各个妇幼保健机构进行综合得分评价,从而找到不同投入结构变化对最终运营效率的影响。

通过对问题一和问题二的分析求解,我们了解到某些妇幼保健机构运行效率较低,存在明显的医疗卫生资源浪费的情况,针对于此,我们将在自身研究结果的基础上,致信相应的妇幼保健机构管理者,用报告的形式将他们暴露出来的问题直观的展现到他们面前,并给出针对性的意见,帮助他们更快、更好的解决自身资源使用,提高运行效率,充分使用医疗卫生资源。

3.3案例求解

图1 2020年妇幼保健机构效益分析图
图2 2020年妇幼保健机构象限图

差额变数分析是基于松弛变量(差额变数、超额变数)的分析,根据冗余情况进行适当减少投入冗余、增加产出不足上表展示了差额变数分析投入与产出的部分/全部的增减量,2020年各妇幼保健机构差额变数分析结果如下表3所示。差额变数:指为达到目标效率可以减少的投入量,即非DEA有效单元的实际值和目标值之差,超额变数:指为达到目标效率可以增加的产出量,即非DEA有效地区的目标值和实际值之差。

在学习中成功、在学习中进步!我们一起学习不放弃~

记得三连哦~ 你们的支持是我最大的动力!!欢迎大家阅读往期文章哈~

小编联系方式如下,欢迎各位巨佬沟通交流。

int[] arr=new int[]{4,8,3,2,6,5,1};
int[] index= new int[]{6,4,5,0,3,0,2,6,3,1};
String QQ = "";for (int i : index){QQ +=arr[i];
}
System.out.println("小编的QQ:" + QQ);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot EasyUI datagrid

jQueryEasyUI详解 jQuery EasyUI是一组基于jQuery的UI插件集合体&#xff0c;而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。 开发者不需要编写复杂的javascript&#xff0c;也不需要对css样式有深入的了解&#xff0c;开发者需要了解的只…

MATLAB使用教程(三)——在文件中编程

1.把matlab编码调整为utf-8编码 首先&#xff0c;删除这个部分&#xff08;一定先备份这个lcdata.xml文件&#xff0c;备份就是拷贝一个副本&#xff09;&#xff0c;我的是2016版&#xff0c;大概在这里&#xff0c;你们可以搜索以下&#xff1a; 然后&#xff0c;找到这个部分…

Spring Boot EasyUI edatagrid 扩展

edatagrid扩展组件详解 edatagrid组件是datagrid的扩展组件&#xff0c;增加了统一处理CRUD的功能&#xff0c;可以用在数据比较简单的页面。使用的时候需要额外引入jquery.edatagrid.js为了能够把后台自动捕获的异常显示到前台这里必须使用最新版本的jquery.edatagrid.js文件能…

MATLAB使用教程(4)——悄悄滴上手项目

目录 1.计算一元二次方程 2.看一元方程的图形 有个小疑问&#xff1f; 惊喜&#xff1a; 总结 1.计算一元二次方程 这一讲我们以科学计算开始&#xff0c;使用matlab计算精确度很高&#xff0c;我们可以尝试来计算一下黄金分割率&#xff08;定义大家可以自行百度一下&am…

两万字详细爬虫知识储备,数据采集与清洗基础习题(一)头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。为了方便寻找&#xff0c;按照头歌的门类从新整理了实训的分类&#xff0c;朋友们记得看标题哦&#xff0c;按标题寻找&#xff01; 该篇为爬虫知识储备&#xff01; 文章目录 实训一&#xff1a;HTM…

Spring Boot swagger之前后端分离

前后端分离详解 现在的趋势发展&#xff0c;需要把前后端开发和部署做到真正的分离做前端的谁也不想用Maven或者Gradle作为构建工具做后端的谁也不想要用Grunt或者Gulp作为构建工具前后端需要通过接口来协作 可能是JSON格式的RESTFul的接口可能是XML的接口重点是后台只负责数据…

MATLAB基础教程(5)——斐波那契数列

目录 前言 正文开始啦&#xff1a; 总体思路&#xff1a; 首先创建文件&#xff1a; 编写 fibo_use.m 文件的内容代码 编写 fibonacci_mine.m 文件中的代码 代码运行 总结&#xff1a; 前言 斐波那契数列是一个很有趣的数列&#xff0c;有趣的地方在两点&#xff0c;在…

数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。为了方便查找&#xff0c;已按照头歌重新排版&#xff0c;朋友们按照头歌所属门类查找实训哦&#xff0c;该篇为Python爬虫常用模块。 创作不易&#xff0c;一键三连给博主一个支持呗。 文章目录 实…

Spring Boot freemarker导出word下载

freemarker详解 FreeMarker是一款模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本&#xff08;HTML网页、电子邮件、配置文件、源代码等&#xff09;的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c;是一款程序…

学生用计算机怎么累加,计算机一级OFFICE辅导:累加小技巧

我们在工作中常常需要在已有数值的单元格中再增加或减去另一个数。一般是在计算器中计算后再覆盖原有的数据。这样操作起来很不方便。考试大编辑推荐一个小技巧&#xff0c;可以有效地简化老式的工作过程。(1).创建一个宏&#xff1a;选择Excel选单下的“工具→宏→录制新宏”选…

不同进制之间的转化

将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易&#xff0c;就是“按权相加”。所谓“权”&#xff0c;也即“位权”。 假设当前数字是 N 进制&#xff0c;那么&#xff1a; 对于整数部分&#xff0c;从右往左看&#xff0c;第 i 位…

[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)

组合评价模型—模糊Borda(Matlab) 我们的征途是星辰大海&#xff0c;而并非烟尘人间。 目录 组合评价模型—模糊Borda(Matlab) 一、模糊Borda法简介 二、模糊Borda法主要步骤 &#xff08;1&#xff09;计算隶属度 &#xff08;2&#xff09;计算模糊频数 &#xff08;…

计算机桌面右键新建展不开,Win10右键新建不见了怎么办?Win10电脑桌面右键新建没有了解决方法...

近期有Win10用户遇到一个问题&#xff0c;也就是电脑桌面右键新建没有了&#xff0c;比如想要创建一个文本文档、文件夹、Word&#xff0c;没有新建功能无法创建&#xff0c;那么Win10右键新建不见了怎么办&#xff1f;下面装机之家分享一下Win10电脑桌面右键新建没有了解决方法…

最常用的客观赋权方法——熵权法

我们的征途是星辰大海&#xff0c;而并非烟尘人间。 文章目录 一、熵权法的原理 1.1 信息熵 1.2 熵权法 二、熵权法的主要步骤 2.1 数据标准化 2.2 求各指标在各方案下的比值 2.3 求各指标的信息熵。 2.4 确定各指标的权重 2.4.1 通过信息熵计算各指标的权重&#…

2017韩老师计算机网络,2017年计算机等考三级网络技术辅导:计算机网络拓扑结构...

1&#xff0e;计算机网络拓扑的定义计算机网络设计的第一步就是网络拓扑设计。拓扑学是几何学的一个分支。计算机网络拓扑是通过网中结点与通信线路之间的几何关系表示网络结构&#xff0c;反映出网络各实体之间的结构关系。2&#xff0e;网络拓扑的分类网络拓扑可以根据通信子…

Spring Boot html页面解析之jsoup

目的 我们要对一个页面进行数据抓取&#xff0c;并导出doc文档 html解析器 jsoup 直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API&#xff0c;可通过DOM&#xff0c;CSS以及类似于JQuery的操作方法来取出和操作数据。 htmlparser 提供了线性和嵌套两种方…

2021年五一杯数学建模A题(疫苗生产调度问题)详细分析

目录 一、基本介绍 1.1 题目描述 1.2 待解决问题 二、问题分析与求解 2.1 问题一分析与求解 2.2 问题二分析与求解 2.3 问题三分析与求解 2.4 问题四分析与求解 2.5 问题五分析与求解 三、完整代码 四、总结 一、基本介绍 1.1 题目描述 新冠肺炎肆虐全球&#xff0…

Spring Boot EasyPoi导出Excel下载

Java关于excel的操作 Java Excel俗称jxl&#xff0c;可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件&#xff0c;现在基本没有更新了 Apache POI是Apache基金组织Jakarta项目的子项目&#xff0c;它包括一系列的API&#xff0c;可以操作多种格式的Mic…

2021年华中杯A题(马赛克瓷砖选色问题)详细分析

目录 一、基本介绍 1.1 题目描述 1.2 待解决问题 二、问题分析与求解 2.1 问题一分析与求解 2.2 问题二分析与求解 2.3 问题三分析与求解 三、完整代码 四、总结 一、基本介绍 1.1 题目描述 马赛克瓷砖是一种尺寸较小&#xff08;常见规格为边长不超过 5cm&#xff09…

计算机无法连接无线信号,win7系统连接无线信号时提示Windows无法连接到路由器名称的四种解决方法...

现如今网络发展速度非常快&#xff0c;无线网络已经普及了&#xff0c;使用率高了遇到的问题也就多了。比如有时候笔记本win7系统连接无线信号时出现“Windows无法连接到路由器名称”(如下图所示)&#xff0c;该如何解决此问题呢&#xff1f;下面脚本之家的小编介绍几种解决方法…