## Sunday, July 26, 2009

### MSF Solver: DEA via Excel plug-in

he Excel plug-in allows only for one model. Data Envelopment Analysis models however consist of a number of small LP models: one for each DMU (Decision-Making Unit). However the individual LP models are very small. So it is reasonable to combine all small LP’s into one bigger LP. Basically we form:

 max +c1'x1 +c2'x2 ... +cK'xK A1x1=b1 A2x2=b2 ... AKxK=bK

A basic CCR model can look like:

// DEA: combine all LPs into bigger LP
Model[
Parameters[Sets,DMU,Inp,Outp],
Parameters[Reals,x[DMU,Inp],y[DMU,Outp]],
Decisions[Reals[0,Infinity],v[DMU,Inp],u[DMU,Outp]],
Decisions[Reals,efficiency[DMU]],
Constraints[
// objectives:
Foreach[{j0,DMU},efficiency[j0]==Sum[{o,Outp},u[j0,o]*y[j0,o]]],
// normalize:
Foreach[{j0,DMU},Sum[{in,Inp}, v[j0,in]*x[j0,in]] == 1],
// limit:
Foreach[{i,DMU},{j0,DMU},Sum[{o,Outp}, u[j0,o]*y[i,o]] <= Sum[{in,Inp}, v[j0,in]*x[i,in]]]
],
Goals[Maximize[totaleff -> Sum[{j0,DMU},efficiency[j0]]]]
]

Of course if you prefer to work at the API level there is no problem in solving a series of LP’s.

The Excel interface makes it easy to sort the results. In this case that is done with the Filter facility in Excel.

(click to enlarge)