Learn R Programming

TFDEA (version 0.9.8.3)

DEA: DEA: Data Envelopment Analysis

Description

Estimates a Data Envelopment Analysis frontier and calculates efficiency measures

Usage

DEA(x, y, rts="vrs", orientation="input", slack=TRUE, dual=FALSE, second="none", z=0, round=FALSE, debug=1)

Arguments

x
Inputs or resources used by each decision making unit.
y
Outputs or products of each decision making unit. Must have same number of rows as x
rts
Returns to scale for the application, production technology, or industry studied

vrs

Variable returns to scale, convexity and free disposability

drs

Decreasing returns to scale, convexity, down-scaling and free disposability

crs

Constant returns to scale, convexity and free disposability

irs

Increasing returns to scale, (up-scaling, but not down-scaling), convexity and free disposability
orientation
Orientation of the DEA model - primary emphasis on input-reduction input or output-augmentation output
slack
Optional: slack=TRUE indicates a secondary objective function of maximizing radial slacks to identify weakly efficient DMUs
dual
Optional: dual=TRUE reports back the dual weights (multipliers) for the inputs and outputs
round
Optional: round=TRUE rounds efficiency values to 0 and 1 if close.
second
Optional: Enables an alternate secondary objective function based on lambda and the z argument. The default is none. Other options are min or max which will then minimize or maximize z*lambda while holding efficiency constant for each decision making unit. Note that this precludes slack maximization in the current implementation
z
Optional:a matrix with one column and the same number of rows (decision making units) as x and y, it is only used when second=min or max
debug
Optional: Only for debugging. If debug is a integer greater then zero debug information will be output.

Value

$status
If the solver returned a non-zero status for each decision making unit
$eff
Efficiency score for each decision making unit
$lambda
Lambda values for each decision making unit
$vx
Input weights used by each decision making unit, only returned when dual=TRUE
$uy
Output weights used by each decision making unit, only returned when dual=TRUE
$w
W value for each decision making unit, only returned when dual=TRUE
$sx
Radial input slacks, only returned when slack=TRUE
$sy
Radial output slacks, only returned when slack=TRUE

Details

This DEA function draws inspiration from previous R packages for doing DEA including Benchmarking and FEAR. As such it was designed to use similar parameters and return similar results to allow users to switch between packages. The DEA function was developed to support a function for doing Technology Forecasting using Data Envelopment Analysis or TFDEA. In particular, TFDEA requires an option to resolve multiple optima that is similar to but different from the standard slack maximization approach in Data Envelopment Analysis. This feature is exposed through DEA function's second and z parameters.

References

Bogetoft and Otto; Benchmarking with DEA, SFA, and R; Springer 2011

Paul W. Wilson (2008), FEAR 1.0: A Software Package for Frontier Efficiency Analysis with R, Socio-Economic Planning Sciences 42, 247-254

See Also

SDEA Super-efficiency - an extension to regular DEA that allows for differentiating between efficient DMUs.

TFDEA Technology Forecasting using Data Envelopment Analysis - a method of technology forecasting using past data to predict future capabilities

Examples

Run this code

x <- matrix(c(8,2,4,7,2,8,4,3),ncol=2,dimnames=list(LETTERS[1:4]))
colnames(x) = c("X1", "X2")
y <- matrix(c(1,1,1,1),ncol=1,dimnames=list(LETTERS[1:4],"Y"))

# Simple radial DEA efficiency
DEA(x, y, rts="crs", orientation="input")

# Simple radial DEA efficiency with slack maximization
DEA(x, y, rts="crs", orientation="input", slack=TRUE)

# Example of secondary objective function
x <- matrix(c(8,2,4,7,10,12,2,8,4,3,2,2),ncol=2,dimnames=list(LETTERS[1:6]))
colnames(x) = c("X1", "X2")
y <- matrix(c(1,1,1,1,1,1),ncol=1,dimnames=list(LETTERS[1:6],"Y"))
z <- matrix(c(1:6),ncol=1,dimnames=list(LETTERS[1:6],"Z"))

DEA (x,y,rts="crs", orientation="input", round=TRUE, slack=FALSE,
  second="min", z=z)

DEA (x,y,rts="crs", orientation="input", round=TRUE, slack=FALSE,
  second="max", z=z)

Run the code above in your browser using DataLab