本人打算使用DEA的CCR模型和C²GS²模型进行效率计算,投入指标是2个,输入指标是2个,DMU是12个。
编写代码之后运行发现两个模型中theta都有出现大于1的值,还有一个0值。
把程序贴在下面,请大家帮忙修正,万分感谢!
1.CCR模型
clear
load('数据.mat')
n=size(x,2);m=size(x,1);s=size(y,1);
f=[zeros(1,n) zeros(1,m+s) 1];
lb=zeros(n+m+s+1,1);ub=[];
lb(n+m+s+1)=-Inf;
A=zeros(1,n+m+s+1);
b=0;
for i=1:n;
aeq=[x eye(m) zeros(m,s) -x(:,i)
y zeros(s,m) -eye(s) zeros(s,1)];
beq=[zeros(m,1)
y(:,i)];
w(:,i)=linprog(f,A,b,aeq,beq,lb,ub);
end
w
lambda=w(1:n,:)
s_minus=w(n+1:n+m,:)
s_plus=w(n+m+1:n+m+s,:)
theta=w(n+m+s+1,:)
2.C²GS²模型
clear
load('数据.mat')
n=size(x,2);m=size(x,1);s=size(y,1);
f=[zeros(1,n) zeros(1,m+s) 1];
lb=zeros(n+m+s+1,1);ub=[];
A=zeros(1,n+m+s+1);
b=0;
for i=1:n;
aeq=[x eye(m) zeros(m,s) -x(:,i)
y zeros(s,m) -eye(s) zeros(s,1)
ones(1,n) zeros(1,m) zeros(1,s) 0];
beq=[zeros(m,1)
y(:,i)
1];
w(:,i)=linprog(f,A,b,aeq,beq,lb,ub);
end
w
lambda=w(1:n,:)
s_minus=w(n+1:n+m,:)
s_plus=w(n+m+1:n+m+s,:)
theta=w(n+m+s+1,:)