数据包络分析(DEA)——CCR模型

2023-11-15

写在前面:
博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。


1. 模型原理

1.1 模型介绍

  数据包络分析是以“相对效率”概念为基础,根据多指标投入和多指标产出对相同类型的单位进行相对有效性或效益评价的一种系统分析方法。
  DEA特别适用于具有多输入多输出的复杂系统,这主要体现在以下几点:
  (1)DEA以决策单位各输人/输出的权重为变量,从最有利于决策单元的角度进行评价,从而避免了确定各指标在优先意义下的权重。
  (2)假定每个输人都关联到一个或者多个输出,而且输入/输出之间确实存在某种关系,使用DEA方法则不必确定这种关系的显示表达式。
  DEA最突出的优点是无须任何权重假设,每一个输入/输出的权重不是根据评价者的主观认定,而是由决策单元的实际数据求得的最优权重。因此,DEA方法排除了很多主观因素,具有很强的客观性。

1.2 数据包络分析的CCR模型

DMU m个投入 q个产出
1 x 11 , ⋯   , x 1 m x_{11}, \cdots, x_{1 m} x11,,x1m y 11 , ⋯   , y 1 q y_{11}, \cdots, y_{1 q} y11,,y1q
⋮ \vdots ⋮ \vdots ⋮ \vdots
n x n 1 , ⋯   , x n m x_{n1}, \cdots, x_{n m} xn1,,xnm y n 1 , ⋯   , y n q y_{n1}, \cdots, y_{n q} yn1,,ynq

  设有n个决策单元(DMC),每个决策单元都有 m 种投入和 q 种产出,设 x i j ( i = 1 , ⋯   , n ; j = 1 , ⋯   , m ) x_{i j}(i=1, \cdots, n ; j=1, \cdots, m) xij(i=1,,n;j=1,,m)表示第i个决策单元的第i种投入量, y i j ( i = 1 , ⋯   , n ; r = 1 , ⋯   , q ) y_{i j}(i=1, \cdots, n ; r=1, \cdots, q) yij(i=1,,n;r=1,,q)表示第 j 个决策单元的第 r 种产出量; v j ( j = 1 , ⋯   , m ) v_{j}(j=1, \cdots, m) vj(j=1,,m)表示第i 种投入的权值, u r ( r = 1 , ⋯   , q ) u_{r}(r=1, \cdots, q) ur(r=1,,q)表示第 r 种产出的权值;向量 X i , Y i ( i = 1 , ⋯   , n ) X_{i}, Y_{i}(i=1, \cdots, n) Xi,Yi(i=1,,n)分别表示决策单元j的输入和输出向量,则 X i = ( x i 1 , ⋯   , x i m ) X_{i}=\left(x_{i 1}, \cdots, x_{i m}\right) Xi=(xi1,,xim) Y i = ( y i 1 , ⋯   , y i q ) Y_{i}=\left(y_{i 1}, \cdots, y_{i q}\right) Yi=(yi1,,yiq)
  决策单元 i 的评价效率指数可以使用产出和投入的比例衡量,则第 k 个决策单元的产出投入比为 h k = u 1 y k 1 + u 2 y k 2 + ⋯ + u q y k r v 1 x k 1 + v 2 x k 2 + ⋯ + v m x k j = u r Y k T v j X k T h_{k}=\frac{u_{1} y_{k 1}+u_{2} y_{k 2}+\cdots+u_{q} y_{k r}}{v_{1} x_{k 1}+v_{2} x_{k 2}+\cdots+v_{m} x_{k j}}=\frac{ u_{r} Y_{k}^{T}}{ v_{j} X_{k}^{T}} hk=v1xk1+v2xk2++vmxkju1yk1+u2yk2++uqykr=vjXkTurYkT

1.2.1 投入导向的CCR模型

  投入导向的CCR模型,是在给定投入的条件下最大化产出。评价决策单元k效率的数学模型为
