model_addmin: Additive-min DEA model.

View source: R/model_addmin.R

model_addminR Documentation

Additive-min DEA model.

Description

Solve the weighted version of the additive-min (mADD) model of Aparicio et. al (2007) with different returns to scale. For non constant returns to scale, a modification given by Zhu et al. (2018) is done.

Usage

model_addmin(datadea,
               dmu_eval = NULL,
               dmu_ref = NULL,
               orientation = NULL,
               weight_slack_i = 1,
               weight_slack_o = 1,
               rts = c("crs", "vrs", "nirs", "ndrs"),
               method = c("mf", "milp"),
               extreff = NULL,
               M_d = NULL,
               M_lambda = 1e3,
               maxfr = NULL,
               tol = 1e-6,
               silent = TRUE,
               compute_target = TRUE,
               check_target = FALSE,
               returnlp = FALSE,
               ...)

Arguments

datadea

A deadata object with n DMUs, m inputs and s outputs.

dmu_eval

A numeric vector containing which DMUs have to be evaluated. If NULL (default), all DMUs are considered.

dmu_ref

A numeric vector containing which DMUs are the evaluation reference set. If NULL (default), all DMUs are considered.

orientation

This parameter is either NULL (default) or a string, equal to "io" (input-oriented) or "oo" (output-oriented). It is used to modify the weight slacks. If input-oriented, weight_slack_o are taken 0. If output-oriented, weight_slack_i are taken 0.

weight_slack_i

A value, vector of length m, or matrix m x ne (where ne is the length of dmu_eval) with the weights of the input slacks. If 0, output-oriented.

weight_slack_o

A value, vector of length s, or matrix s x ne (where ne is the length of dmu_eval) with the weights of the output slacks. If 0, input-oriented.

rts

A string, determining the type of returns to scale, equal to "crs" (constant), "vrs" (variable), "nirs" (non-increasing) or "ndrs" (non-decreasing). Under non-increasing or non-decreasing returns to scale, you may set check_target = TRUE because methods are not reliable. Generalized returns to scale are not available.

method

A string with the method: "mf" (default) for maximal friends, or "milp" for the mixed integer linear program of Aparicio et al. (2007). MILP method is faster but very problematic numerically.

extreff

A vector with the extreme efficient DMUs for "milp" method, as it is returned by function extreme_efficient. If NULL (default) this vector is computed internally.

M_d

Numeric, a big positive quantity for "milp" method. It is an upper bound for auxiliary variables named "d" in Aparicio (2007). If NULL (default), it is estimated automatically. A very big value can produce catastrophic cancellations. If the results are not correct or the solver hangs, try to change its value.

M_lambda

Numeric, a big positive quantity for "milp" method. It is an upper bound for lambda variables. A very big value can produce catastrophic cancellations. If the results are not correct or the solver hangs, try to change its value (1e3 by default).

maxfr

A list with the maximal friends sets for "mf" method, as it is returned by function maximal_friends. If NULL (default) this list is computed internally.

tol

Numeric, a tolerance margin for checking efficiency in extreme_efficient or maximal_friends functions, and for checking targets.

silent

Logical. If FALSE, it prints all the messages from function maximal_friends.

compute_target

Logical. If it is TRUE (default), it computes targets.

check_target

Logical. If it is TRUE, it checks the efficiency of targets. If a target is not efficient, the method has failed.

returnlp

Logical. If it is TRUE, it returns the linear problems (objective function and constraints).

...

For compatibility issues.

Note

In this model, the efficiency score is the sum of the slacks. Therefore, a DMU is efficient when the objective value (objval) is zero.

Author(s)

Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.

Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics

Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics

University of Valencia (Spain)

References

Aparicio, J.; Ruiz, J.L.; Sirvent, I. (2007) "Closest targets and minimum distance to the Pareto-efficient frontier in DEA", Journal of Productivity Analysis, 28, 209-218. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11123-007-0039-5")}

Zhu, Q.; Wu, J.; Ji, X.; Li, F. (2018) "A simple MILP to determine closest targets in non-oriented DEA model satisfying strong monotonicity", Omega, 79, 1-8. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.omega.2017.07.003")}

See Also

model_additive, extreme_efficient, maximal_friends

Examples

# Example 1.
data("Airlines")
datadea <- make_deadata(Airlines,
                        inputs = 4:7,
                        outputs = 2:3)
result <- model_addmin(datadea = datadea,
                       method = "milp")
targets(result)

## Not run: 
# Example 2. Directional model with Additive-min model in second stage 
data("Airlines")
datadea <- make_deadata(Airlines,
                        inputs = 4:7,
                        outputs = 2:3)
resdir <- model_basic(datadea = datadea,
                      orientation = "dir",
                      maxslack = FALSE)
proj_input <- targets(resdir)[[1]] + slacks(resdir)[[1]]
proj_output <- targets(resdir)[[2]] - slacks(resdir)[[2]]
nd <- ncol(datadea$dmunames) # Number of DMUs
maxfr <- maximal_friends(datadea = datadea)
for (i in 1:nd) {
  datadea2 <- datadea
  datadea2$input[, i] <- proj_input[i, ]
  datadea2$output[, i] <- proj_output[i, ]
  DMUaux <- model_addmin(datadea = datadea2,
                         method = "mf",
                         maxfr = maxfr,
                         dmu_eval = i)$DMU[[1]]
  resdir$DMU[[i]]$slack_input <- DMUaux$slack_input
  resdir$DMU[[i]]$slack_output <- DMUaux$slack_output
  resdir$DMU[[i]]$target_input <- DMUaux$target_input
  resdir$DMU[[i]]$target_output <- DMUaux$target_output
}
targets(resdir)

## End(Not run)


deaR documentation built on May 2, 2023, 5:13 p.m.

Related to model_addmin in deaR...