数据包络分析-两阶段网络DEA(two stage network)

这篇文章是阅读文献做的总结并且代码复现。欢迎大家一起交流。
在这里插入图片描述

二阶段网络DEA简单介绍

二阶段网络DEA主要有两种类型。第一种就是stage-1只有中间变量输出,而stage-2只有中间变量输入。而第二种更为常见,就是stage-1只有中间变量输出,而stage-2既有中间变量输入又有额外的投入。这篇文章是基于第二种类型进行展开。
在这里插入图片描述

这篇文章内容不多,讲述了两种方法,分别是centralized model 以及 non-cooperation model.

centralized model

根据上述图示,我们可以写出模型。
在这里插入图片描述

多看文献的人都知道,这个模型很常见,并且也应该知道这个模型不能转变成线性模型,那么就很难从软件中求得全局最优值。这里我们就通过一种启发式方法。个人认为,这个方法极好!很有意思! 好聪明!

具体操作如下:
总的来说,通过两个步骤。

第一步

我们先求得stage-1的效率最大值,在原来模型的限制条件下:
在这里插入图片描述
要知道,原模型的目标函数是两个小于等于1的乘数相乘,并且两个成分要使得乘积达到最大,那么现在只需要第一部分达到最大,必定会必原来的值更大,也就是:
在这里插入图片描述

第二步

上一步是求出了stage-1效率的一个范围。接下来,为了求centralized model的效率,我们就假设stage-1的效率是一个常数,为已知值。即:
在这里插入图片描述
并且为了在python中实现,对其进行线性转化:

在这里插入图片描述
然后,就是考验编程能力了,迭代计算。我们注意stage-1效率:
在这里插入图片描述
这里的k是迭代次数,在这里插入图片描述是步长,是自己设定的,这篇文章开始设定的是0.01。
又因为k是迭代次数,一定是整数,且效率一定大于等于0,那么k的大小就有限制。
在这里插入图片描述

k从0开始进行迭代至k的最大值。对于每个DMUs,每个k都会得到一个系统效率值theta_centralized,我们取最大值,以及所对应的k。确定了k,我们就可以得到一个确切的stage-1效率值theta_0_1。那么可以根据除法,得到stage-2的效率值。

non-cooperation model

这个部分比较简单,就简单过一下。
非合作模型,就是两种。第一种,就是先求得stage-1的效率值(leading),然后在固定stage-1的效率下,再去求stage-2的效率值。或者说,先求得stage-2的效率值(leading),然后在固定stage-2的效率下,再去求stage-1的效率值。

给出第一种展示:
在这里插入图片描述
在这里插入图片描述

example–centralized model

网络展示:
在这里插入图片描述
数据展示(小部分,主要看变量名称),数据我看看能不能上传,大家可以去资源地方找找:
在这里插入图片描述

然后,结果展示(只展示了stage-1先算的系统效率,旁边贴的表是我复现的结果):

在这里插入图片描述

这是以stage-2先算的结果,旁边贴的表是我个人的复现结果:
在这里插入图片描述

上述结果都是建立在步长为0.01的结果。但是步长越小结果越好,文航后面实现了步长为0.0001和0.00001的结果。但是由于本人没有gpu,跑的太慢了,就只实现了一个。

步长为0.0001情况下的stage-1先算时候的系统效率,结果如下(就这么一个系统效率,跑了一个小时。。。):
在这里插入图片描述

欢迎大家一起来复现。数据集我试试上传到资源地方!

本人用的是python的gurobi软件来解决的问题,用最基础的dea代码嵌套两次循环。

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: DEA是一种数据包络分析方法,用于评价决策单元的效率和效果。MATLAB是一种计算机编程语言和开发环境,可用于编写和执行数据分析、数值计算和科学计算程序。在MATLAB中可以使用DEA来进行网络数据包络分析。 ### 回答2: 数据包络分析方法(DEA)是一种多元效率评价方法,用于评估特定输入和输出之间的相对效率。MATLAB是一种流行的科学计算和数值分析软件,具有广泛的功能和应用程序。因此,DEA方法在MATLAB中的应用非常重要,使得数据能够更方便地处理和分析。 在MATLAB中,DEA方法常用于评估投资组合的相对效率、生产力和效益。该方法使用线性规划技术来确定一组最优权重系数,以评估每个决策单元的相对效率。这些权重系数可以通过DEA程序进行计算,这些程序通常是以MATLAB函数的形式提供的。 DEA程序的核心是线性规划模型,该模型最小化决策单元的输入或最大化决策单元的输出。该模型需要输入和输出数据以进行计算。在MATLAB中,可以使用符号计算工具箱来生成数据文件。其次,DEA需要确定各种决策单元之间的比较标准并计算每个决策单元之间的距离。然后使用线性规划方法选择最优解,计算出每个决策单元的相对效率。 在MATLAB中,DEA方法可用于评估金融、医疗、制造业、运输和其他行业的效率和效益。MATLAB提供了几个DEA工具箱和教程,可以帮助用户了解并应用最新的DEA方法。 总之,数据包络分析方法(DEA)可以帮助用户更好地理解决策单元之间的效率和效益关系,并在MATLAB中进行相关计算和应用。这将使得各种行业用户能够更清晰地了解其效率和效益,帮助他们更好地管理和优化其业务。 ### 回答3: 数据包络分析方法,简称DEA,是一种用来衡量多个输入与输出变量之间关系的方法。DEA有许多实际应用,包括在生产效率评估、财务分析、市场竞争情况等方面。 而MATLAB作为一种高性能数值计算环境和科学计算语言,提供了强大的功能和工具,使得进行DEA分析变得更加容易和有效。 在MATLAB中进行DEA分析,首先需要安装的是DMU Assistant工具箱。DMU Assistant是专门为DEA分析而设计的MATLAB工具箱,它可以根据输入输出的数据进行计算,并输出各项效率与对应权值系数等信息。 接下来,进行DEA分析的主要步骤如下: 1. 准备数据:准备好需要进行DEA分析的输入和输出数据,并导入到MATLAB中。数据的格式可以是Excel、CSV等格式。在导入数据时,需要注意数据是不是纯数值或是否包含缺失值等。 2. 进行数据预处理:进行数据清洗和标准化,保证每个变量都处于同一量纲,避免因变量之间单位不同而影响结果。 3. 进行DEA计算:调用DMU Assistant工具箱中相应的函数和程序进行DEA计算。在计算中,需要指定所用的DEA模型、权重约束条件、输入输出数量和数据类型等。在计算结束后,会给出每个参与者的效率得分和权重系数。 4. 结果分析与解释:对分析结果进行解释和比较,进一步了解各参与者的效率表现和影响因素。可以绘制各种图表和表格,方便进行结果分析和可视化展示。 需要注意的是,在进行DEA分析时,需要根据具体的应用场景和目的选择合适的模型和指标,以保证分析结果的准确性和有效性。同时,分析结果也需要进行适当的解释和比较,避免误解或简单地将结果作为评价标准。 总之,MATLAB作为强大的计算工具和DEA分析工具箱,可以帮助研究者和分析师更加高效地进行DEA分析,从而提高分析效率和准确性,为实际应用提供更好的支持。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值