dea.dual {Benchmarking} | R Documentation |
Dual DEA models and assurance regions
Description
Solution of dual DEA models, possibly with partial value information given as restrictions on the ratios (assurance regions)
Usage
dea.dual(X, Y, RTS = "vrs", ORIENTATION = "in",
XREF = NULL, YREF = NULL,
FRONT.IDX = NULL, DUAL = NULL, DIRECT=NULL,
TRANSPOSE = FALSE, LP = FALSE, CONTROL=NULL, LPK=NULL)
Arguments
X |
Inputs of firms to be evaluated, a K x m matrix of
observations of K firms with m inputs (firm x input). In case
| ||||||||||||
Y |
Outputs of firms to be evaluated, a K x n matrix of
observations of K firms with n outputs (firm x input). In case
| ||||||||||||
RTS |
A text string or a number defining the underlying DEA technology / returns to scale assumption.
| ||||||||||||
ORIENTATION |
Input efficiency "in" (1), output efficiency "out"
(2), and graph efficiency "graph" (3) (not yet implemented). For
use with | ||||||||||||
XREF |
Input of the firms determining the technology, defaults to
| ||||||||||||
YREF |
Output of the firms determining the technology, defaults
to | ||||||||||||
FRONT.IDX |
Index for firms determining the technology | ||||||||||||
DUAL |
Matrix of order “number of inputs plus number of outputs minus 2” times 2. The first column is the lower bound and the second column is the upper bound for the restrictions on the multiplier ratios. The ratios are relative to the first input and the first output, respectively. This implies that there is no restriction for neither the first input nor the first output so that the number of restrictions is two less than the total number of inputs and outputs. | ||||||||||||
DIRECT |
Directional efficiency, NB Not yet implemented | ||||||||||||
TRANSPOSE |
Input and output matrices are treated as firms
times goods for the default value | ||||||||||||
LP |
Only for debugging. If | ||||||||||||
CONTROL |
Possible controls to lpSolveAPI, see the documentation for that package. | ||||||||||||
LPK |
When |
Details
Solved as an LP program using the package lpSolveAPI. The
method dea.dual.dea
calls the method dea
with the option
DUAL=TRUE
.
Value
eff |
The efficiencies |
objval |
The objective value as returned from the LP problem, normally the same as eff |
RTS |
The return to scale assumption as in the option |
ORIENTATION |
The efficiency orientation as in the call |
TRANSPOSE |
As in the call |
u |
Dual values, prices, for inputs |
v |
Dual values, prices, for outputs |
gamma |
The values of gamma, the shadow price(s) for returns to scale restriction |
sol |
Solution of all variables as one component, sol=c(u,v,gamma). |
Note
Note that the dual values are not unique for extreme points in the technology set. In this case the value of the calculated dual variable can depend on the order of the complete efficient firms.
If a numerical problem occurs, status=5, or if no solution can be found,
the best solution is often to scale the input X
and output
Y
yourself or use the option CONTROL
to change scaling in
the program itself, as described in the notes for dea
.
Author(s)
Peter Bogetoft and Lars Otto larsot23@gmail.com
References
Bogetoft and Otto; Benchmarking with DEA, SFA, and R; Springer 2011. Sect. 5.10: Partial value information
See Also
Examples
x <- matrix(c(2,5 , 1,2 , 2,2 , 3,2 , 3,1 , 4,1), ncol=2,byrow=TRUE)
y <- matrix(1,nrow=dim(x)[1])
dea.plot.isoquant(x[,1],x[,2],txt=1:dim(x)[1])
segments(0,0, x[,1], x[,2], lty="dotted")
e <- dea(x,y,RTS="crs",SLACK=TRUE)
ed <- dea.dual(x,y,RTS="crs")
print(cbind("e"=e$eff,"ed"=ed$eff, peers(e), lambda(e),
e$sx, e$sy, ed$u, ed$v), digits=3)
dual <- matrix(c(.5, 2.5), nrow=dim(x)[2]+dim(y)[2]-2, ncol=2, byrow=TRUE)
er <- dea.dual(x,y,RTS="crs", DUAL=dual)
print(cbind("e"=e$eff,"ar"=er$eff, lambda(e), e$sx, e$sy, er$u,
"ratio"=er$u[,2]/er$u[,1],er$v),digits=3)