数学建模常用模型(十) :数据包络(DEA)分析法

数学建模常用模型(十) :数据包络(DEA)分析法

数据包络分析(DEA)是一种用于评估决策单元(Decision Making Unit,DMU)效率的方法。在DEA中,每个DMU都是一个有多个输入和输出指标的单位,而DEA的目标是找到一个最优的权重组合,使得每个DMU在其输入和输出指标上都能达到最大值,即达到最高的效率。
这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

1.数据包络(DEA)分析法的应用

DEA可以用于评估不同单位的效率,例如企业、学校、医院等,以及对它们进行比较和排名。它在经济学、管理学、运筹学等领域得到广泛应用。

2.程序实例

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import linprog

# 输入数据:每个DMU的输入和输出指标
# 输入指标:x1, x2
# 输出指标:y1, y2
data = np.array([
    [2, 3, 4, 5],
    [1, 2, 6, 7],
    [3, 4, 8, 9],
    [4, 5, 10, 11]
])

# 定义DMU的个数和指标个数
num_dmu, num_indicators = data.shape

# 设置目标函数的系数
c = np.zeros(num_dmu)
c[0] = 1

# 设置约束条件:每个DMU的输入指标和输出指标的系数
A_eq = np.zeros((num_indicators, num_dmu))
A_eq[:, 1:] = -data[:, 1:]
b_eq = data[:, 0]

# 设置上界约束
bounds = [(0, None)] * num_dmu

# 使用线性规划求解DEA模型
result = linprog(c, A_eq=A_eq, b_eq=b_eq, bounds=bounds)

# 提取最优权重和效率
weights = result.x[1:]
efficiency = 1 / result.fun

# 绘制效率图
dmu_labels = ['DMU1', 'DMU2', 'DMU3', 'DMU4']
x = np.arange(len(dmu_labels))
plt.bar(x, efficiency, align='center', alpha=0.5)
plt.xticks(x, dmu_labels)
plt.xlabel('DMU')
plt.ylabel('Efficiency')
plt.title('DEA Efficiency')
plt.ylim(0, 1.1)
plt.show()

# 输出结果
print("最优权重:", weights)
print("最大效率:", efficiency)

在这个例子中,我们假设每个DMU有4个指标(2个输入指标和2个输出指标),然后通过线性规划求解最优权重和效率。结果将给出每个DMU的最优权重以及对应的效率。

3.运行结果

运行上述代码,将绘制一个柱状图,显示每个DMU的效率。效率越接近1,表示该DMU越高效。通过柱状图,我们可以更直观地比较不同DMU之间的效率,并找出效率较高或较低的单位。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红狐狸的北北记

红狐狸背着行囊上路,感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值