GAMS code for Data Envelopment Analysis

Chapter 3 (Fig. 3.05) – The mathematical formulation of the VRS-DEA model with exogenously fixed inputs and the corresponding GAMS formulation

$Title Chapter 3 (Fig. 3.5)
$Title Mathematical formulation of the VRS-DEA model with exogenously fixed inputs and the corresponding GAMS code

$onText

If using this code, please cite:

---------------------------------------------------------------------------------
Emrouznejad, A., P. Petridis, and V. Charles (2023). Data Envelopment Analysis
with GAMS: A Handbook on Productivity Analysis, and Performance Measurement,
Springer, ISBN: 978-3-031-30700-3.
---------------------------------------------------------------------------------

Website: https://dataenvelopment.com/GAMS/

$offText

Sets    j DMUs /DMU1*DMU10/
        g Inputs and Outputs /ProdCost, TrnCost, HoldInv, SatDem, Rev/
        d(g)  Inputs /ProdCost, TrnCost/
        k(g)  Exogenously fixed inputs /HoldInv/
        r(g) Outputs /SatDem, Rev/;
        alias(jj,j);
        alias(kk,jj);

Table Data(j,g) Data for inputs and outputs

           ProdCost     TrnCost      HoldInv     SatDem      Rev
DMU1        0.255        0.161        0.373        20        2.64
DMU2        0.98         0.248        0.606        6         5.29
DMU3        0.507        0.937        0.749        17        2.43
DMU4        0.305        0.249        0.841        2         8.99
DMU5        0.659        0.248        0.979        19        2.94
DMU6        0.568        0.508        0.919        17        0.75
DMU7        0.583        0.628        0.732        17        6.36
DMU8        0.627        0.675        0.738        10        7.2
DMU9        0.772        0.657        0.486        9         2.16
DMU10       0.917        0.639        0.234        8         7.3;


Variables efficiency objective function
          Theta     efficiency (Theta values)
          Lambda(j) dual weights (Lambda values)
          sminus_nf(d) slacks assigned to inputs under managerial control
          sminus_f(k)  slacks assigned to exogenously fixed inputs
          splus(r) slacks assigned to inputs;

Nonnegative variables
          Lambda(j)
          sminus_nf(d)
          sminus_f(k)
          splus(r);

Parameters DMU_data(g) slice of data
           eff(j) efficiency report
           Lamres(j,j) peers for each DMU
           slacks(j,g) slacks for inputs and outputs;

Equations OBJ objective function
          CON1(d) input constraint for inputs under managerial control
          CON2(k) input constraint for exogenously fixed inputs
          CON3(r) output dual
          CON4    VRS constraint;

OBJ..       efficiency=E=Theta-1E-6*(SUM(d,sminus_nf(d))+SUM(r,splus(r)));

CON1(d)..  SUM(j, Lambda(j)*Data(j,d))+sminus_nf(d)=E=Theta*DMU_data(d);
CON2(k)..  SUM(j, Lambda(j)*Data(j,k))+sminus_f(k)=E=DMU_data(k);
CON3(r)..  SUM(j, Lambda(j)*Data(j,r))-splus(r)=E=DMU_data(r);
CON4..     SUM(j, Lambda(j))=E=1;
model Exogenous_input_DEA_VRS Exogenously input oriented DEA model /OBJ, CON1, CON2, CON3, CON4/;



loop(jj,
   DMU_data(g) = Data(jj,g);
   solve Exogenous_input_DEA_VRS using LP minimizing Efficiency ;
   eff(jj)=Theta.l;
   slacks(jj,d)=sminus_nf.l(d);
   slacks(jj,k)=sminus_f.l(k);
   slacks(jj,r)=splus.l(r);
   loop(kk,
      Lamres(jj,kk)=Lambda.l(kk);
    );
);

Display eff, Lamres, slacks;

execute_unload