$Title Chapter 5 (Fig. 5.6) $Title Mathematical formulation for Technical and Revenue Efficiency 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 /Prodc, Trn, Inv, SatDem, Quantity/ i(g) Inputs /Prodc, Trn, Inv/ r(g) Outputs /SatDem, Quantity/; alias(jj,j); alias(k,jj); Table Data(j,g) Data for inputs and outputs Prodc Trn Inv SatDem Quantity DMU1 10 100 61 20 100 DMU2 52 125 100 6 150 DMU3 24 54 56 17 50 DMU4 45 91 14 2 510 DMU5 51 10 67 19 400 DMU6 52 26 56 17 60 DMU7 22 35 34 17 250 DMU8 91 56 101 10 35 DMU9 43 72 55 9 90 DMU10 34 39 16 8 650; Table Price(j,r) Cost Data for inputs SatDem Quantity DMU1 2 2.64 DMU2 3 5.29 DMU3 10 2.43 DMU4 5 8.99 DMU5 1 2.94 DMU6 3 0.75 DMU7 7 6.36 DMU8 8 7.2 DMU9 3 2.16 DMU10 9 7.3; Variables efficiency objective function rev_efficiency revenue efficiency for input DEA model Phi efficiency (Phi values); Nonnegative variables l(j) dual weights (Lambda values) y_t(r) auxilliary variable for p*phi; Parameters DMU_data(g) slice of data prs(r) slice of price data eff(j) efficiency tech_eff(j) technical efficiency rev_eff(j) revenue efficiency lamres(j,j) peers for each DMU; Equations OBJ_OUT objective function for output VRS model OBJ_REV objective function for revenue efficiency model CON1_REV(r) inputs for revenue efficiency model CON1_OUT(i) input duals for output VRS model CON2_OUT(r) output dual for output VRS model CON3 VRS orientation; OBJ_OUT.. efficiency=E=Phi; CON1_OUT(i).. SUM(j, l(j)*Data(j,i))=L=DMU_data(i); CON2_OUT(r).. SUM(j, l(j)*Data(j,r))=G=Phi*DMU_data(r); CON3.. SUM(j, l(j))=E=1; OBJ_REV.. rev_efficiency=E=SUM(r,prs(r)*y_t(r)); CON1_REV(r).. SUM(j, l(j)*Data(j,r))=G=y_t(r); model OUTPUT_DEA_VRS input oriented DEA VRS / OBJ_OUT, CON1_OUT, CON2_OUT, CON3/; model REV_DEA_VRS input oriented DEA VRS / OBJ_REV, CON1_OUT, CON1_REV, CON3/; loop(jj, DMU_data(g) = Data(jj,g); prs(r) = Price(jj,r); solve OUTPUT_DEA_VRS using LP maximizing Phi; solve REV_DEA_VRS using LP maximizing rev_efficiency; rev_eff(jj) = SUM(r,prs(r)*DMU_data(r))/SUM(r,prs(r)*y_t.l(r)); eff(jj)=Phi.l; tech_eff(jj)= 1/eff(jj); loop(k, Lamres(jj,k)=l.l(k); ); ); display eff, tech_eff, rev_eff; execute_unload