Dear all.

I know it seems idiotic, but I have this problem and my knowledge is not enough to solve it.

I am coding a simple DEA model in GAMS for 55 DMUs (Decision Making Units) with 8 input and 2 output in order to compute the score.

But the problem is, all score are 1. When I put some restriction on weights, the in-feasibility appears.

I really appreciate any suggestion to solve my problem.

Thank you in advance.


asked 23 Jan '13, 16:15

Bob%20Pay's gravatar image

Bob Pay
accept rate: 0%

edited 23 Jan '13, 17:08

fbahr's gravatar image

fbahr ♦

It's theoretically possible for any number of DMUs to all be "efficient", but it certainly seems unlikely.

The first thing to do would be to test the correctness of the model. I'd suggest creating a spreadsheet with the 55x10 table of inputs and outputs, plus 10 cells for the weights assigned to the inputs and outputs and 55 computed efficiencies using those weights. Take a random sample of DMUs (you probably won't want to do this all 55 times), run the DEA model with that DMU as target, plug the resulting weights into the spreadsheet and confirm that the target DMU has efficiency 1 and all others have efficiency <= 1.


answered 23 Jan '13, 18:43

Paul%20Rubin's gravatar image

Paul Rubin ♦
accept rate: 19%

Dear Paul Rubin

I am so thankful for your suggestion. I did what you said for a random dmu. then I calculate the score in Excel using the computed weights from GAMS output for that dmu, using the formula: score = sum(out, weight(out) * Ouput(out));

surprisingly, while the score in GAMS is 1, the compute score in excel is 0.8???!!!! What is wrong with model, it is very simple model that I extracted from Seiford DEA book. what can I do now?

(24 Jan '13, 02:48) Bob Pay

First question: does a hand calculation using those weights match the Excel result or the GAMS result?

Also, do the weights satisfy the normalization constraint (value of inputs for the target DMU = 1)?

(24 Jan '13, 09:56) Paul Rubin ♦

About first question:

Now I am manipulating the lower limit for output weights, for all dmus in separate runs in GAMS to achieve a promising score which is not 1 (unless it is impossible). under this circumstance, hand calculation is like excel. for example the output of gams is z= 0.98 while the actual value is 1.705 !

About second question: yes

it is a little weird for me1

I will be so thankful...

(24 Jan '13, 16:03) Bob Pay

Perhaps you should post your GAMS model (and your data, if it's not proprietary). If you have access to a sharing site where you can make files public (Dropbox, Google Drive, ...), that might be the best route -- just post the link(s) here. There's also Pastebin if you don't have a public folder anywhere.

(24 Jan '13, 17:08) Paul Rubin ♦

Dear Paul I have uploaded the data and gams file in google drive here. data are in Sheet2 of excel file. gams model compute all score in a loop.

Thank you so much.

I don not know why it is not possible to send a link in comment, so I put it down as answer to this posy "Link text"

(25 Jan '13, 04:28) Bob Pay

Maybe you can validate your result using my DEA template here. I made it in Excel, and it may not be perfect because of the rounding limitation in Excel.


answered 24 Jan '13, 00:53

komar's gravatar image

accept rate: 0%

Thank you so much Komar

(24 Jan '13, 02:53) Bob Pay

I've looked at the GAMS model (which seems correct to me, although I don't use GAMS). I also replicated the model in AMPL with the shared data and observed that every DMU scored an efficiency rating of 1.

Three suggestions:

  1. Scale the data. You are mixing very large and not so large numbers in the data, which can lead to numerical stability issues (in your case, mainly rounding errors above what is necessary). I suggest adjusting the units for each input or output (say, from tons of coal to millions of tons of coal) so that the data coefficients don't vary too much in magnitude. I made arbitrary scale adjustments in my AMPL model (dividing some variables by 10^9, some by 10^3, etc.). I think it curtailed some of the rounding error.
  2. You put a lower bound on the output weights, which won't help much. What you need is nonzero lower bounds on the input weights, so that no DMU gets to consume an input "free of charge". I did this in the AMPL model and a few of the DMUs ceased to be efficient (although they were darn close to a score of 1.0). The larger the lower bound on the input weights, the less efficient at least some of the DMUs appear. Which leads me to ...
  3. I've never been fond of DEA, and one reason (among several) is the tendency to assign unrealistic weights to things that have actual documented costs. (This is probably more a flaw in the usage than an intrinsic conceptual problem with DEA.) Judging by their names, the inputs look in most cases like purchased commodities, in which case there should be an associated cost. You could condense all those inputs into a single input represent expenditure of money. Alternatively, you could force the individual input weights to equal or exceed the market cost of the input (adjusting for whatever change in units you do in the process of rescaling).

answered 26 Jan '13, 14:40

Paul%20Rubin's gravatar image

Paul Rubin ♦
accept rate: 19%

Dear professor Rubin

I am so thankful for your great help and it is really kind of you. I am modifying my data and code according to your suggestions, and I hope get a promising result ( I will report later)

To be honest, I ma not very interested in DEA models too, but there was an accident that led me to use this tool. Anyway, I really do not know how thank you.


(26 Jan '13, 15:12) Bob Pay

You're welcome. I need to add a few details. First, using market prices for inputs is tricky (whether to merge them into a single cost value or to set lower bounds on weights) if the DMUs acquire their inputs in different markets. You could end up penalizing a DMU just because they reside in an expensive market.

Second, the DEA model trick of maximizing output value subject to input value = 1 relies on being able to arbitrarily scale all weights by a given constant. You jeopardize that with arbitrary bounds on the weights. You can find some literature on lower bounds.

(27 Jan '13, 09:06) Paul Rubin ♦

Regarding the lower bounds, rather than \(w_i\ge \epsilon\) for each weight \(w_i\), with \(\epsilon\) some positive constant, you might try \(w_i\ge\lambda w_j\) for all \(i\neq j\) with \(\lambda\) a positive constant. That preserves first order homogeneity (so the scaling trick that allows the input weight = 1 constraint for the target is unaffected).

Even with that and scaling the inputs, though, it seems that in your data every DMU is either efficient or pretty darn close.

(27 Jan '13, 09:15) Paul Rubin ♦

I have done your primary modification and got so much better result. About the points on lower bound, yes, what I am doing is a not precise, but as I am in hurry, it is a better way. In future, I will do consider your suggestions. But totally, you are right about the condition of DMUs in this data set, they are all near to efficient. I really want to thank you again. I think I need to enhance my knowledge in area of DEA and LP based ranking models.

(28 Jan '13, 16:25) Bob Pay

You are quite welcome. If you think your problem its resolved, it would help if you accepted one of the solutions (the check mark button) so that the system no longer lists it as unanswered.

(28 Jan '13, 18:57) Paul Rubin ♦
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 23 Jan '13, 16:15

Seen: 1,049 times

Last updated: 28 Jan '13, 18:57

OR-Exchange! Your site for questions, answers, and announcements about operations research.