双边界网络DEA模型复现介绍:为什么它更适合评估供应链的可持续效率?
双边界网络DEA模型复现介绍:为什么它更适合评估供应链的可持续效率?
一、为什么很多供应链效率评价,做出来总觉得“不够像真实业务”?
很多人在做供应链评价时,最常见的处理方式是:
- 选几项投入;
- 选几项产出;
- 把整条供应链当成一个整体;
- 最后算出一个综合效率值。
这种做法当然有用,但问题也很明显。
因为真实的供应链并不是一个“黑箱”。
从供应商,到制造商,再到分销商,中间往往经历了多个环节; 每个环节既有资源消耗,也有中间产品流转,还可能伴随着污染排放、能耗增加等不受欢迎的结果。
这时候如果仍然只用一个“总投入—总产出”结构去评价,就很容易出现一个问题:
结果能反映总体表现,但很难真正体现供应链内部各阶段的运作逻辑。
尤其是在“绿色供应链”“可持续供应链”这类场景里,这个问题会更突出。
因为你不仅要看赚了多少、产出了多少,往往还要同时考虑:
- 中间产品流是否顺畅;
- 各阶段衔接是否高效;
- 不期望产出(比如 CO₂ 排放)是否被控制;
- 一个对象到底是“真正优秀”,还是只是“没那么差”。
而这篇文章使用的 双边界网络 DEA 模型,恰恰就是为解决这些问题而设计的。
二、这篇文章研究什么?
这次复现的论文是:
Assessing sustainability of supply chains by double frontier network DEA: A big data approach
如果用一句话概括它的核心目标,就是:
把供应链拆成多个阶段,在考虑中间流和不期望产出的基础上,同时从“最好边界”和“最差边界”两个角度评价供应链可持续效率。
这篇文章把供应链看成一个 三阶段网络系统:
- Supplier(供应商)
- Manufacturer(制造商)
- Distributor(分销商)
在这个网络里,评价时同时考虑了:
- 外部投入
x - 第一阶段到第二阶段的中间流
z1 - 第二阶段到第三阶段的中间流
z2 - 不期望产出
b(例如 CO₂ 排放) - 最终产出
y
也就是说,它不是简单问“谁效率高”,而是在回答:
- 谁在整个供应链网络里运转得更好?
- 谁在绿色约束下表现更稳健?
- 谁接近最优前沿?
- 谁接近低效前沿?
这比很多单阶段评价方法更接近真实管理场景。
三、这个方法为什么值得关注?
我觉得,双边界网络 DEA 至少有四个很突出的优点。
1)它不是把供应链当“黑箱”,而是按阶段来评价
传统 DEA 很适合做整体效率测算,但一旦对象内部本身就有明显流程结构,比如“投入—加工—配送”,单纯黑箱处理就会损失很多信息。
网络 DEA 的价值就在于:
它允许你把系统内部的阶段衔接、中间流转和结构效率一起纳入分析。
这对于供应链研究尤其重要。
因为很多时候问题不在于总投入大或总产出小,而在于:
- 某个阶段转化效率偏低;
- 中间产品衔接不顺;
- 排放约束拉低了整体表现;
- 某个节点成为了整条链条的瓶颈。
2)它能处理“不期望产出”
如果评价的是可持续供应链,仅仅看营收、销量、交付量是不够的。
因为现实里经常会遇到这样的情况:
- 产出变多了;
- 收入提高了;
- 但排放也更高了。
如果一个模型只能奖励“多产出”,却无法处理“坏产出”,那它对绿色绩效的解释力就会受限。
而这篇文章的模型把 CO₂ emission 作为 undesirable output 纳入结构中,这一点非常关键。
它意味着:
评价结果不仅体现“做得多不多”,也体现“代价高不高、是否更绿色”。
3)它同时给出“乐观效率”和“悲观效率”
这是这篇文章最有辨识度的地方。
很多 DEA 应用最后只给出一组效率值,但双边界思想会同时考察:
- Optimistic efficiency:从优 frontier 看,一个对象离“最好”有多近;
- Pessimistic efficiency:从劣 frontier 看,一个对象离“最差”有多近。
这带来的好处是:
评价不再只有单一视角,而是能从“好的一面”和“差的一面”同时判断对象的位置。
对于需要做排序、分层、识别强弱对象的场景,这种信息会更丰富。
4)最终结果很适合做排序和决策展示
这篇文章最后给出的不是抽象结论,而是非常适合应用输出的结果:
- 每个 DMU 的乐观效率;
- 每个 DMU 的悲观效率;
- 综合得到的 overall efficiency;
- 最终排名结果。
这种输出形式特别适合:
- 写论文实证部分;
- 做企业/区域/园区比较;
- 做管理诊断;
- 做咨询报告或项目汇报。
四、它的核心思路是什么?
这篇文章的思路可以概括成这样:
- 把供应链划分为多个阶段;
- 为每个阶段设置投入、产出和中间连接变量;
- 对不期望产出单独纳入约束结构;
- 构建 乐观前沿模型(model 7);
- 构建 悲观前沿模型(model 8);
- 分别求出各 DMU 的 optimistic efficiency 和 pessimistic efficiency;
- 再通过 Expression (6) 将两者归并为 overall efficiency,并进行排序。
如果把它说得更直白一点,这个方法做的其实是:
既看你离“最好”还有多远,也看你离“最差”还有多远,然后再给出一个更综合的位置判断。
这种思路在很多需要区分对象层次的评价任务里,确实比单一分值更有解释力。
五、这次复现做了什么?
这次复现基于论文给出的案例数据,使用 Julia + JuMP + HiGHS 完成了完整实现。
复现内容包括:
- 录入论文 Table 2 的 9 个 DMU 数据;
- 建立三阶段网络结构;
- 建立包含不期望产出的乐观效率模型;
- 建立对应的悲观效率模型;
- 逐个 DMU 求解效率值;
- 计算 overall efficiency;
- 输出与论文 Table 3、Table 4 对照的结果文件。
也就是说,这次做的不是“把公式解释一下”,而是把:
- 数据输入;
- 模型搭建;
- 求解计算;
- 结果对照;
- 复现核验;
完整串成了一套可运行的程序流程。
六、复现过程里最关键的收获是什么?
这次复现里,我觉得最有价值的,不只是把程序跑通,而是把论文里几个特别容易误读的地方彻底厘清了。
1)模型目标函数不能只写最终产出
一开始最容易犯的错误,就是把目标函数只写成最终输出 y
的加权和。
但对照论文模型 (7)(8) 后可以确认:
目标函数实际上不仅包含最终输出,还包含两个中间变量的加权项。
也就是说,评价目标不是单纯看最后一层结果,而是把网络结构中的中间产出也一起纳入了效率表达。
2)标准化约束也不能漏掉中间变量
另一个关键点是,模型的归一化约束里,不只是投入和不期望产出,还包括两个中间变量项。
这一点如果漏掉,后面的数值会系统性偏离论文表格。
3)overall efficiency 不是简单比值变换
Table 4 一开始最容易让人误以为是在对 optimistic 和 pessimistic efficiency 做某种比例或平方根变换。
但实际核对后可以发现,它对应的是:
先分别对 optimistic efficiency 向量和 pessimistic efficiency 向量做二范数归一化,再逐项相加。
把这一点弄清楚之后,Table 4 的结果就能顺利对上。
这也是为什么我一直觉得:
真正有价值的模型复现,不只是“能跑”,而是要把每一个容易误读的结构点解释清楚。
七、复现结果怎么样?
从当前结果看,这个案例已经实现了比较高质量的复现。
1)Table 3 基本对上
论文 Table 3 给出了每个 DMU 的:
- optimistic efficiency(model 7)
- pessimistic efficiency(model 8)
当前程序跑出的结果,与论文表格在两位小数意义下能够对齐。
例如:
- Oila:
0.889 / 1.094,论文为0.89 / 1.10 - Daland:
0.920 / 1.217,论文为0.92 / 1.21 - Chin Chin:
0.999 / 1.363,论文为1.00 / 1.36
这说明模型结构和求解逻辑已经基本吻合论文设置。
2)Table 4 也基本对上
修正 overall efficiency 的计算方式后,Table 4 的结果也已经能够对齐。
例如:
- Oila:
0.642,论文为0.64 - Daland:
0.689,论文为0.69 - Mohsen:
0.616,论文为0.60 - Chin Chin:
0.760,论文为0.76
整体排序也与论文一致,说明复现已经不只是“形式上接近”,而是关键结论层面已经对应上了。
八、这类程序适合哪些人?
如果你属于以下几类需求,这类复现程序会很有价值。
1)做论文和课题的人
如果你正在研究:
- DEA 模型;
- 网络 DEA;
- 绿色效率;
- 供应链绩效评价;
- 多阶段系统效率分析;
那么一套已经对齐案例结果的程序,能大幅降低你从“读懂论文”到“拿到结果”的成本。
2)做项目和报告的人
很多实际项目并不只需要“知道这个方法”,而是更关心:
- 数据能不能直接替换;
- 模型能不能稳定输出结果;
- 排序和解释能不能直接写进报告;
- 后续能不能按客户场景继续修改。
这时候,一个可复现、可扩展的程序,就比一份单纯的公式说明更有用。
3)想做模型工具化的人
如果后续想把 DEA 类方法嵌入:
- 数据分析工具;
- 评价系统;
- 报表平台;
- 咨询服务流程;
那么这种结构清晰、结果稳定、便于替换数据的实现方式,非常适合作为基础模块。
九、为什么模型复现这件事本身就很有价值?
很多人看论文时会觉得,最重要的是“知道作者用了什么模型”。
但真正进入研究、交付或应用环节后就会发现,更关键的问题往往是:
这个模型到底能不能稳定落地,能不能跑出和论文一致的结果。
因为从论文到程序,中间常常隔着很多容易被忽略的细节:
- 变量到底怎么对应;
- 约束方向是否写对;
- 中间变量是否应该出现在目标函数里;
- overall efficiency 的计算方式到底是哪一种;
- 表格里的数字是四舍五入差异,还是公式理解偏差。
这些地方,往往才是决定“你是真的掌握了模型,还是只停留在读过一遍”的关键。
所以我一直觉得,模型复现最大的价值就在于:
- 把方法真正变成可以调用的工具;
- 把模糊的公式变成清晰的实现;
- 把论文里的结果变成自己手里可验证、可扩展的程序资产。
如果你平时做的正好是:
- DEA / Network DEA 方向研究;
- 供应链绩效评价;
- 可持续发展实证分析;
- 模型程序开发与交付;
那么双边界网络 DEA,确实是一个很值得放进工具箱的方法。
如果有需要,请联系微信canglang12002


