$Title Chapter 3 (Fig. 3.9) $Title Mathematical formulation of the DEA model with undesirable outputs 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,CO2/ i(g) Inputs /ProdCost, TrnCost,HoldInv/ d(g) Outputs /SatDem, Rev/ k(g) Undesirable Output /CO2/; alias(jj,j); alias(kk,jj); Table Data(j,g) Data for inputs and outputs ProdCost TrnCost HoldInv SatDem Rev CO2 DMU1 0.255 0.161 0.373 20 2.64 7.3 DMU2 0.98 0.248 0.606 6 5.29 6.63 DMU3 0.507 0.937 0.749 17 2.43 10.3 DMU4 0.305 0.249 0.841 2 8.99 5.4 DMU5 0.659 0.248 0.979 19 2.94 18.9 DMU6 0.568 0.508 0.919 17 0.75 4.51 DMU7 0.583 0.628 0.732 17 6.36 8.91 DMU8 0.627 0.675 0.738 10 7.2 8.2 DMU9 0.772 0.657 0.486 9 2.16 14.2 DMU10 0.917 0.639 0.234 8 7.3 5.1; Variables efficiency objective function Beta inefficiency score(Beta values) Lambda(j) dual weights (Lambda values); Nonnegative variables Lambda(j) Beta; Parameters DMU_data(g) slice of data eff(j) Beta values Lamres(j,j) peers for each DMU slacks(j,g) slacks for inputs and outputs; Equations OBJ objective function CON1(i) input constraint CON2(d) output constraint for desirable outputs CON3(k) output dual CON4 VRS constraint; OBJ.. efficiency=E=Beta; CON1(i).. SUM(j, Lambda(j)*Data(j,i))=L=DMU_data(i); CON2(d).. SUM(j, Lambda(j)*Data(j,d))=G=DMU_data(d)+beta*DMU_data(d); CON3(k).. SUM(j, Lambda(j)*Data(j,k))=L=DMU_data(k)-beta*DMU_data(k); CON4.. SUM(j, Lambda(j))=E=1; model Undesirable_output_DEA Undesirable output DEA model /OBJ, CON1, CON2, CON3, CON4/; loop(jj, DMU_data(g) = Data(jj,g); solve Undesirable_output_DEA using LP maximizing Efficiency ; eff(jj)=beta.l; loop(kk, Lamres(jj,kk)=Lambda.l(kk); ); ); Display eff, Lamres; execute_unload