max ⁡ u Y k T v X k T \max \frac{u Y_{k}^{T}}{v X_{k}^{T}} maxvXkTuYkT s . t . { u r Y k T v j X k T ⩽ 1 v j ⩾ 0 , u r ⩾ 0 , j = 1 , ⋯   , m ; r = 1 , ⋯   , q s.t.\left\{\begin{array}{c}\frac{u_{r} Y_{k}^{T}}{v_{j} X_{k}^{T}} \leqslant 1 \\ v_{j} \geqslant 0, u_{r} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, q\end{array}\right. s.t.{vjXkTurYkT1vj0,ur0,j=1,,m;r=1,,q
  由于该形式是非线性规划,因此将其转化为线性规划形式为
max ⁡ u r Y k T \max u_{r} Y_{k}^{T} maxurYkT s . t . { u r Y k T − v j X k T ⩽ 0 v j X k T = 1 v j ⩾ 0 , u r ⩾ 0 , j = 1 , ⋯   , m ; r = 1 , ⋯   , q s.t. \left\{\begin{array}{c}u_{r} Y_{k}^{T}-v_{j} X_{k}^{T} \leqslant 0 \\ v_{j} X_{k}^{T}=1 \\ v_{j} \geqslant 0, u_{r} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, q\end{array}\right. s.t. urYkTvjXkT0vjXkT=1vj0,ur0,j=1,,m;r=1,,q

  由于对偶模型的决策变量中包含效率值,因此将上述模型转化为对偶形式为:
min ⁡ θ \min \theta minθ s . t . { ∑ i = 1 n λ i x i j ⩽ θ x i j ∑ i = 1 n λ i y i r ⩽ y k r λ i ⩾ 0 , j = 1 , ⋯   , m ; r = 1 , ⋯   , q s.t. \left\{\begin{array}{c}\sum_{i=1}^{n} \lambda_{i} x_{i j} \leqslant \theta x_{i j} \\ \sum_{i=1}^{n} \lambda_{i} y_{i r} \leqslant y_{k r} \\ \lambda_{i} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, q\end{array}\right. s.t. i=1nλixijθxiji=1nλiyirykrλi0,j=1,,m;r=1,,q 其中, k = 1 , ⋯   , n k=1, \cdots, n k=1,,n
  在对偶规划中, λ \lambda λ表示DMU的线性组合系数,参数 θ \theta θ即为效率值,其范围在0到1之间。

1.2.2 产出导向的CCR模型

产出导向的CCR模型,是在给定产出条件下最小化投入,其最终的对偶模型如下:
max ⁡ ϕ \max \phi maxϕ s . t . { ∑ i = 1 n λ i x i j ⩽ x i j ∑ i = 1 n λ i y i r ⩾ ϕ y k r λ i ⩾ 0 , j = 1 , ⋯   , m ; r = 1 , ⋯   , q s.t.\left\{\begin{array}{c}\sum_{i=1}^{n} \lambda_{i} x_{i j} \leqslant x_{i j} \\ \sum_{i=1}^{n} \lambda_{i} y_{i r} \geqslant \phi y_{k r} \\ \lambda_{i} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, q\end{array}\right. s.t. i=1nλixijxiji=1nλiyirϕykrλi0,j=1,,m;r=1,,q 其中, k = 1 , ⋯   , n k=1, \cdots, n k=1,,n

2. 案例分析

  (多指标评价问题) 某市教委需要对六所重点中学进行评价,其相应的指标如表所示。表中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均科技得分是输出指标。请根据这些指标,评价哪些学校是相对有效的。
在这里插入图片描述
  该案例中,决策单元数量为6,投入指标数和产出指标数均为2。
根据投入导向的CCR对偶模型,利用Matlab编程求解得到6个最优目标值分别为:

1,0.9096,0.9635,0.9143,1,1

根据产出导向的CCR对偶模型,利用Matlab编程求解得到6个最优目标值也是:

1,0.9096,0.9635,0.9143,1,1

可见决策单元1,5,6的投入产出最有效率,均为1,因此学校A,E,F是DEA有效的。
投入导向的CCR模型Matlab程序如下:

clc,clear
X=[89.39 86.25 108.13 106.38 62.4 47.19;
    64.3 99 99.6 96 96.2 79.9];
Y=[25.2 28.2 29.4 26.4 27.2 25.2;
    223 287 317 291 295 222];
n=size(X,2)     % 决策单元数
m=size(X,1)     % 投入指标数
q=size(Y,1)     % 产出指标数
%投入导向的CCR模型
w = [];
for i = 1:n
    f = [zeros(1,n) 1];   % 定义目标函数
    Aeq = [];             % 没有等式约束
    beq = [];
    LB = zeros(n+1,1);    % 指定下界
    UB = [];
    A = [X -X(:,i);-Y zeros(q,1)];         % 设定不等式约束
    b = [zeros(m,1);-Y(:,i)];
    w(:,i) = linprog(f,A,b,Aeq,beq,LB,UB); % 模型求解
end    
CCR_IN = w(n+1,:)'             % 结果输出

产出导向的CCR模型Matlab程序如下:

clc,clear
X=[89.39 86.25 108.13 106.38 62.4 47.19;
    64.3 99 99.6 96 96.2 79.9];
Y=[25.2 28.2 29.4 26.4 27.2 25.2;
    223 287 317 291 295 222];
n=size(X,2)     % 决策单元数
m=size(X,1)     % 投入指标数
q=size(Y,1)     % 产出指标数
%产出导向的CCR模型
w = [];
for i = 1:n
    f = [zeros(1,n) -1];   % 定义目标函数
    Aeq = [];             % 没有等式约束
    beq = [];
    LB = zeros(n+1,1);    % 指定下界
    UB = [];
    A = [X zeros(m,1);-Y Y(:,i)];         % 设定不等式约束
    b = [X(:,i)' zeros(1,q)]';
    w(:,i) = linprog(f,A,b,Aeq,beq,LB,UB); % 模型求解
end    
CCR_OUT = 1./w(n+1,:)'             % 结果输出
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据包络分析(DEA)——CCR模型 的相关文章

  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 对多个属性使用一种设置方法 MATLAB

    我有几个属性基本上使用相同的属性set method classdef MyClass properties A B end methods function mc MyClass a b Constructor mc A a mc B b
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得

随机推荐

  • 人工智能数学基础--概率与统计9:概率运算、加法公理、事件的独立性、概率乘法定理、条件概率、全概率公式以及贝叶斯公式

    一 概述 这大半年都很忙 学习时间太少 导致概率论的学习停滞不前 期间AI大佬herosunly推荐了陈希孺老先生的概率论教材 与最开始学习的美版M R 斯皮格尔等著作的 概率与统计 表示差异比较大 具体请见 人工智能数学基础 概率与统计7
  • ESP32-IDF环境搭建以及使用

    1默认已经安装了esp32 idf和vscode配置 离线版的esp32idf安装 windows eap32安装这里参考博客ESP32c3开发环境搭建 IDF V4 4离线版安装使用 esp idf v4 4 2 可能会遇到的问题 问题篇
  • 修改elementUI样式未生效问题(挂载到了body标签上)

    修改挂载到body标签上elementUI样式问题 目录 修改挂载到body标签上elementUI样式问题 前言 一 适用范围 二 示例 1 目标 2 实现思路 修改自带样式方法 最后看效果 总结 前言 在使用element ui库的时候
  • Aspose.Slides for Java Crack

    Aspose Slides for Java Crack Added support for changing the color of leader lines in pie charts Added new AfterAnimation
  • 2012年终总结 - I T征途

    2012年终总结 I T征途 在2012年年初的时候 自己曾写了一个规划 2012 这一年我该做些啥 里面简单的介绍了一下2012年 我应该做的事儿 如今到了为2012结账的时候 我想借助那篇文档来总结这一年我的所作所为 2012年 我该给
  • 用Sipp 对Asterisk 进行性能测试的工作笔记-1

    公司需要 对Asterisk 进行一定的性能测试 测试目标 1 IVR 支持多少路2 一对一通话 支持多少路3 不同编解码的性能影响 4 通话中 录音 支持多少路 测试工具 sipp http sipp sourceforge net 辅助
  • createrepo:创建本地源

    4月20日 createrepo 创建本地源 repodata作为软件的仓库 其目录下有四个必要文件 filelists xml gz other xml gz primary xml gz 和repomd xml md 意思是 metad
  • IDEA 中 .properties文件的中文显示乱码问题的解决办法

    今天使用IDEA 搭建Spring Boot 项目 配置application properties 配置文件 录入中文 在右下角出现如下截图提示语 重新打开application properties 文件出现汉字乱码 依据提示信息修改源
  • “你爱我,我爱你,蜜雪冰城甜蜜蜜“秋天的第一杯奶茶!Python安排!!

    立秋了 大家秋天的第一杯奶茶都安排上了么 前一段时间我相信很多人都被 你爱我 我爱你 蜜雪冰城甜蜜蜜 这首歌洗脑了 所以今天就爬取了某度地图上蜜雪冰城门店分布 看看全国有多少家蜜雪冰城 能不能满足大家的需求啦 哈哈哈 数据采集 首先 我们打
  • Linux部署宝塔

    1 linux服务器安装宝塔 宝塔地址 https www bt cn new download html 点击上方地址 进入下方页面 点击安装版本 复制第一个命令 得确认你服务器是centos 远程连接服务器 复制此命令运行 运行成功后
  • [CISCN2019 华东南赛区]Web11 SSTI

    这道SSTI 差点给我渗透的感觉了 全是API 我还想去访问API看看 发现这里读取了我们的ip 我们抓包看看是如何做到的 没有东西 我们看看还有什么提示 欸 那我们可不可以直接修改参数呢 我们传递看看 发现成功了 是受控的 这里我就开始没
  • mysql某批量更新导致死锁

    查询当前数据库全部线程 show full processlist 查询当前运行的全部事务 select from information schema innodb trx 查询锁情况 select from information sc
  • 碰撞改变材质颜色_bp

    感谢来自程序员的暴击 学习资料来于 https www bilibili com video BV125411h7c4 p 22 最大的收获是 材质编辑器上 1维向量到4维向量的生成 会者不难 难者不会 方法很简单 鼠标左键 数字1就会生成
  • 2023年电赛E题完整设计暨电赛全记录

    目录 一 2023年E题完整设计 lt 1 gt 选择方案 任务一 实现按键按下复位 基础部分 任务二 实现激光点绕边框一周 基础部分 任务三 实现激光点绕A4纸边缘一周 基础部分 任务四 实现绿色激光追踪红色激光 发挥部分 lt 2 gt
  • 【信号与系统】傅里叶变换

    傅里叶变换 文章目录 傅里叶变换 傅里叶级数 基本公式 常用公式 基本性质 其他公式 卷积公式 周期信号的傅里叶变换 抽样信号的傅里叶变换 提供延时的理想滤波器 无失真传输 傅里叶级数 https blog csdn net lafea a
  • 【Flink】Flink 消费kafka报错 AMRMClientAsyncImpl Interrupted while waiting for queue InterruptedException

    1 背景 一个flink etl程序 读取一个kafka集群的数据 到两外一个集群 然后报错 2020 06 06 15 56 00 PM Thread flink akka actor default dispatcher 20 Clas
  • redis缓存一致性延时双删代码实现

    不废话 如下 1 自定义注解 author caoyue 延时双删 Retention RetentionPolicy RUNTIME Documented Target ElementType METHOD public interfac
  • shell脚本判断变量是否包含某个字符串的几种方法

    方法一 利用grep查找 strA long string strB string result echo strA grep strB if result then echo 包含 else echo 不包含 fi 先打印长字符串 然后在
  • 利用SVG滤镜实现水波倒影效果

    SVG滤镜用来增加对SVG图形的特殊效果 多种滤镜巧妙结合起来可以实现很棒的视觉效果 下面利用svg的feTurbulence滤镜和feDisplacementMap来模拟真实的水波倒影特效 效果如下图 代码并不复杂 首先设置两张图片 di
  • 数据包络分析(DEA)——CCR模型

    写在前面 博主本人大学期间参加数学建模竞赛十多余次 获奖等级均在二等奖以上 为了让更多学生在数学建模这条路上少走弯路 故将数学建模常用数学模型算法汇聚于此专栏 希望能够对要参加数学建模比赛的同学们有所帮助 目录 1 模型原理 1 1 模型介