No experience with GAMS DEA

Hello everybody.

I am totally new to GAMS and have no experience with this system.

My master thesis topic is the Data Envelopment Analysis, and I am supposed to demonstrate its application using GAMS.

I have purchased a book by Prof. Emrouznejad entitled “DEA with GAMS - A Handbook on Productivity Analysis and Performance Measurement” and entered the exact code from this book into GAMS. Unfortunately, all I get are errors and I don’t know what to do.

Here is the code:

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(k,jj);


Table Data (j,g)

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
Lambda(j) dual weights
sminus(i) slacks assigned to inputs
splus(r) slacks assigned to inouts;

Nonnegative Variables
Lambda(j)
sminus(i)
splus(r);

Parameters
DMU_data(g) Data for inputs and outputs for each DMU
eff(j) efficiency (Theta values)
lamres(j,j) peers for each DMU (Lambda values)
slacks(j,g) slacks for inputs and outputs;

Equations
OBJ
CON1(i)
CON2(r);

OBJ… efficiency=E=Theta-1E-6*(SUM(i,sminus(i))+SUM(r,splus(r)));
CON1(i)… SUM(j, Lambda(j)Data(j,i))+sminus(i)=E=ThetaDMU_data(i);
CON2(r)… SUM(j, Lambda(j)*Data(j,r))-splus(r)=E=DMU_data(r);

Model DEA_CRS input oriented DEA CRS / OBJ, CON1, CON2 /;

loop(jj,
DMU_data(g) = Data(jj,g);

Solve DEA_CRS using LP minimizing Theta;
eff(jj)=Theta.1;
slacks(jj,i)=sminus.1(i);
slacks(jj,r)=splus.1(r);
loop(k,
Lamres(jj,k)=Lambda.1(k);

Parameters xproject(j,i), yproject(j,r);
xproject(j,i)=eff(j)*Data(j,i)-slacks(j,i);
yproject(j,r)=Data(j,r)+slacks(j,r);

Display eff, Lamres, slacks, xproject, yproject;


Can anyone help me? I would be very grateful.

Hmmm, typing without understanding is not a good way to go. You also should use the text box when sending code since this preserves the spacing (important for aligned data in the table statement). Assuming that this was okay, you made two mistakes, you wrote .1 (dot number one) but GAMS expects the level, i.e. .L (dot letter L). A 1 and a lower case l can be easily confused in some fonts. Moreover, you forgot to close the loop statements. I have uploaded a corrected version of your program. If you are supposed to enhance this program you will need some basic GAMS skills. There is plenty of material out there to learn GAMS. It’s fun to learn something new!

-Michael
new9.gms (1.73 KB)