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)


[Package hyperbolicDEA version 1.0.0 Index]