| hyperbolicDEA {hyperbolicDEA} | R Documentation | 
Hyperbolic estimation of DEA efficiency scores
Description
Hyperbolic DEA implementation including weight restrictions, non-discretionary variables, gerenralized distance function, external referencing, estimation of slacks and super-efficiency scores. The mathematical and theoretical foundations of the code are presented in the paper "Data Envelopment Analysis and Hyperbolic Efficiency Measures: Extending Applications and Possiblities for Between-Group Comparisons" (2023) by Alexander Öttl, Mette Asmild, and Daniel Gulde.
Usage
hyperbolicDEA(
  X,
  Y,
  RTS = "vrs",
  WR = NULL,
  SLACK = FALSE,
  ACCURACY = 1e-10,
  XREF = NULL,
  YREF = NULL,
  SUPEREFF = FALSE,
  NONDISC_IN = NULL,
  NONDISC_OUT = NULL,
  PARALLEL = 1,
  ALPHA = 0.5
)
Arguments
| X | Vector, matrix or dataframe with DMUs as rows and inputs as columns | 
| Y | Vecotr, matrix or dataframe with DMUs as rows and outputs as columns | 
| RTS | Character string indicating the returns-to-scale, e.g. "crs", "vrs", "ndrs", "nirs", "fdh" | 
| WR | Matrix with one row per homogeneous linear weight restriction in standard form. The columns are ncol(WR) = ncol(Y) + ncol(X). Hence the first ncol(Y) columns are the restrictions on outputs and the last ncol(X) columns are the restrictions on inputs. | 
| SLACK | Boolean variable indicating whether an additional estimation of slacks shall be performed when set to 'TRUE'. Be aware that SLACK estimation can change the lambda values. | 
| ACCURACY | Accuracy value for non-linear programm solver. | 
| XREF | Vector, matrix or dataframe with firms defining the technology as rows and inputs as columns | 
| YREF | Vector, matrix or dataframe with firms defining the technology as rows and outputs as columns | 
| SUPEREFF | Boolean variable indicating whether super-efficiencies shall be estimated | 
| NONDISC_IN | Vector containing column indices of the input matrix that are non-discretionary variables e.g. c(1,3) so the first and the third input are non-discretionary | 
| NONDISC_OUT | Vector containing column indices of the output matrix that are non-discretionary variables e.g. c(1,3) so the first and the third output are non-discretionary | 
| PARALLEL | Integer of amount of cores that should be used for parallel computing (Check availability of computer) | 
| ALPHA | ALPHA can be chosen between [0,1]. It indicates the relative weights given to the distance function to both outputs and inputs when approaching the frontier. More weight on the input orientation is set by alpha < 0.5. Here, the input efficiency score is estimated in the package. To receive the corresponding output efficiency score, estimate: e^((1-alpha)/alpha). Vice versa for an output weighted model alpha > 0.5. The output efficiency is given and the input efficiency can be recovered with: e^(alpha/(1-alpha)) | 
Value
A list object containing the following information:
| eff | Are the estimated efficiency scores for the DMUs under observation stored in a vector with the length nrow(X). | 
| lambdas | Estimated values for the composition of the respective Benchmarks. The lambdas are stored in a matrix with the dimensions nrow(X) x nrow(X), where the row is the DMU under observation and the columns the peers used for the Benchmark. | 
| mus | If WR != NULL, the estimated decision variables for the imposed weight restrictions are stored in a matrix with the dimensions nrow(X) x nrow(WR), where the rows are the DMUs and columns the weight restrictions. If the values are positive, the WR is binding for the respective DMU. | 
| slack | If SLACK = TRUE, the slacks are estimated and stored in a matrix with the dimensions nrow(X) x (ncol(X) + ncol(Y)). Showing the Slack of each DMU (row) for each input and output (column). | 
Examples
X <- c(1,1,2,4,1.5,2,4,3)
Y <- c(1,2,4,4,0.5,2.5,3.5,4)
# we now impose linked weght restrictions. We assume outputs decrease by 
# four units when inputs are reduced by one. And we assume that outputs can
# can be increased by one when inputs are increased by four 
WR <- matrix(c(-4,-1,1,4), nrow = 2, byrow = TRUE)
hyperbolicDEA(X,Y,RTS="vrs", WR = WR)
# Another example having the same data but just estimate the results for DMU 1
# using XREF YREF and and a higher focus on inputs adjusting the ALPHA towards 0.
# Additionally, slacks are estimated.
hyperbolicDEA(X[1],Y[1],RTS="vrs", XREF = X, YREF = Y, WR = WR, ALPHA = 0.1, SLACK = TRUE)