前言:本文给出数据包络分析(Data envelopment analysis, DEA)中的CCR、BCC模型的原规划、对偶规划以及matlab代码实现
用以评价决策单元(decision making unit, DMUs)的效率高低,如:180家热电企业那一家的生产效率更高?我国所有银行中那些银行的管理水平更先进?哪些企业中员工积极性更高?拓展探究:评价技术进步率、环境效率、预测等
CCR模型
线性规划
maxμY0 s.t. {ωXj−μYj≥0,j=1,2,⋯ ,nωX0=1ω,μ≥0 \begin{aligned} &\max \mu Y_{0} \\ &\text { s.t. }\left\{\begin{array}{l} \omega X_{j}-\mu Y_{j} \geq 0, j=1,2, \cdots, n \\ \omega X_{0}=1 \\ \omega, \mu \geq 0 \end{array}\right. \end{aligned} maxμY0 s.t. ⎩⎨⎧ωXj−μYj≥0,j=1,2,⋯,nωX0=1ω,μ≥0
形式展开
maxμ1y01+μ2y02+…+μty0t{ω1x11+ω2x12+…+ωsx1s−μ1y11−μ2y12−…−μty1t≥0ω1x21+ω2x22+…+ωsx2s−μ1y21−μ2y22−…−μty2t≥0……………….……ω1xn1+ω2xn2+…+ωsxns−μ1yn1−μ2yn2−…−μtynt≥0ω1x01+ω2x02+…+ωsx0s=1
\begin{aligned}
&\max \mu_{1} y_{01}+\mu_{2} y_{02}+\ldots+\mu_{t} y_{0 t} \\
&\left\{\begin{array}{l}
\omega_{1} x_{11}+\omega_{2} x_{12}+\ldots+\omega_{s} x_{1 s}-\mu_{1} y_{11}-\mu_{2} y_{12}-\ldots-\mu_{t} y_{1 t} \geq 0 \\
\omega_{1} x_{21}+\omega_{2} x_{22}+\ldots+\omega_{s} x_{2 s}-\mu_{1} y_{21}-\mu_{2} y_{22}-\ldots-\mu_{t} y_{2 t} \geq 0 \\
\ldots \ldots \ldots \ldots \ldots \ldots . \ldots \ldots \\
\omega_{1} x_{n 1}+\omega_{2} x_{n 2}+\ldots+\omega_{s} x_{n s}-\mu_{1} y_{n 1}-\mu_{2} y_{n 2}-\ldots-\mu_{t} y_{n t} \geq 0 \\
\omega_{1} x_{01}+\omega_{2} x_{02}+\ldots+\omega_{s} x_{0 s}=1
\end{array}\right.
\end{aligned}
maxμ1y01+μ2y02+…+μty0t⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧ω1x11+ω2x12+…+ωsx1s−μ1y11−μ2y12−…−μty1t≥0ω1x21+ω2x22+…+ωsx2s−μ1y21−μ2y22−…−μty2t≥0……………….……ω1xn1+ω2xn2+…+ωsxns−μ1yn1−μ2yn2−…−μtynt≥0ω1x01+ω2x02+…+ωsx0s=1
对偶规划
minθ s.t. {∑i=1nλjxij≤θx0j,j=1,2,⋯ , n ∑i=1nλjyij≥y0j,j=1,2,⋯ , n λj≥0,j=1,2,⋯ ,nθ无约束
\begin{aligned}
&\min \theta\\
&\text { s.t. }\left\{\begin{array}{l}
\sum_{i=1}^{n} \lambda_{j} x_{i j} \leq \theta x_{0 j}, j=1,2, \cdots, \text { n } \\
\sum_{i=1}^{n} \lambda_{j} y_{i j} \geq y_{0 j}, j=1,2, \cdots, \text { n } \\
\lambda_{j} \geq 0, j=1,2, \cdots, n \\
\theta 无约束
\end{array}\right.
\end{aligned}
minθ s.t. ⎩⎪⎪⎨⎪⎪⎧∑i=1nλjxij≤θx0j,j=1,2,⋯, n ∑i=1nλjyij≥y0j,j=1,2,⋯, n λj≥0,j=1,2,⋯,nθ无约束
代码实现
clear
clc
x=[]; y=[];
n=size(x,1); m=size(x',1); s=size(y',1);
A=[-x y]; b=zeros(n,1); LB=zeros(m+s,1); UB=[];
for i=1:n;
f=[zeros(1,m) -y(i,:)];
Aeq=[x(i,:) zeros(1,s)]; beq=1;
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
E(i,i)=y(i,:)*w(m+1:m+s,i);
theta(i)=E(i,i);
end
w %权重向量
theta' %输出相对效率值
BCC模型
线性规划
minf⋅w s.t. {A⋅w⩽bAeq⋅w=1w⩾0 \begin{aligned} &\min f \cdot w \\ &\text { s.t. }\left\{\begin{array}{l} A \cdot w \leqslant b \\ \mathrm{Aeq} \cdot w=1 \\ w \geqslant 0 \end{array}\right. \end{aligned} minf⋅w s.t. ⎩⎨⎧A⋅w⩽bAeq⋅w=1w⩾0
f=[00⋯0−y01−y02⋯−y0snb01nb01⋯nb0t]A=[−x11−x12⋯−x1my11y12⋯y1m−nb11−nb12⋯−nb1t−x21−x12−x2m⋯⋯⋯−xn1−xn1−xnnyn1yn2⋯ynm−nbn1−nbn2⋯−nbnt]Aeq=[x01x02⋯x0 m00⋯000⋯0]yb=[00⋯0y01y02⋯y0 snb01nb01⋯nb0t] \begin{aligned} &f=\left[\begin{array}{llllllllllll} 0 & 0 & \cdots & 0 & -y_{01} & -\mathrm{y}_{02} & \cdots & -y_{0 s} & n b_{01} & n b_{01} & \cdots & n b_{0 t} \end{array}\right]\\ &A=\left[\begin{array}{cccccccccccc} -x_{11} & -x_{12} & \cdots & -x_{1 m} & y_{11} & y_{12} & \cdots & y_{1 m} & -n b_{11} & -n b_{12} & \cdots & -n b_{1 t} \\ -x_{21} & -x_{12} & & -x_{2 m} & & & & & & & & \\ \cdots & \cdots & & \cdots & & & & & & & & \\ -x_{\mathrm{n} 1} & -x_{n 1} & & -x_{n n} & y_{n 1} & y_{n 2} & \cdots & y_{n m} & -n b_{n 1} & -n b_{n 2} & \cdots & -n b_{n t} \end{array}\right]\\ &A e q=\left[\begin{array}{llllllllllll} x_{01} & x_{02} & \cdots & x_{0 \mathrm{~m}} & 0 & 0 & \cdots & 0 & 0 & 0 & \cdots & 0 \end{array}\right]\\ &\mathrm{yb}=\left[\begin{array}{cccccccccccc} 0 & 0 & \cdots & 0 & y_{01} & \mathrm{y}_{02} & \cdots & y_{0 \mathrm{~s}} & n b_{01} & n b_{01} & \cdots & n b_{0 t} \end{array}\right] \end{aligned} f=[00⋯0−y01−y02⋯−y0snb01nb01⋯nb0t]A=⎣⎢⎢⎡−x11−x21⋯−xn1−x12−x12⋯−xn1⋯−x1m−x2m⋯−xnny11yn1y12yn2⋯⋯y1mynm−nb11−nbn1−nb12−nbn2⋯⋯−nb1t−nbnt⎦⎥⎥⎤Aeq=[x01x02⋯x0 m00⋯000⋯0]yb=[00⋯0y01y02⋯y0 snb01nb01⋯nb0t]
对偶规划
maxz0 s.t. {∑i=1nxijλi+x0j,z0≤0,j=1,2⋯m∑i=1n−yijλi⩽−yij,j=1,2⋯s∑i=1nnbijλi⩽nbij,j=1,2⋯tλi≥0,i=1,2⋯n z0无约束
\begin{aligned}
&\max z_{0} \\
&\text { s.t. }\left\{\begin{array}{l}
\sum_{i=1}^{n} x_{i j} \lambda_{i}+x_{0 j}, z_{0} \leq 0, j=1,2 \cdots m \\
\sum_{i=1}^{n}-y_{i j} \lambda_{i} \leqslant-y_{i j}, j=1,2 \cdots s \\
\sum_{i=1}^{n} n b_{i j} \lambda_{i} \leqslant n b_{i j}, j=1,2 \cdots t \\
\lambda_{i} \geq 0, \quad i=1,2 \cdots n\\
\ z_{0}无约束
\end{array}\right.
\end{aligned}
maxz0 s.t. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∑i=1nxijλi+x0j,z0≤0,j=1,2⋯m∑i=1n−yijλi⩽−yij,j=1,2⋯s∑i=1nnbijλi⩽nbij,j=1,2⋯tλi≥0,i=1,2⋯n z0无约束
代码实现
x=[]; y=[]; nb=[];
n=size(x,1); m=size(x',1); s=size(y',1);t=size(nb',1);
A=[-x y -nb]; b=zeros(n,1); LB=zeros(m+s+t,1); UB=[];
for i=1:n;
f=[zeros(1,m) -y(i,:) nb(i,:)];
Aeq=[x(i,:) zeros(1,s+t)]; beq=1;
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
yb=[y(i,:) nb(i,:)];
E(i,i)=yb*w(m+1:m+s+t,i);
theta(i)=E(i,i);
end
w %权重向量
theta' %输出相对效率值