Data envelopment analysis - SBM model

Written in front:
The blogger participated in mathematical modeling competitions more than ten times during college, and the winning grades were all second prize or above. In order to help more students avoid detours on the road to mathematical modeling, we have gathered common mathematical model algorithms for mathematical modeling in this column, hoping to be helpful to students who want to participate in mathematical modeling competitions.



1 Introduction

  We have introduced the CCR model and BCC model of data envelopment analysis before. For details, please refer to the link: Data Envelopment Analysis - CCR Model and Link: Data Envelopment Analysis - BCC Model , and the CCR model and the BCC model are both paths. In the radial model, efficiency improvement mainly refers to the proportional linear scaling of input or output, while ignoring weakly effective situations parallel to the coordinate axis, while the SBM model incorporates inefficient relaxation improvements to ensure that the final The results are strong and effective.

2. Model establishment

  For example the SBM values ​​are
min ⁡ ρ = 1 − 1 m ∑ j = 1 msj − / xkj 1 + 1 q ∑ r = 1 qsr − / ykr st { X λ + s − = xk Y λ − s + = yk λ , s − , s + ⩾ 0 , j = 1 , ⋯ , m ; r = 1 , ⋯ , q \begin{array}{l}\min \rho=\frac{1-\frac{1}{m}\sum_{j=1}^{m}s_{j}^{ -} / x_{kj}}{1+\frac{1}{q} \sum_{r=1}^{q} s_{r}^{-} / y_{kr}} \\ \text { st }\left\{\begin{array}{l}X \lambda+s^{-}=x_{k}\\ Y \lambda-s^{+}=y_{k}\\\lambda, s^ {-}, s^{+} \geqslant 0, \quad j=1, \cdots, m ; r=1, \cdots, q\end{array}\right.\end{array}minr=1+q1r=1qsr/ykr1m1j=1msj/xkj s.t.  Xλ+s=xks+=ykl ,s,s+0,j=1,,m;r=1,,qAmong them, for each decision-making unit k = 1, ⋯, nk=1, \cdots, nk=1,,n .
  Objective function ρ ∗ \rho^{*}r represents the efficiency value. This model examines inefficiency from both input and output aspects, so it is called a non-radial model. Since the model is a nonlinear model, convert the model into a linear model and add undesired output to the model:
τ ∗ = min ⁡ ( t − 1 m ∑ j = 1 msj − xkj ) st { t + 1 s 1 + s 2 ( ∑ r = 1 s 1 srgykrg + ∑ r = 1 s 2 srbykrg ) = 1 xkt = X Λ + S − ykgt = X Λ − S gykbt = X Λ + S b Λ , S − , S g , S b ⩾ 0 t > 0 \begin{array}{l}\tau^{*}=\min \left(t-\frac{1}{m} \sum_{j=1}^{m} \frac{s_{j}^{-}}{x_{kj}}\right) \\ \text { st }\left\{\begin{array}{l}t+\frac{1}{s_{1 }+s_{2}}\left(\sum_{r=1}^{s_{1}} \frac{s_{r}^{g}}{y_{kr}^{g}}+\sum_{ r=1}^{s_{2}} \frac{s_{r}^{b}}{y_{kr}^{g}}\right)=1 \\ x_{k} t=X \Lambda+ S^{-} \\ y_{k}^{g} t=X \Lambda-S^{g} \\ y_{k}^{b} t=X \Lambda+S^{b} \\ \ Lambda, S^{-}, S^{g}, S^{b} \geqslant 0 \\ t>0\end{array}\right.\end{array}t=min(tm1j=1mxkjsj) s.t.  t+s1+s21(r=1s1ykrgsrg+r=1s2ykrgsrb)=1xkt=XΛ+Sykgt=XΛSgykbt=XΛ+SbL ,S,Sg,Sb0t>0Among them, for each decision-making unit k = 1, ⋯, nk=1, \cdots, nk=1,,n . The model contains the input matrixX n × m X_{n \times m}Xn×mTranspose of , the expected output matrix Y n × s 1 g Y_{n \times s_{1}}^{g}Yn×s1gThe transposition of , the unexpected output Y n × s 2 b Y_{n \times s_{2}}^{b}Yn×s2bThe transposition of , the model parameters mainly include the projection variable Λ \LambdaΛ , slack variablesS − , S g , S b S^{-}, S^{g}, S^{b}SSgSb andttt

3. Model solution

We still use the previous example:
  a certain city’s education committee needs to evaluate six key middle schools, and the corresponding indicators are as shown in the table. The per-student investment and the percentage of non-low-income families in the table are input indicators, and the per-student writing score and per-student science and technology score are output indicators. Please evaluate which schools are relatively effective based on these indicators.
Insert image description here
  Write the MATLAB code according to the model as follows:

%非期望产出SBM模型
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];
Z=[72 85 95 63 81 70]; %非期望产出:生均艺术得分
[m,n]=size(X);
s1=size(Y,1);
s2=size(Z,1);
c=1/(s1+s2);

rho=[];
w=[];
for i=1:n
    f=[-1./(m*X(:,i)') zeros(1,s1) zeros(1,s2) zeros(1,n) 1];
    A=[];
    b=[];
    UB=[];
    LB=zeros(m+s1+s2+n+1,1);
    Aeq=[zeros(1,m) c*1./Y(:,i)' c*1./Z(:,i)' zeros(1,n) 1;
        eye(m) zeros(m,s1)  zeros(m,s2) X -X(:,i);
        zeros(s1,m) -eye(s1) zeros(s1,s2) Y -Y(:,i);
        zeros(s2,m) zeros(s2,s1) eye(s2) Z -Z(:,i)];
    beq=[1 zeros(m,1)' zeros(s1,1)' zeros(s2,1)'];
    [w(:,i),rho(i)]=linprog(f,A,b,Aeq,beq,LB,UB);
end
rho'

  The efficiency value of each school is obtained as

1.0000 、 0.8297 、 0.8692 、 1.0000 、1.0000 、 1.0000

  It can be seen that schools A, D, E, and F are effective in the case of unexpected output.

Guess you like

Origin blog.csdn.net/m0_64087341/article/details/133044524