model_addmin | R Documentation |
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.
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,
...)
datadea |
A |
dmu_eval |
A numeric vector containing which DMUs have to be evaluated.
If |
dmu_ref |
A numeric vector containing which DMUs are the evaluation reference set.
If |
orientation |
This parameter is either |
weight_slack_i |
A value, vector of length |
weight_slack_o |
A value, vector of length |
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 |
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 |
M_d |
Numeric, a big positive quantity for "milp" method. It is an upper
bound for auxiliary variables named "d" in Aparicio (2007). If |
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
|
tol |
Numeric, a tolerance margin for checking efficiency in |
silent |
Logical. If |
compute_target |
Logical. If it is |
check_target |
Logical. If it is |
returnlp |
Logical. If it is |
... |
For compatibility issues. |
In this model, the efficiency score is the sum of the slacks. Therefore,
a DMU is efficient when the objective value (objval
) is zero.
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)
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")}
model_additive
, extreme_efficient
,
maximal_friends
# 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.