GAMS code for Data Envelopment Analysis

Chapter 3 (Fig. 3.12) – The mathematical formulation of the input-oriented DEA model under strong and weak disposability and congestion index calculation with corresponding GAMS formulation

$Title Chapter 3 (Fig. 3.12)
$Title Mathematical formulation of the input-oriented DEA model under strong and weak disposability and congestion index calculation 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/
           i(g)  Inputs /ProdCost, TrnCost,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 for model 1
            efficiency1   objective function for model 2
            Theta          Strong disposability efficiency
            Theta_tilde    Weak disposability efficiency
            Lambda(j)      dual weights (Lambda values);

  Nonnegative variables
            Lambda(j)      dual weights (Lambda values)


  Parameters DMU_data(g) slice of data
             eff_Theta(j)   Strong disposability efficiency values
             eff_Theta_tilde(j)  Weak disposability efficiency values
             Congestion(j) Congestion for each DMU
             Lamres_s(j,j) peers for each DMU for strong disposability model
             Lamres_w(j,j) peers for each DMU for weak disposability model;

  Equations OBJ_s objective function for strong disposability
            CON1_s(i) input constraint for strong disposability
            CON2_s(r) output constraint for strong disposability
            OBJ_w objective function for weak disposability
            CON1_w(i) input constraint for weak disposability
            CON2_w(r) output constraint for weak disposability
            VRS    VRS constraint;

  OBJ_s..       efficiency=E=Theta;

  CON1_s(i)..  SUM(j, Lambda(j)*Data(j,i))=L=Theta*DMU_data(i);
  CON2_s(r)..  SUM(j, Lambda(j)*Data(j,r))=G=DMU_data(r);


  OBJ_w..       efficiency1=E=Theta_tilde;

  CON1_w(i)..  SUM(j, Lambda(j)*Data(j,i))=E=Theta_tilde*DMU_data(i);
  CON2_w(r)..  SUM(j, Lambda(j)*Data(j,r))=G=DMU_data(r);

  VRS..        SUM(j, Lambda(j))=E=1;

  model Input_DEA_strong_disposability Input oriented DEA model for strong disposability /OBJ_s, CON1_s, CON2_s, VRS/;
  model Input_DEA_weak_disposability  Input oriented DEA model for weak disposability /OBJ_w, CON1_w, CON2_w, VRS/;

  loop(jj,
      DMU_data(g) = Data(jj,g);
       solve Input_DEA_strong_disposability using LP minimizing Theta;
       eff_Theta(jj)=Theta.l;

       solve Input_DEA_weak_disposability using LP minimizing Theta_tilde;
       eff_Theta_tilde(jj)=Theta_tilde.l;

       Congestion(jj)=eff_Theta(jj)/eff_Theta_tilde(jj);

      );

    Display eff_Theta, eff_Theta_tilde, congestion;

    execute_unload