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 `TRANSPOSE=TRUE` the input matrix is transposed to input x firm.

`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 `TRANSPOSE=TRUE` the output matrix is transposed to output x firm.

`RTS`

A text string or a number defining the underlying DEA technology / returns to scale assumption.

 1 vrs Variable returns to scale, convexity and free disposability 2 drs Decreasing returns to scale, convexity, down-scaling and free disposability 3 crs Constant returns to scale, convexity and free disposability 4 irs Increasing returns to scale, (up-scaling, but not down-scaling), convexity and free disposability.
`ORIENTATION`

Input efficiency "in" (1), output efficiency "out" (2), and graph efficiency "graph" (3) (not yet implemented). For use with `DIRECT` an additional option is "in-out" (0). In this case, "graph" is not feasible

`XREF`

Input of the firms determining the technology, defaults to `X`

`YREF`

Output of the firms determining the technology, defaults to `Y`

`FRONT.IDX`

Index for firms determining the technology

`DUAL`

Matrix of order “number of input 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 implyies 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, `DIRECT` is either a scalar, an array, or a matrix with non-negative elements.

NB Not yet implemented

`TRANSPOSE`

Input and output matrices are treated as firms times goods for the default value `TRANSPOSE=FALSE` corresponding to the standard in R for statistical models. When `TRUE` data matrices shall be transposed to good times firms matrices as is normally used in LP formulation of the problem.

`LP`

Only for debugging. If `LP=TRUE` then input and output for the LP program are written to standard output for each unit.

`CONTROL`

Possible controls to lpSolveAPI, see the documentation for that package.

`LPK`

When `LPK=k` then a mps file is written for firm `k`; it can be used as input to an alternative LP solver just to check the our results.

### 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 `RTS` in the call `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.

### 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

`dea`

### 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))
dea.plot.isoquant(x[,1],x[,2],txt=1:dim(x))
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)+dim(y)-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)

```

[Package Benchmarking version 0.29 Index]