数据包络分析--保证域方法(assurance region method)附python代码以及案例

2023-11-08

Data envelopment analysis–Assurance region method


这个保证域方法比较简单,接下来简单概述一下:

对一个DEA模型求解,例如CCR的线性模型,我们既有可能得到的最优系数值为0,这就意味着我们并没有充分利用原数据信息,所以其实这个DMU哪怕其theta值为1,也是无效的。

针对这个情况,我们进行改进。给每个DMU的系数限定范围。这里把每个系数都与第一项作比较:
在这里插入图片描述

model

那么接下来,就给出CCR形式下的保证域方法:
在这里插入图片描述
其中:
在这里插入图片描述

其对偶形式为:
在这里插入图片描述

AR-有效

与CCR形式类似,这个保证域方法有效的前提是theta=1且松弛变量全为0

python代码

数据:
在这里插入图片描述
若直接用这组数据进行CCR模型求解得到的结果是:
在这里插入图片描述

可以从上图结果中发现,众多系数为0。意味着许多原始数据并没有得到充分利用。继而用保证域方法进行改良。

此时,保证域方法使得系数有限制:
在这里插入图片描述

附上主体部分,剩余的可看前面,都差不多的:

    def __CCR_dual(self):
        for k in self.DMUs:
            MODEL = gurobipy.Model()
            u, v = MODEL.addVars(self.m2), MODEL.addVars(self.m1)
            MODEL.update()
            MODEL.setObjective(gurobipy.quicksum(u[j]*self.Y[k][j] for j in range(self.m2)), sense=gurobipy.GRB.MAXIMIZE)
            MODEL.addConstr(gurobipy.quicksum(v[j]*self.X[k][j] for j in range(self.m1)) == 1)
            MODEL.addConstrs(gurobipy.quicksum(v[j]*self.X[i][j] for j in range(self.m1))
                             >= gurobipy.quicksum(u[j]*self.Y[i][j] for j in range(self.m2)) for i in self.DMUs)
            MODEL.addConstr(v[1] <= 5 * v[0])
            MODEL.addConstr(v[1] >= 0.2 * v[0])
            MODEL.addConstr(u[1] <= 5 * u[0])
            MODEL.addConstr(u[1] >= 0.2 * u[0])
            MODEL.setParam('OutputFlag', 0)
            MODEL.setParam("NonConvex", 2)
            MODEL.optimize()
            self.Result.at[k, ('效益分析', '综合技术效益(CCR)')] = MODEL.objVal
            for m in range(self.m1):
                self.Result.at[k, ('系数v', f'{self.m1_name[m]}')] = v[m].X
            for m in range(self.m2):
                self.Result.at[k, ('系数u', f'{self.m2_name[m]}')] = u[m].X

结果如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据包络分析--保证域方法(assurance region method)附python代码以及案例 的相关文章

