$title Data Envelopment Analysis - DEA (DEA,SEQ=192) $ontext Data Envelopment Analysis (DEA) is a technique for measuring the relative performance of organizational units where presence of multiple inputs and outputs makes comparison difficult. efficiency = weighted sum of output / weighted sum of input Find weights that maximize the efficiency for one unit while ensuring that no other units has an efficiency < 1 using these weights. A primal and dual formulation is presented. Dyson, Thanassoulis, and Boussofiane, A DEA Tutorial. Warwick Business School $offtext sets i units / Depot1*Depot20 / j inputs and outputs / stock, wages, issues, receipts, reqs / ji(j) inputs / stock, wages / jo(j) outputs / issues, receipts, reqs /; alias(k,i); Table data(i,j) stock wages issues receipts reqs Depot1 3 5 40 55 30 Depot2 2.5 4.5 45 50 40 Depot3 4 6 55 45 30 Depot4 6 7 48 20 60 Depot5 2.3 3.5 28 50 25 Depot6 4 6.5 48 20 65 Depot7 7 10 80 65 57 Depot8 4.4 6.4 25 48 30 Depot9 3 5 45 64 42 Depot10 5 7 70 65 48 Depot11 5 7 45 65 40 Depot12 2 4 45 40 44 Depot13 5 7 65 25 35 Depot14 4 4 38 18 64 Depot15 2 3 20 50 15 Depot16 3 6 38 20 60 Depot17 7 11 68 64 54 Depot18 4 6 25 38 20 Depot19 3 4 45 67 32 Depot20 3 6 57 60 40 ; parameter slice(j) slice of data eff_k(i) efficiency report; Variables z efficiency lam(i) dual weights; positive variables lam; Equations dii(ji) input duals dio(jo) output dual; * dual model dii(ji).. sum(i, lam(i)*data(i,ji)) =l= z*slice(ji); dio(jo).. sum(i, lam(i)*data(i,jo)) =g= slice(jo); model deadc dual with CRS / dii, dio /; set headers report / modelstat, solvestat, objval /; parameter scenrep(k,headers) solution report summary scopt / SkipBaseCase 1 /; set dict / k. scenario.'' scopt. opt. scenrep slice. param. data z. level. eff_k /; slice(j) = 0; option lp=gurobi; solve deadc using lp min z scenario dict; display scenrep,eff_k; $if not set runtraditional $exit parameter rep summary report; loop(k, slice(j) = data(k,j); solve deadc using lp minimizing z ; rep(k,'modelstat') = deadc.modelstat; rep(k,'solvestat') = deadc.modelstat; rep(k,'objval') = deadc.objval; ); display rep;