写在前面:
博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。
1. 引言
关于数据包络分析法的CCR模型已经在上文中进行了介绍,CCR模型是规模收益不变(CRS)假设下的径向EDA模型,即模型中的λ \lambdaλ满足λ ⩾ 0 \lambda \geqslant 0λ⩾0,具体的模型原理可参阅链接: 数据包络分析——CCR模型。
但是在实际生产过程中,生产技术的规模收益并非CRS,若采用CRS假设,得出的技术效率并非完全是纯技术效率,而是包含了规模效率成分的综合效率。
一般来说,生产技术的规模收益要先后经历规模收益递增(IRS)、规模收益不变(CRS)、规模收益递减(DRS)三个阶段。如果无法确定研究样本处于哪个阶段,那么评价技术效率是应该选择可变规模收益(VRS)模型,即模型中的λ \lambdaλ满足∑ λ = 1 \sum \lambda=1∑λ=1。此时VRS模型得出的技术效率就是纯技术效率。
2. 模型建立
BCC模型即规模收益可变(VRS)假设下的径向DEA模型。它与CCR模型的区别就是增加了等式约束∑ λ = 1 \sum \lambda=1∑λ=1。
投入导向的BCC对偶模型:
min θ \min \thetaminθs . t . { ∑ i = 1 n λ i x i j ⩽ θ x i j ∑ i = 1 n λ i y i r ⩾ y k r ∑ i = 1 n λ i = 1 λ i ⩾ 0 , j = 1 , ⋯ , m ; r = 1 , ⋯ , 3 q s.t.\left\{\begin{array}{c}\sum_{i=1}^{n} \lambda_{i} x_{i j} \leqslant \theta x_{i j} \\ \sum_{i=1}^{n} \lambda_{i} y_{i r} \geqslant y_{k r} \\ \sum_{i=1}^{n} \lambda_{i}=1 \\ \lambda_{i} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, 3 q\end{array}\right.s.t.⎩⎨⎧∑i=1nλixij⩽θxij∑i=1nλiyir⩾ykr∑i=1nλi=1λi⩾0,j=1,⋯,m;r=1,⋯,3q
其中,k = 1 , ⋯ , n k=1, \cdots, nk=1,⋯,n。
产出导向的BCC对偶模型:
max ϕ \max \phimaxϕs . t . { ∑ i = 1 n λ i x i j ⩽ x i j ∑ i = 1 n λ i y i r ⩾ ϕ y k r ∑ i = 1 n λ i = 1 λ i ⩾ 0 , j = 1 , ⋯ , m ; r = 1 , ⋯ , 3 q s.t.\left\{\begin{array}{c}\sum_{i=1}^{n} \lambda_{i} x_{i j} \leqslant x_{i j} \\ \sum_{i=1}^{n} \lambda_{i} y_{i r} \geqslant \phi y_{k r} \\ \sum_{i=1}^{n} \lambda_{i}=1 \\ \lambda_{i} \geqslant 0, j=1, \cdots, m ; r=1, \cdots, 3 q\end{array}\right.s.t.⎩⎨⎧∑i=1nλixij⩽xij∑i=1nλiyir⩾ϕykr∑i=1nλi=1λi⩾0,j=1,⋯,m;r=1,⋯,3q其中,k = 1 , ⋯ , n k=1, \cdots, nk=1,⋯,n。
3. 模型求解
还是以下面这个问题为例:
某市教委需要对六所重点中学进行评价,其相应的指标如表所示。表中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均科技得分是输出指标。请根据这些指标,评价哪些学校是相对有效的。
根据上述建立的模型,编写投入导向的BCC模型的MATLAB程序如下:
%投入导向BCC w=[]; for i=1:n f=[zeros(1,n) 1]; A=[X -X(:,i); -Y zeros(q,1)]; b=[zeros(1,m) -Y(:,i)']'; Aeq=[ones(1,n) 0]; beq=1; LB=[zeros(n+1,1)]; UB=[]; w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB); end BCC_IN=w(n+1,:)'
得到的结果为:1,0.9804,1,0.9395,1,1
产出导向的BCC模型的MATLAB程序如下:
%产出导向BCC w=[]; for i=1:n f=[zeros(1,n) -1]; A=[X zeros(m,1); -Y Y(:,i)]; b=[X(:,i)' zeros(1,q)]'; Aeq=[ones(1,n) 0]; beq=1; LB=[zeros(n+1,1)]; UB=[]; w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB); end BCC_OUT=1./w(n+1,:)'
得到的结果为:1,0.9948,1,0.9466,1,1
观察投入导向的BCC模型和产出导向的BCC模型结果可以发现,学校A、C、E、F这几个学校的投入产出是比较有效的。