随机推荐

  • 计算机组成原理fc和fz,合肥工业大学计算机组成原理实验报告(DOC)

    合肥工业大学计算机组成原理实验报告 DOC 合肥工业大学计算机组成原理 合肥工业大学计算机组成原理试卷 计算机组成原理实验pdf 计算机组成原理微程序 计算机组成原理实验报告 计算机组成原理知识点 计算机组成原理试卷 计算机组成原理 pdf
  • apache出现You don't have permission to access / on this server. 提示

    看看是不是DocumentRoot的值改过了 如果是的话还要再看
  • 【单目标优化算法】孔雀优化算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及详细文章 1 概述 受孔雀群智能行为的启发 POA的设计
  • 数据科学中的数据库简介

    推荐 使用 NSDT场景编辑器 快速搭建3D应用场景 用于高效视频 AI 和图形的通用加速器 数据科学中的数据库简介 数据科学涉及从大量数据中提取价值和见解 以推动业务决策 它还涉及使用历史数据构建预测模型 数据库有助于对如此大量的数据进行
  • 云原生之使用Docker部署wordpress网站

    云原生之使用Docker部署wordpress网站 一 wordpress介绍 二 检查本地docker环境 1 检查docker状态 2 检查docker版本 三 下载wordpress镜像 四 创建数据库 1 创建数据目录 2 创建my
  • 免费AWS EC2实例

    免费日期 2022年12 月 31日前 免费类型 Amazon Linux 2 AMI HVM SSD Volume Type 64 位 ARM 只支持ARM t4g micro 其他平台可用 例如 Ubuntu 18 04 或更新版本 R
  • FreeRTOS临界区

    FreeRTOS临界区是指那些必须完整运行 不能被打断的代码段 比如有的外设的初始化需要严格的时序 初始化过程中不能被打断 FreeRTOS 在进入临界区代码的时候需要关闭中断 当处理完临界区代码以后再打开中断 FreeRTOS 系统本身就
  • 引入springcloud报错。common依赖找不到_引用fabric-sdk和fabric报错 go mod 调试记录

    1 背景介绍 在fabric中 我们将proto定义文件放到fabric protos common路径下 在fabric sdk go中 我们引入的是fabric protos go包 当同时引入的时候 会将相同名称的proto对象注册
  • Swagger怎么做免鉴权

    前言 Swagger在API文档生成及测试方面非常方便 但是很多的API调用都需要用到token验证 然后经过Gateway网关 鉴权验证通过之后访问业务系统 为了方便后端开发自测接口 我们可以免去鉴权吗 答案是可以的 一般鉴权方式 我们先
  • 页面性能优化,如何减少回流

    在开发时 不可避免的会遇到性能优化的问题 怎么做性能才会更好 说到页面性能优化 我们就谈谈两个概念重绘和回流 1 什么是重绘 什么是回流 重绘 当渲染树中的一些元素需要更新属性 而这些属性只是影响元素的外观 风格 而不会影响布局的操作 比如
  • windows搭建WEB打印机

    文章目录 Web Print 添加一台虚拟打印机 名称为 CS Print 发布到AD域 客户端们都能够通过访问 https print www chinaskills com 查看打印机 证书由CSK2021 ROOTCA进行签署颁发 1
  • skywalking和jpa冲突

    1 报错 org springframework security authentication InternalAuthenticationServiceException No MethodInvocation found Check
  • 【C语言】通讯录的动态存储版本

    目录 一 前言 二 为什么要动态存储 1 动态存储的作用 2动态与静态存储的区别 三 动态存储的实现 1 通讯录容量 2 初始化通讯录 3 增加 减少通讯录成员 增加通讯录成员 判断及实现扩容函数的实现 减少通讯录成员 判断及实现减容函数的
  • iOS开发常见错误代码对照表---真机调试常见错误及解决方案

    iOS真机调试常见错误及解决方案 地址https developer apple com library ios technotes tn2250 index html apple ref doc uid DTS40009933 CH1 T
  • 11下滑半个屏幕_看完小米11发布会,2万粉购买小米,雷军给苹果的致命一击

    2020年12月28日 小米11发布会正式召开 这次的小米很聪明很聪慧 让我们看到了对用户满满的诚意 首先就是跑分 对于大部分用户而言 手机的跑分就代表着手机的性能 而小米搭配的高通骁龙888芯片 就让我们有了全新的认知 最终Antutu综
  • 依赖注入的几种方式

    获取bean对象 也称为对象装配 对象注入 依赖注入 对象装配的实现方法有3种 1 属性注入 2 构造方法注入 3 Setter注入 再讲本节内容之前 我们先来提两个传参的方式 首先呢 上节的文章里边 我们提到了五大类注解和 Bean注解
  • STM32F407ZGTE6利用模拟PWM驱动42步进电机(与pwm驱动led闪烁一样)

    前言 lmf老师来帮我解决42步进电机 预转不转 的问题 利用引脚模拟pwm波形驱动42步进电机 成功找到原因 还顺便给我留下了另一种驱动思路 直接引脚驱动 解决问题 42电机原地不动的原因是 线接触不良 采用杜邦线拼接 拟解决方案 重新换
  • C++程序设计期末考试抱佛脚

    大一上的 今早的计算机概论压中一道大题 我惊呆了 先放 点我看学友的复习总结 if嵌套配对 书p45 内嵌平衡语句 if if else else if else else总是与写在它前面的 最靠近的 尚未与其他else配对的if配对 其他
  • 栈破坏下crash的分析方法

    在众多的coredump中 有一类crash调试起来是最麻烦的 那就是 栈被破坏 导致的函数调用回溯结构破坏引发的coredump 本文 主要讲讲这一类crash的成因 原理以及调试方法 1 SMTC show me the code 首先
  • 数据包络分析--保证域方法(assurance region method)附python代码以及案例

    Data envelopment analysis Assurance region method 保证域方法 Data envelopment analysis Assurance region method model AR 有效 py