Why give the same performance of all units

Archive of Gamsworld Google Group
Post Reply
Archiver
User
User
Posts: 7876
Joined: 7 years ago

Why give the same performance of all units

Post by Archiver »


I wrote DEA model but offers the same performance of all units and not error. When inputs or outputs change, I change and efficiency of all units with the same error again not.
The model gives a performance of all units and not error as follows:
sets
i "inputs" /i1 "doctors",i2 "nurses"/
r "outputs" /o1 "outpatients",o2 "inpatients"/
j "units" /dmu01*dmu12/
is(j) "selected units"
scalar epsilon "non-archimedean value" /0.005/;
parameters
*let dmu01 be under evaluation
xo(i) "inputs of under evaluation dmu" /i1 20,i2 151/
yo(r) "outputs of under evaluation dmu" /o1 100,o2 90/;

table x(i,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1 20 19 25 27 22 55 33 31 30 50 53 38
i2 151 131 160 168 158 255 235 206 244 268 306 284;
table y(r,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1 100 150 160 180 94 230 220 152 190 250 260 250
o2 90 50 55 72 66 90 88 80 100 100 147 120;
variables
v(i) "output weights"
u(r) "input weights"
z "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective..z=e=(sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));
const(j)..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model fractionalccr_model /all/;
solve fractionalccr_model using nlp maximizing z;
set jj(j) set of units to analyze /dmu01*dmu12/;
parameters efficiency summary report;
loop(jj,is(jj)=yes;
solve fractionalccr_model using nlp max z;
efficiency(jj)=z.l;
is(jj)=no;);
option decimals=4;
display efficiency ;


The inputs include 12 unit, 21 doctor and 100 nurses put all their performance against 0.7875 has and not error.
The problem is that everyone gives the same performance and not give errors?

--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
Archiver
User
User
Posts: 7876
Joined: 7 years ago

RE: Why give the same performance of all units

Post by Archiver »


Hi Vafa

This will not work properly as in the model equations you use j and in your loop you use jj. You should remove the index j from your model.

In the loop you assign for the parameters without j the value from your table and you solve the model. Here is the code (note that in your model equations there is no j left and I replace x(i,j) and y(r,j) by xl(i) and y(r).

Cheers

Renger



parameter yl(r) 'Loop value for y(j,r)',

xl(i) 'Loop value for x(j,x)';



equations

objective

const;



objective..

z=e= (sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));



const..

sum(r,u(r)*yl(r))/sum(i,v(i)*xl(i))=l=1;



model fractionalccr_model /all/;



parameters efficiency summary report;



loop(j,

xl(i) = x(i,j);

yl(r) = y(r,j);

solve fractionalccr_model using nlp max z;

efficiency(j)=z.l;

);

option decimals=4;

display efficiency ;



From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On Behalf Of Vafa Mousavi
Sent: Tuesday, April 26, 2016 2:58 PM
To: gamsworld
Subject: Why give the same performance of all units



I wrote DEA model but offers the same performance of all units and not error. When inputs or outputs change, I change the performance of all units are identical and not error again.
All units gives a performance model that does not error as follows:

sets
i "inputs" /i1 "doctors",i2 "nurses"/
r "outputs" /o1 "outpatients",o2 "inpatients"/
j "units" /dmu01*dmu12/
is(j) "selected units"
scalar epsilon "non-archimedean value" /0.005/;
parameters
*let dmu01 be under evaluation
xo(i) "inputs of under evaluation dmu" /i1 20,i2 151/
yo(r) "outputs of under evaluation dmu" /o1 100,o2 90/;

table x(i,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1 20 19 25 27 22 55 33 31 30 50 53 38
i2 151 131 160 168 158 255 235 206 244 268 306 284;
table y(r,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1 100 150 160 180 94 230 220 152 190 250 260 250
o2 90 50 55 72 66 90 88 80 100 100 147 120;
variables
v(i) "output weights"
u(r) "input weights"
z "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective..z=e=(sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));
const(j)..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model fractionalccr_model /all/;
solve fractionalccr_model using nlp maximizing z;
set jj(j) set of units to analyze /dmu01*dmu12/;
parameters efficiency summary report;
loop(jj,is(jj)=yes;
solve fractionalccr_model using nlp max z;
efficiency(jj)=z.l;
is(jj)=no;);
option decimals=4;
display efficiency ;



The inputs include 12 unit, 21 doctor and 100 nurses put all their performance against 0.7875 has and not error.

The problem is that everyone gives the same performance and not give errors?

--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.

--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
Archiver
User
User
Posts: 7876
Joined: 7 years ago

Re: Why give the same performance of all units

Post by Archiver »


Hi Vafa

Your model just compute efficiency of DMU1 many times. here is the corrected code

Sets
i "inputs" /i1 "doctors",i2 "nurses"/
r "outputs" /o1 "outpatients",o2 "inpatients"/
j "units" /dmu01*dmu12/
is(j) "selected units";
is(j)=yes;
Alias(j,jj);

scalar epsilon "non-archimedean value" /0.005/;

table x(i,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1 20 19 25 27 22 55 33 31 30 50 53 38
i2 151 131 160 168 158 255 235 206 244 268 306 284;
table y(r,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1 100 150 160 180 94 230 220 152 190 250 260 250
o2 90 50 55 72 66 90 88 80 100 100 147 120;
variables
v(i) "output weights"
u(r) "input weights"
z "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective(is) ..z=e=sum(r,u(r)*y(r,is))/sum(i,v(i)*x(i,is));
const(j) ..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model fractionalccr_model /all/;
solve fractionalccr_model using nlp maximizing z;
parameters efficiency summary report;

is(j)=no;

loop(jj,
is(jj)=yes;

solve fractionalccr_model using nlp max z;
efficiency(jj)=z.l;

is(jj)=no);

option decimals=4;
display efficiency ;



On Tue, Apr 26, 2016 at 6:17 PM, Renger van Nieuwkoop wrote:

Hi Vafa

This will not work properly as in the model equations you use j and in your loop you use jj. You should remove the index j from your model.

In the loop you assign for the parameters without j the value from your table and you solve the model. Here is the code (note that in your model equations there is no j left and I replace x(i,j) and y(r,j) by xl(i) and y(r).

Cheers

Renger



parameter yl(r) 'Loop value for y(j,r)',

xl(i) 'Loop value for x(j,x)';



equations

objective

const;



objective..

z=e= (sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));



const..

sum(r,u(r)*yl(r))/sum(i,v(i)*xl(i))=l=1;



model fractionalccr_model /all/;



parameters efficiency summary report;



loop(j,

xl(i) = x(i,j);

yl(r) = y(r,j);

solve fractionalccr_model using nlp max z;

efficiency(j)=z.l;

);

option decimals=4;

display efficiency ;



From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On Behalf Of Vafa Mousavi
Sent: Tuesday, April 26, 2016 2:58 PM
To: gamsworld
Subject: Why give the same performance of all units



I wrote DEA model but offers the same performance of all units and not error. When inputs or outputs change, I change the performance of all units are identical and not error again.
All units gives a performance model that does not error as follows:

sets
i "inputs" /i1 "doctors",i2 "nurses"/
r "outputs" /o1 "outpatients",o2 "inpatients"/
j "units" /dmu01*dmu12/
is(j) "selected units"
scalar epsilon "non-archimedean value" /0.005/;
parameters
*let dmu01 be under evaluation
xo(i) "inputs of under evaluation dmu" /i1 20,i2 151/
yo(r) "outputs of under evaluation dmu" /o1 100,o2 90/;

table x(i,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1 20 19 25 27 22 55 33 31 30 50 53 38
i2 151 131 160 168 158 255 235 206 244 268 306 284;
table y(r,j)
dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1 100 150 160 180 94 230 220 152 190 250 260 250
o2 90 50 55 72 66 90 88 80 100 100 147 120;
variables
v(i) "output weights"
u(r) "input weights"
z "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective..z=e=(sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));
const(j)..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model fractionalccr_model /all/;
solve fractionalccr_model using nlp maximizing z;
set jj(j) set of units to analyze /dmu01*dmu12/;
parameters efficiency summary report;
loop(jj,is(jj)=yes;
solve fractionalccr_model using nlp max z;
efficiency(jj)=z.l;
is(jj)=no;);
option decimals=4;
display efficiency ;



The inputs include 12 unit, 21 doctor and 100 nurses put all their performance against 0.7875 has and not error.

The problem is that everyone gives the same performance and not give errors?

--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.

--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.


--
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
Post Reply