Type: | Package |
Title: | Stochastic Data Envelopment Analysis |
Version: | 1.0.0 |
Maintainer: | Vicente Bolós <vicente.bolos@uv.es> |
Description: | Set of functions for Stochastic Data Envelopment Analysis. Chance constrained versions of radial, directional and additive DEA models are implemented, as long as super-efficiency models. See: Cooper, W.W.; Deng, H.; Huang, Z.; Li, S.X. (2002). <doi:10.1057/palgrave.jors.2601433>, Bolós, V.J.; Benítez, R.; Coll-Serrano, V. (2024) <doi:10.1016/j.orp.2024.100307>. |
License: | GPL-2 | GPL-3 [expanded from: GPL] |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 7.3.2 |
Depends: | R (≥ 3.5) |
Imports: | optiSolve, deaR |
NeedsCompilation: | no |
Packaged: | 2025-09-09 15:23:51 UTC; Vicente |
Author: | Vicente Bolós [aut, cre], Vicente Coll-Serrano [aut], Rafael Benítez Suárez [aut] |
Repository: | CRAN |
Date/Publication: | 2025-09-14 16:10:08 UTC |
Data: Cooper et al. (2001).
Description
Data of automobile industries collected from the Statistical Year Book of China of the Chinese Bureau of Statistics. Each year is treated as a DMU.
Usage
data("Automobile")
Format
Data frame with 17 rows and 4 columns. Definition of inputs (X) and output (Y):
- X1 = Labor
Expressed in units of 1000 persons.
- X2 = Capital
Stated in units of 1 million Ren Min Bi (Chinese monetary unit) adjusted to 1991 prices.
- Y = Output
Stated in units of 1 million Ren Min Bi (Chinese monetary unit) adjusted to 1991 prices.
Author(s)
Vicente Bolos (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benitez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
Source
Cooper, W.W.; Denga, H.; Gua, B.; Lib, S.; Thrall, R.M. (2001). "Using DEA to improve the management of congestion in Chinese industries (1981-1997)", Socio-Economic Planning Sciences, 35(4), 227-242.
See Also
make_deadata_stoch
, modelstoch_radial
Data: Cooper et al. (2001).
Description
Data of textile industries collected from the Statistical Year Book of China of the Chinese Bureau of Statistics. Each year is treated as a DMU.
Usage
data("Textile")
Format
Data frame with 17 rows and 4 columns. Definition of inputs (X) and output (Y):
- X1 = Labor
Expressed in units of 1000 persons.
- X2 = Capital
Stated in units of 1 million Ren Min Bi (Chinese monetary unit) adjusted to 1991 prices.
- Y = Output
Stated in units of 1 million Ren Min Bi (Chinese monetary unit) adjusted to 1991 prices.
Author(s)
Vicente Bolos (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benitez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
Source
Cooper, W.W.; Denga, H.; Gua, B.; Lib, S.; Thrall, R.M. (2001). "Using DEA to improve the management of congestion in Chinese industries (1981-1997)", Socio-Economic Planning Sciences, 35(4), 227-242.
See Also
make_deadata_stoch
, modelstoch_radial
Objective scores
Description
Extract the scores (optimal objective values) of the evaluated DMUs from a stochastic DEA solution. Note that these scores may not always be interpreted as efficiencies.
Usage
## S3 method for class 'dea_stoch'
efficiencies(x, ...)
Arguments
x |
Object of class |
... |
Other options (for compatibility reasons) |
Value
A matrix with the scores (optimal objective values).
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
Examples
# Example 1.
library(deaR)
data("Coll_Blasco_2006")
ni <- 2 # number of inputs
no <- 2 # number of outputs
data_example <- make_deadata(datadea = Coll_Blasco_2006,
ni = ni,
no = no)
nd <- length(data_example$dmunames) # number of DMUs
var_input <- matrix(1, nrow = ni, ncol = nd)
var_output <- matrix(1, nrow = no, ncol = nd)
data_stoch <- make_deadata_stoch(datadea = data_example,
var_input = var_input,
var_output = var_output)
Collstoch <- modelstoch_radial(data_stoch)
efficiencies(Collstoch)
make_deadata_stoch
Description
This function creates, from a deadata
object, a
deadata_stoch
object by adding the corresponding covariance matrices.
These objects are prepared to be passed to a modelstoch_* function.
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values.
We suppose that \tilde{x}_{ij}
and \tilde{y}_{rj}
follow a multivariate
probability distribution with means E(\tilde{x}_{ij})=x_{ij}
, E(\tilde{y}_{rj})=y_{rj}
and covariance matrix
\Delta = \begin{pmatrix}
\Delta ^{II}_{11} & \cdots & \Delta ^{II}_{1m} & \Delta ^{IO}_{11} & \cdots & \Delta ^{IO}_{1s} \\
\vdots & & \vdots & \vdots & & \vdots \\
\Delta ^{II}_{m1} & \cdots & \Delta ^{II}_{mm} & \Delta ^{IO}_{m1} & \cdots & \Delta ^{IO}_{ms} \\ \\
\Delta ^{OI}_{11} & \cdots & \Delta ^{OI}_{1m} & \Delta ^{OO}_{11} & \cdots & \Delta ^{OO}_{1s} \\
\vdots & & \vdots & \vdots & & \vdots \\
\Delta ^{OI}_{s1} & \cdots & \Delta ^{OI}_{sm} & \Delta ^{OO}_{s1} & \cdots & \Delta ^{OO}_{ss} \\
\end{pmatrix}_{n(m+s)\times n(m+s)}
where \Delta ^{II}_{ik}
, \Delta ^{OO}_{rp}
, \Delta ^{IO}_{ir}
and \Delta ^{OI}_{ri}
are n\times n
matrices, for 1\leq i,k\leq m
and 1\leq r,p\leq s
, such that
\left( \Delta ^{II}_{ik}\right) _{jq}=\mathrm{Cov}(\tilde{x}_{ij}, \tilde{x}_{kq}),
\left( \Delta ^{OO}_{rp}\right) _{jq}=\mathrm{Cov}(\tilde{y}_{rj}, \tilde{y}_{pq}),
\left( \Delta ^{IO}_{ir}\right) _{jq}=\left( \Delta ^{OI}_{ri}\right) _{qj}
=\mathrm{Cov}(\tilde{x}_{ij}, \tilde{y}_{rq}),
with 1\leq j,q\leq n
.
- If we have the covariances matrix in the general form above, it can be introduced
directly by parameter cov_matrix
. Since this matrix is supposed to be
symmetric, only values above the diagonal are read, ignoring values below the diagonal.
- Alternatively, we can introduce the covariances matrix using parameters cov_II
,
cov_OO
and cov_IO
, that are 4-dimensional arrays of size m\times
m\times n\times n
, s\times s\times n\times n
and m\times s\times n\times n
,
respectively, such that
\texttt{cov\_II[i, k, , ]}=\Delta ^{II}_{ik},
\texttt{cov\_OO[r, p, , ]}=\Delta ^{OO}_{rp},
\texttt{cov\_IO[i, r, , ]}=\Delta ^{IO}_{ir},
for 1\leq i,k\leq m
and 1\leq r,p\leq s
. Since matrices \Delta ^{II}_{ii}
and \Delta
^{OO}_{rr}
are supposed to be symmetric, only values above the diagonal are
read, ignoring values below the diagonal. Moreover, since \Delta ^{II}_{ki}
is the transpose of \Delta ^{II}_{ik}
, and \Delta ^{OO}_{pr}
is
the transpose of \Delta ^{OO}_{rp}
, only matrices \Delta ^{II}_{ik}
and \Delta ^{OO}_{rp}
with i\leq k
and r\leq p
are necessary,
ignoring those with i>k
and r>p
.
- If covariances between different inputs/outputs are zero, we can make use of
parameters cov_input
and cov_output
, that are arrays of size
m\times n\times n
and s\times n\times n
, respectively, such that
\texttt{cov\_input[i, , ]}=\Delta ^{II}_{ii},
\texttt{cov\_output[r, , ]}=\Delta ^{OO}_{rr},
for 1\leq i\leq m
and 1\leq r\leq s
. By symmetry of \Delta
^{II}_{ii}
and \Delta ^{OO}_{rr}
, only values above the diagonal are
read, ignoring values below the diagonal.
- Finally, if all the variables are independent then the covariances matrix is
diagonal. Hence, we might use parameters var_input
and var_output
,
that are matrices of size m\times n
and s\times n
, respectively,
such that
\texttt{var\_input[i, j]}=\mathrm{Var}\left( \tilde{x}_{ij}\right) ,
\texttt{var\_output[r, j]}=\mathrm{Var}\left( \tilde{y}_{rj}\right) ,
for 1\leq i\leq m
, 1\leq r\leq s
and 1\leq j\leq n
.
Usage
make_deadata_stoch(datadea = NULL,
var_input = NULL,
var_output = NULL,
cov_input = NULL,
cov_output = NULL,
cov_II = NULL,
cov_OO = NULL,
cov_IO = NULL,
cov_matrix = NULL)
Arguments
datadea |
The |
var_input |
A matrix of size |
var_output |
A matrix of size |
cov_input |
An array of size |
cov_output |
An array of size |
cov_II |
An array of size |
cov_OO |
An array of size |
cov_IO |
An array of size |
cov_matrix |
A matrix of size |
Value
An object of class deadata_stoch
.
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Cooper, W.W.; Huang, Z.; Lelas, V.; Li, S.X.; Olesen, O.B. (1998). “Chance Constrained Programming Formulations for Stochastic Characterizations of Efficiency and Dominance in DEA", Journal of Productivity Analysis, 9, 53-79.
El-Demerdash, B.E.; El-Khodary, I.A.; Tharwat, A.A. (2013). "Developing a Stochastic Input Oriented Data Envelopment Analysis (SIODEA) Model", International Journal of Advanced Computer Science and Applications, Vol.4, No. 4, 40-44.
Examples
# Example 1
library(deaR)
data("Coll_Blasco_2006")
ni <- 2 # number of inputs
no <- 2 # number of outputs
data_example <- make_deadata(datadea = Coll_Blasco_2006,
ni = ni,
no = no)
nd <- length(data_example$dmunames) # number of DMUs
# All variances are 1.
var_input <- matrix(1, nrow = ni, ncol = nd)
var_output <- matrix(1, nrow = no, ncol = nd)
data_stoch <- make_deadata_stoch(datadea = data_example,
var_input = var_input,
var_output = var_output)
# All covariances are 1.
cov_input <- array(1, dim = c(ni, nd, nd))
cov_output <- array(1, dim = c(no, nd, nd))
data_stoch2 <- make_deadata_stoch(datadea = data_example,
cov_input = cov_input,
cov_output = cov_output)
# Example 2. Deterministic data with one stochastic input,
# from El-Demerdash et al. (2013).
library(deaR)
dmunames <- c("A", "B", "C")
nd <- length(dmunames) # Number of DMUs
inputnames <- c("Professors", "Budget")
ni <- length(inputnames) # Number of Inputs
outputnames <- c("Diplomas", "Bachelors", "Masters")
no <- length(outputnames) # Number of Outputs
X <- matrix(c(5, 14, 8, 15, 7, 12),
nrow = ni, ncol = nd, dimnames = list(inputnames, dmunames))
Y <- matrix(c(9, 4, 16, 5, 7, 10, 4, 9, 13),
nrow = no, ncol = nd, dimnames = list(outputnames, dmunames))
datadea <- make_deadata(inputs = X,
outputs = Y)
covX <- array(0, dim = c(2, 3, 3))
# The 2nd input is stochastic.
# Since the corresponding 3x3 covariances matrix is symmetric, only values
# above the diagonal are necessary.
covX[2, 1, ] <- c(1.4, 0.9, 0.6)
covX[2, 2, 2:3] <- c(1.5, 0.7)
covX[2, 3, 3] <- 1.2
# Alternatively (note that values below the diagonal are ignored).
covX[2, , ] <- matrix(c(1.4, 0.9, 0.6, 0, 1.5, 0.7, 0, 0, 1.2),
byrow = TRUE)
datadea_stoch <- make_deadata_stoch(datadea,
cov_input = covX)
# Example 3. 5 random observations of 3 DMUs with 2 inputs and 2 outputs.
library(deaR)
# Generate random observations.
input1 <- data.frame(I1D1 = rnorm(5, mean = sample(5:10, 1)),
I1D2 = rnorm(5, mean = sample(5:10, 1)),
I1D3 = rnorm(5, mean = sample(5:10, 1)))
input2 <- data.frame(I2D1 = rnorm(5, mean = sample(5:10, 1)),
I2D2 = rnorm(5, mean = sample(5:10, 1)),
I2D3 = rnorm(5, mean = sample(5:10, 1)))
output1 <- data.frame(O1D1 = rnorm(5, mean = sample(5:10, 1)),
O1D2 = rnorm(5, mean = sample(5:10, 1)),
O1D3 = rnorm(5, mean = sample(5:10, 1)))
output2 <- data.frame(O2D1 = rnorm(5, mean = sample(5:10, 1)),
O2D2 = rnorm(5, mean = sample(5:10, 1)),
O2D3 = rnorm(5, mean = sample(5:10, 1)))
# Generate deadata with means of observations.
inputs <- matrix(mapply(mean, cbind(input1, input2)),
nrow = 2,
ncol = 3,
byrow = TRUE,
dimnames = list(c("I1", "I2"), c("D1", "D2", "D3")))
outputs <- matrix(mapply(mean, cbind(output1, output2)),
nrow = 2,
ncol = 3,
byrow = TRUE,
dimnames = list(c("O1", "O2"), c("D1", "D2", "D3")))
datadea <- make_deadata(inputs = inputs,
outputs = outputs)
# Generate covariances matrix cov_matrix.
cov_matrix <- cov(cbind(input1, input2, output1, output2))
# Generate deadata_stoch
datadea_stoch <- make_deadata_stoch(datadea,
cov_matrix = cov_matrix)
Chance Constrained Additive E-model.
Description
It solves the chance constrained additive E-model based on the deterministic additive model from Charnes et al. (1985), under constant and non-constant returns to scale.
Besides, the user can set weights for the input and/or output slacks. So, it is also possible to solve chance constrained versions of weighted additive models like Measure of Inefficiency Proportions (MIP) or Range Adjusted Measure (RAM), see Cooper et al. (1999).
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
, the program for \text{DMU}_o
with
constant returns to scale is given by
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad
\mathbf{w}^-\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad P\left\{ \left( \tilde{\mathbf{x}}_o-\tilde{X}
\bm{\lambda}-\mathbf{s}^-\right) _i\geq 0\right\}\geq 1-\alpha ,\qquad i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\tilde{\mathbf{y}}_o-\mathbf{s}^+\right) _r
\geq 0\right\}\geq 1-\alpha ,\qquad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \bm{\lambda}=(\lambda_1,\ldots,\lambda_n)^\top
, \tilde{\mathbf{x}}_o
=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and \tilde{\mathbf{y}}_o=
(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are column vectors. Moreover,
\mathbf{s}^-,\mathbf{s}^+
are column vectors with the slacks,
and \mathbf{w}^-,\mathbf{w}^+
are positive row vectors with the weights
for the slacks.
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The deterministic equivalent for a multivariate normal distribution of inputs/outputs is given by
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad \mathbf{w}^-
\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad \mathbf{x}_o-X\bm{\lambda}-\mathbf{s}^-+\Phi ^{-1}(\alpha)
\bm{\sigma} ^-(\bm{\lambda})\geq \mathbf{0},
Y\bm{\lambda}-\mathbf{y}_o-\mathbf{s}^++\Phi ^{-1}(\alpha)\bm{\sigma}^+
(\bm{\lambda})\geq \mathbf{0},
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\displaystyle \left( \sigma ^-_i\left( \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{iq})
-2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{io})
+\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{rq})
-2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{ro})
+\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
Usage
modelstoch_additive(datadea,
alpha = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
orientation = NULL,
weight_slack_i = 1,
weight_slack_o = 1,
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
give_X = TRUE,
returnqp = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
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), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
give_X |
Logical. If it is |
returnqp |
Logical. If it is |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Note
A DMU is \alpha
-stochastically efficient if and only if the optimal
objective value of the problem, (objval
), is zero (or less than zero).
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Charnes, A.; Cooper, W.W.; Golany, B.; Seiford, L.; Stuz, J. (1985) "Foundations of Data Envelopment Analysis for Pareto-Koopmans Efficient Empirical Production Functions", Journal of Econometrics, 30(1-2), 91-107. doi:10.1016/0304-4076(85)90133-2
Cooper, W.W.; Park, K.S.; Pastor, J.T. (1999). "RAM: A Range Adjusted Measure of Inefficiencies for Use with Additive Models, and Relations to Other Models and Measures in DEA". Journal of Productivity Analysis, 11, p. 5-42. doi:10.1023/A:1007701304281
Chance Constrained Additive P-model.
Description
It solves the "max" version of the "almost 100 chance constrained problem from Cooper et al. (1998), under constant and non-constant returns to scale.
Besides, the user can set weights for the input and/or output slacks. So, it is also possible to solve chance constrained versions of weighted additive models like Measure of Inefficiency Proportions (MIP) or Range Adjusted Measure (RAM), see Cooper et al. (1999).
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
and \varepsilon
a positive non-Archimedean infinitesimal,
the program for \text{DMU}_o
with constant returns to scale is given by
\max \limits_{\bm{\lambda}}\quad P\left\{ \mathbf{w}^-\cdot \left(
\tilde{\mathbf{x}}_o-\tilde{X}\bm{\lambda}\right) +\mathbf{w}^+\cdot \left(
\tilde{Y}\bm{\lambda}-\tilde{\mathbf{y}}_o\right) > 0\right\}
\text{s.t.}\quad P\left\{ \left( \tilde{\mathbf{x}}_o-\tilde{X}
\bm{\lambda}\right) _i> 0\right\} \geq 1-\varepsilon,\quad i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\tilde{\mathbf{y}}_o\right) _r>
0\right\} \geq 1-\varepsilon,\quad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},
where \bm{\lambda}=(\lambda_1,\ldots,\lambda_n)^\top
, \tilde{\mathbf{x}}_o
=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and \tilde{\mathbf{y}}_o=
(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are column vectors. Moreover,
\mathbf{w}^-,\mathbf{w}^+
are positive row vectors with the weights
for the slacks.
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The deterministic equivalent for a multivariate normal distribution of inputs/outputs is given by
\max \limits_{\bm{\lambda}}\quad \mathbf{w}^-\cdot \left( \mathbf{x}_o-
X\bm{\lambda}\right)+\mathbf{w}^+\cdot \left( Y\bm{\lambda}-\mathbf{y}_o\right)
-\Phi ^{-1}(\alpha)\sigma(\bm{\lambda})
\text{s.t.}\quad \mathbf{x}_o-X\bm{\lambda}+\Phi ^{-1}(\varepsilon)
\bm{\sigma} ^-(\bm{\lambda})\geq \mathbf{0},
Y\bm{\lambda}-\mathbf{y}_o+\Phi ^{-1}(\varepsilon)\bm{\sigma}^+
(\bm{\lambda})\geq \mathbf{0},
\bm{\lambda}\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\left( \sigma \left( \bm{\lambda}\right)\right) ^2=\bm{\lambda}^\top
\left[ \displaystyle \sum _{i,k=1}^m\Delta ^{II}_{ik}+\sum _{r,p=1}^s
\Delta ^{OO}_{rp}-2\sum _{i=1}^m\sum _{r=1}^s \Delta ^{IO}_{ir}\right] \bm{\lambda}
\displaystyle +2\sum _{j=1}^n\lambda _j\left[ \sum _{i=1}^m\sum _{r=1}^s\left(
\mathrm{Cov}(\tilde{x}_{io},\tilde{y}_{rj})+\mathrm{Cov}(\tilde{x}_{ij},
\tilde{y}_{ro})\right) \right.
\displaystyle \left.-\sum _{i,k=1}^m\mathrm{Cov}(\tilde{x}_{io},\tilde{x}_{kj})
-\sum _{r,p=1}^s\mathrm{Cov}(\tilde{y}_{ro},\tilde{y}_{pj})\right]
\displaystyle +\sum _{i,k=1}^m\mathrm{Cov}(\tilde{x}_{io},\tilde{x}_{ko})
+\sum _{r,p=1}^s \mathrm{Cov}(\tilde{y}_{ro},\tilde{y}_{po})-2\sum _{i=1}^m
\sum _{r=1}^s \mathrm{Cov}(\tilde{x}_{io}, \tilde{y}_{ro}),
\displaystyle \left( \sigma ^-_i\left( \bm{\lambda}\right)\right) ^2=\bm{\lambda}^\top
\Delta ^{II}_{ii}\bm{\lambda}-2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{x}_{ij},
\tilde{x}_{io})+\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \bm{\lambda}\right)\right) ^2=\bm{\lambda}^\top
\Delta ^{OO}_{rr}\bm{\lambda}-2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{y}_{rj},
\tilde{y}_{ro})+\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
such that
\left( \Delta ^{II}_{ik}\right) _{jq}=\mathrm{Cov}(\tilde{x}_{ij}, \tilde{x}_{kq}),
\left( \Delta ^{OO}_{rp}\right) _{jq}=\mathrm{Cov}(\tilde{y}_{rj}, \tilde{y}_{pq}),
\left( \Delta ^{IO}_{ir}\right) _{jq}=\left( \Delta ^{OI}_{ri}\right) _{qj}
=\mathrm{Cov}(\tilde{x}_{ij}, \tilde{y}_{rq}),
with 1\leq j,q\leq n
.
Usage
modelstoch_additive_p(datadea,
alpha = 0.05,
epsilon = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
orientation = NULL,
weight_slack_i = 1,
weight_slack_o = 1,
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
give_X = TRUE,
returnqp = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
epsilon |
A value for parameter epsilon. |
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), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
give_X |
Logical. If it is |
returnqp |
Logical. If it is |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Note
The model in this function is the "max" version of the model in Cooper
et al. (1998), in the sense that maximizes the sum of positive slacks like
the conventional additive model in Cooper et al. (1985). Hence, a DMU is
\alpha
-stochastically efficient if and only if the optimal objective value of
the problem, (objval
), is zero (or less than zero).
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Charnes, A.; Cooper, W.W.; Golany, B.; Seiford, L.; Stuz, J. (1985) "Foundations of Data Envelopment Analysis for Pareto-Koopmans Efficient Empirical Production Functions", Journal of Econometrics, 30(1-2), 91-107. doi:10.1016/0304-4076(85)90133-2
Cooper, W.W.; Huang, Z.; Lelas, V.; Li, S.X.; Olesen, O.B. (1998) "Chance Constrained Programming Formulations for Stochastic Characterizations of Efficiency and Dominance in DEA", Journal of Productivity Analysis, 9, 53–79. doi:10.1023/A:1018320430249
Cooper, W.W.; Park, K.S.; Pastor, J.T. (1999). "RAM: A Range Adjusted Measure of Inefficiencies for Use with Additive Models, and Relations to Other Models and Measures in DEA". Journal of Productivity Analysis, 11, p. 5-42. doi:10.1023/A:1007701304281
Chance Constrained Super-efficiency Additive E-model.
Description
It solves the chance constrained super-efficiency additive E-model based on the deterministic super-efficiency additive model from Du et al. (2010), under constant and non-constant returns to scale. Besides, the user can set weights for the input and/or output slacks.
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
, the program for \text{DMU}_o
with
constant returns to scale is given by
\min \limits_{\bm{\lambda},\mathbf{t}^-,\mathbf{t}^+}\quad
\mathbf{w}^-\mathbf{t}^-+\mathbf{w}^+\mathbf{t}^+
\text{s.t.}\quad P\left\{ \left( \tilde{\mathbf{x}}_o-\tilde{X}_{-o}
\bm{\lambda}+\mathbf{t}^-\right) _i\geq 0\right\}\geq 1-\alpha ,\qquad i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}_{-o}\bm{\lambda}-\tilde{\mathbf{y}}_o+
\mathbf{t}^+\right) _r\geq 0\right\}\geq 1-\alpha ,\qquad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{t}^-\geq \mathbf{0},\,\,
\mathbf{t}^+\geq \mathbf{0},
where \tilde{X}_{-o},\tilde{Y}_{-o}
are the input and output data matrices, respectively,
defined by \mathcal{D}-\left\{ \textrm{DMU}_o\right\}
, \bm{\lambda}
=(\lambda_1,\ldots ,\lambda_{o-1},\lambda_{o+1},\ldots ,\lambda_n)^{\top}
,
\tilde{\mathbf{x}}_o=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and
\tilde{\mathbf{y}}_o=(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are
column vectors. Moreover, \mathbf{s}^-,\mathbf{s}^+
are column vectors
with the slacks, and \mathbf{w}^-,\mathbf{w}^+
are positive row vectors
with the weights for the slacks.
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The deterministic equivalent for a multivariate normal distribution of inputs/outputs is given by
\min \limits_{\bm{\lambda},\mathbf{t}^-,\mathbf{t}^+}\quad
\mathbf{w}^-\mathbf{t}^-+\mathbf{w}^+\mathbf{t}^+
\text{s.t.}\quad \mathbf{x}_o-X_{-o}\bm{\lambda}+\mathbf{t}^-+\Phi ^{-1}
(\alpha)\bm{\sigma} ^-(\bm{\lambda})\geq \mathbf{0},
Y_{-o}\bm{\lambda}-\mathbf{y}_o+\mathbf{t}^++\Phi ^{-1}(\alpha)
\bm{\sigma}^+(\bm{\lambda})\geq \mathbf{0},
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{t}^-\geq \mathbf{0},\,\,
\mathbf{t}^+\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\displaystyle \left( \sigma ^-_i\left( \bm{\lambda}\right)\right) ^2=\sum _
{\substack{j,q=1\\j,q\neq o}}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{x}_{ij},
\tilde{x}_{iq})-2\sum _{\substack{j=1\\j\neq o}}^n\lambda _j\mathrm{Cov}
(\tilde{x}_{ij},\tilde{x}_{io})
+\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \bm{\lambda}\right)\right) ^2=\sum _
{\substack{j,q=1\\j,q\neq o}}^n\lambda _j\lambda _q\mathrm{Cov}
(\tilde{y}_{rj},\tilde{y}_{rq})-2\sum _{\substack{j=1\\j\neq o}}^n
\lambda _j\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{ro})
+\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
Usage
modelstoch_addsupereff(datadea,
alpha = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
orientation = NULL,
weight_slack_i = NULL,
weight_slack_o = NULL,
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
compute_target = TRUE,
returnqp = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
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), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
compute_target |
Logical. If it is |
returnqp |
Logical. If it is |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Note
A DMU is \alpha
-stochastically efficient if and only if the optimal
objective value of the problem, (objval
), is zero (or less than zero).
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Du, J.; Liang, L.; Zhu, J. (2010). "A Slacks-based Measure of Super-efficiency in Data Envelopment Analysis. A Comment", European Journal of Operational Research, 204, 694-697. doi:10.1016/j.ejor.2009.12.007
Chance Constrained Directional Models with Stochastic Directions
Description
It solves chance constrained directional models with stochastic directions, under constant, variable, non-increasing, non-decreasing or generalized returns to scale. Inputs and outputs must follow a multivariate normal distribution. By default, models are solved in a two-stage process (slacks are maximized).
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
, the first stage program for \text{DMU}_o
with
constant returns to scale is given by
\max \limits_{\beta, \bm{\lambda}}\quad \beta
\text{s.t.}\quad P\left\{ \left( \Theta ^-(\beta )\tilde{\mathbf{x}}_o-
\tilde{X}\bm{\lambda}\right) _i\geq 0\right\} \geq 1-\alpha,\quad
i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\Theta ^+(\beta )
\tilde{\mathbf{y}}_{o}\right) _r\geq 0\right\} \geq 1-\alpha,\quad
r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},
where \bm{\lambda}=(\lambda_1,\ldots,\lambda_n)^\top
, \tilde{\mathbf{x}}_o
=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and \tilde{\mathbf{y}}_o=
(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are column vectors,
\Theta ^-(\beta )=I_m-\beta D^-
, \Theta ^+(\beta )=I_s+\beta
D^+
(with I_m,I_s
identity matrices), and D^-=\mathrm{diag}(d^-_1,
\ldots ,d^-_m)
, D^+=\mathrm{diag}(d^+_1,\ldots ,d^+_s)
are diagonal matrices
with orientation parameters d^-_1,\ldots ,d^-_m, d^+_1,\ldots ,d^+_s \geq 0
.
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The corresponding second stage program is given by
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad \mathbf{w}^-
\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad P\left\{ \left( \Theta ^-(\beta ^*)\tilde{\mathbf{x}}_o-
\tilde{X}\bm{\lambda}-\mathbf{s}^-\right) _i\geq 0\right\} = 1-\alpha,\quad
i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\Theta ^+(\beta ^*)
\tilde{\mathbf{y}}_{o}-\mathbf{s}^+\right) _r\geq 0\right\} = 1-\alpha,\quad
r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \beta ^*
is the optimal objective function of the first stage
program, \mathbf{s}^-,\mathbf{s}^+
are column vectors with the slacks,
and \mathbf{w}^-,\mathbf{w}^+
are positive row vectors with the weights
for the slacks.
The deterministic equivalents for a multivariate normal distribution of inputs/outputs are given by
\max \limits_{\beta, \bm{\lambda}} \quad \beta
\text{s.t.} \quad X\bm{\lambda}-\Phi ^{-1}(\alpha)\bm{\sigma} ^-(\beta ,
\bm{\lambda}) \leq \Theta ^-(\beta )\mathbf{x}_o,
Y\bm{\lambda}+\Phi ^{-1}(\alpha)\bm{\sigma} ^+(\beta ,\bm{\lambda})
\geq \Theta ^+(\beta )\mathbf{y}_o,
\bm{\lambda}\geq \mathbf{0},
and for the second stage,
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+} \quad \mathbf{w}^-
\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.} \quad X\bm{\lambda}+\mathbf{s}^--\Phi ^{-1}(\alpha)
\bm{\sigma} ^-(\beta ^*,\bm{\lambda}) =\Theta ^-(\beta ^*)\mathbf{x}_o,
Y\bm{\lambda}-\mathbf{s}^++\Phi ^{-1}(\alpha)\bm{\sigma} ^+(\beta ^*,
\bm{\lambda}) = \Theta ^+(\beta ^*)\mathbf{y}_{o},
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\displaystyle \left( \sigma ^-_i\left( \beta, \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{iq})-
2(1-\beta d^-_i)\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{io})
+(1-\beta d^-_i)^2\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \beta, \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{rq})-
2(1+\beta d^+_r)\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{ro})
+(1+\beta d^+_r)^2\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
Usage
modelstoch_dir(datadea,
alpha = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
d_input = 1,
d_output = 1,
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
give_X = TRUE,
maxslack = TRUE,
weight_slack_i = 1,
weight_slack_o = 1,
compute_target = TRUE,
returnqp = FALSE,
silent_ud = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
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 |
d_input |
A value, vector of length |
d_output |
A value, vector of length |
rts |
A string, determining the type of returns to scale, equal to "crs" (constant), "vrs" (variable), "nirs" (non-increasing), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
give_X |
Logical. If it is |
maxslack |
Logical. If it is |
weight_slack_i |
A value, vector of length |
weight_slack_o |
A value, vector of length |
compute_target |
Logical. If it is |
returnqp |
Logical. If it is |
silent_ud |
Logical, to avoid warnings related with undesirable variables. |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Bolós, V.J.; Benítez, R.; Coll-Serrano, V. (2024). “Chance constrained directional models in stochastic data envelopment analysis", Operations Research Perspectives, 12, 100307.. doi:10.1016/j.orp.2024.100307
Examples
# Example 1.
library(deaR)
data("Coll_Blasco_2006")
ni <- 2 # number of inputs
no <- 2 # number of outputs
data_example <- make_deadata(datadea = Coll_Blasco_2006,
ni = ni,
no = no)
nd <- length(data_example$dmunames) # number of DMUs
var_input <- matrix(1, nrow = ni, ncol = nd)
var_output <- matrix(1, nrow = no, ncol = nd)
data_stoch <- make_deadata_stoch(datadea = data_example,
var_input = var_input,
var_output = var_output)
Collstochdir <- modelstoch_dir(data_stoch)
Chance Constrained Directional Models with Deterministic Directions
Description
It solves chance constrained directional models with deterministic directions, under constant, variable, non-increasing, non-decreasing or generalized returns to scale. Inputs and outputs must follow a multivariate normal distribution. By default, models are solved in a two-stage process (slacks are maximized).
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
, the first stage program for \text{DMU}_o
with
constant returns to scale is given by
\max \limits_{\beta, \bm{\lambda}}\quad \beta
\text{s.t.} \quad P\left\{ \left( \tilde{\mathbf{x}}_o-\beta \mathbf{g}^--
\tilde{X}\bm{\lambda}\right) _i\geq 0\right\} \geq 1-\alpha,\quad i=1,\ldots ,m,
P\left\{ \left( \tilde{\mathbf{y}}_{o}+\beta \mathbf{g}^+-\tilde{Y}\bm{\lambda}
\right) _r\leq 0\right\} \geq 1-\alpha,\quad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},
where \bm{\lambda}=(\lambda_1,\ldots,\lambda_n)^\top
, \tilde{\mathbf{x}}_o
=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and \tilde{\mathbf{y}}_o=
(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are column vectors, and
\mathbf{g}=(-\mathbf{g}^-,\mathbf{g}^+)\neq \mathbf{0}
is a preassigned direction
(with \mathbf{g}^-\in \mathbb{R}^m
and \mathbf{g}^+\in\mathbb{R}^s
non-negative column vectors).
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The corresponding second stage program is given by
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad \mathbf{w}^-
\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.} \quad P\left\{ \left( \tilde{\mathbf{x}}_o-\beta ^*\mathbf{g}^--
\tilde{X}\bm{\lambda}-\mathbf{s}^-\right) _i\geq 0\right\} \geq 1-\alpha,\quad i=1,\ldots ,m,
P\left\{ \left( \tilde{\mathbf{y}}_{o}+\beta ^*\mathbf{g}^+-\tilde{Y}\bm{\lambda}
+\mathbf{s}^+\right) _r\leq 0\right\} \geq 1-\alpha,\quad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \beta ^*
is the optimal objective function of the first stage
program, \mathbf{s}^-,\mathbf{s}^+
are column vectors with the slacks,
and \mathbf{w}^-,\mathbf{w}^+
are positive row vectors with the weights
for the slacks.
The deterministic equivalents for a multivariate normal distribution of inputs/outputs are given by
\max \limits_{\beta, \bm{\lambda}} \quad \beta
\text{s.t.}\quad \beta \mathbf{g}^-+X\bm{\lambda}-\Phi ^{-1}
(\alpha)\bm{\sigma} ^-(\bm{\lambda}) \leq \mathbf{x}_o,
-\beta \mathbf{g}^++Y\bm{\lambda}+\Phi ^{-1}(\alpha)
\bm{\sigma} ^+(\bm{\lambda}) \geq \mathbf{y}_{o},
\bm{\lambda}\geq \mathbf{0},
and for the second stage,
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+} \quad \mathbf{w}^-
\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad \beta ^*\mathbf{g}^-+X\bm{\lambda}+\mathbf{s}^--\Phi ^{-1}
(\alpha)\bm{\sigma} ^-(\bm{\lambda}) = \mathbf{x}_o,
-\beta ^*\mathbf{g}^++Y\bm{\lambda}-\mathbf{s}^++\Phi ^{-1}(\alpha)
\bm{\sigma} ^+(\bm{\lambda}) = \mathbf{y}_{o},
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\displaystyle \left( \sigma ^-_i\left( \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{iq})-
2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{io})
+\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{rq})-
2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{ro})
+\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
Usage
modelstoch_dir_dd(datadea,
alpha = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
dir_input = NULL,
dir_output = NULL,
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
give_X = TRUE,
maxslack = TRUE,
weight_slack_i = 1,
weight_slack_o = 1,
compute_target = TRUE,
returnqp = FALSE,
silent_ud = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
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 |
dir_input |
A value, vector of length |
dir_output |
A value, vector of length |
rts |
A string, determining the type of returns to scale, equal to "crs" (constant), "vrs" (variable), "nirs" (non-increasing), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
give_X |
Logical. If it is |
maxslack |
Logical. If it is |
weight_slack_i |
A value, vector of length |
weight_slack_o |
A value, vector of length |
compute_target |
Logical. If it is |
returnqp |
Logical. If it is |
silent_ud |
Logical, to avoid warnings related with undesirable variables. |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Bolós, V.J.; Benítez, R.; Coll-Serrano, V. (2024). “Chance constrained directional models in stochastic data envelopment analysis", Operations Research Perspectives, 12, 100307.. doi:10.1016/j.orp.2024.100307
Examples
# Example 1.
library(deaR)
data("Coll_Blasco_2006")
ni <- 2 # number of inputs
no <- 2 # number of outputs
data_example <- make_deadata(datadea = Coll_Blasco_2006,
ni = ni,
no = no)
nd <- length(data_example$dmunames) # number of DMUs
var_input <- matrix(1, nrow = ni, ncol = nd)
var_output <- matrix(1, nrow = no, ncol = nd)
data_stoch <- make_deadata_stoch(datadea = data_example,
var_input = var_input,
var_output = var_output)
Collstochdirdd <- modelstoch_dir_dd(data_stoch)
Chance Constrained Radial Models
Description
It solves input and output oriented chance constrained radial DEA models under constant (CCR model), variable (BCC model), non-increasing, non-decreasing or generalized returns to scale, based on the model in Cooper et al. (2002). By default, models are solved in a two-stage process (slacks are maximized).
We consider \mathcal{D}=\left\{ \textrm{DMU}_1, \ldots ,\textrm{DMU}_n \right\}
a set of n
DMUs with m
stochastic inputs and s
stochastic outputs.
Matrices \tilde{X}=(\tilde{x}_{ij})
and \tilde{Y}=(\tilde{y}_{rj})
are the input and output data matrices, respectively, where \tilde{x}_{ij}
and \tilde{y}_{rj}
represent the i
-th input and r
-th output
of the j
-th DMU. Moreover, we denote by X=(x_{ij})
and Y=(y_{rj})
their expected values. In general, we denote vectors by bold-face letters and
they are considered as column vectors unless otherwise stated. The 0
-vector
is denoted by \bm{0}
and the context determines its dimension.
Given 0<\alpha <1
, the first stage program for \text{DMU}_o
with
constant returns to scale is given by
\min \limits_{\theta, \bm{\lambda}}\quad \theta
\text{s.t.}\quad P\left\{ \left( \theta \tilde{\mathbf{x}}_o-\tilde{X}
\bm{\lambda}\right) _i\geq 0\right\} \geq 1-\alpha,\quad i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\tilde{\mathbf{y}}_{o}\right) _r
\geq 0\right\} \geq 1-\alpha,\quad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},
where \bm{\lambda}=(\lambda_1,\ldots,\lambda_n)^\top
, \tilde{\mathbf{x}}_o
=(\tilde{x}_{1o},\ldots,\tilde{x}_{mo})^\top
and \tilde{\mathbf{y}}_o=
(\tilde{y}_{1o},\ldots,\tilde{y}_{so})^\top
are column vectors.
Different returns to scale can be easily considered by adding the corresponding
constraints: \mathbf{e}\bm{\lambda}=1
(VRS), 0\leq \mathbf{e}\bm{\lambda}
\leq 1
(NIRS), \mathbf{e}\bm{\lambda}\geq 1
(NDRS) or L\leq \mathbf{e}
\bm{\lambda}\leq U
(GRS), with 0\leq L\leq 1
and U\geq 1
, where
\mathbf{e}=(1,\ldots ,1)
is a row vector.
The corresponding second stage program is given by
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad
\mathbf{w}^-\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad P\left\{ \left( \theta ^*\tilde{\mathbf{x}}_o-\tilde{X}
\bm{\lambda}-\mathbf{s}^-\right) _i\geq 0\right\} = 1-\alpha,\quad i=1,\ldots ,m,
P\left\{ \left( \tilde{Y}\bm{\lambda}-\tilde{\mathbf{y}}_{o}-\mathbf{s}^+
\right) _r\geq 0\right\} = 1-\alpha,\quad r=1,\ldots ,s,
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \theta ^*
is the optimal objective function of the first stage
program, \mathbf{s}^-,\mathbf{s}^+
are column vectors with the slacks,
and \mathbf{w}^-,\mathbf{w}^+
are positive row vectors with the weights
for the slacks.
The deterministic equivalents for a multivariate normal distribution of inputs/outputs are given by
\min \limits_{\theta, \bm{\lambda}}\quad \theta
\text{s.t.}\quad X\bm{\lambda}-\Phi ^{-1}(\alpha)\bm{\sigma} ^-(\theta,
\bm{\lambda}) \leq \theta \mathbf{x}_o,
Y\bm{\lambda}+\Phi ^{-1}(\alpha)\bm{\sigma} ^+(\bm{\lambda}) \geq \mathbf{y}_o,
\bm{\lambda}\geq \mathbf{0},
and for the second stage,
\max \limits_{\bm{\lambda},\mathbf{s}^-,\mathbf{s}^+}\quad
\mathbf{w}^-\mathbf{s}^-+\mathbf{w}^+\mathbf{s}^+
\text{s.t.}\quad X\bm{\lambda}+\mathbf{s}^--\Phi ^{-1}(\alpha)
\bm{\sigma} ^-(\theta ^*,\bm{\lambda}) =\theta ^* \mathbf{x}_o,
Y\bm{\lambda}-\mathbf{s}^++\Phi ^{-1}(\alpha)\bm{\sigma} ^+
(\bm{\lambda}) = \mathbf{y}_{o},
\bm{\lambda}\geq \mathbf{0},\,\, \mathbf{s}^-\geq \mathbf{0},\,\,
\mathbf{s}^+\geq \mathbf{0},
where \Phi
is the standard normal distribution, and
\displaystyle \left( \sigma ^-_i\left( \theta, \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{iq})
-2\theta\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{x}_{ij},\tilde{x}_{io})
+\theta ^2\mathrm{Var}(\tilde{x}_{io}),\quad i=1,\ldots ,m,
\displaystyle \left( \sigma ^+_r\left( \bm{\lambda}\right)\right) ^2 =
\sum _{j,q=1}^n\lambda _j\lambda _q\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{rq})
-2\sum _{j=1}^n\lambda _j\mathrm{Cov}(\tilde{y}_{rj},\tilde{y}_{ro})
+\mathrm{Var}(\tilde{y}_{ro}),\quad r=1,\ldots ,s.
Usage
modelstoch_radial(datadea,
alpha = 0.05,
dmu_eval = NULL,
dmu_ref = NULL,
orientation = c("io", "oo"),
rts = c("crs", "vrs", "nirs", "ndrs", "grs"),
L = 1,
U = 1,
solver = c("alabama", "cccp", "cccp2", "slsqp"),
give_X = TRUE,
maxslack = TRUE,
weight_slack_i = 1,
weight_slack_o = 1,
vtrans_i = NULL,
vtrans_o = NULL,
compute_target = TRUE,
returnqp = FALSE,
silent_ud = FALSE,
...)
Arguments
datadea |
The data of class |
alpha |
A value for parameter alpha. |
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 |
A string, equal to "io" (input oriented) or "oo" (output oriented). |
rts |
A string, determining the type of returns to scale, equal to "crs" (constant), "vrs" (variable), "nirs" (non-increasing), "ndrs" (non-decreasing) or "grs" (generalized). |
L |
Lower bound for the generalized returns to scale (grs). |
U |
Upper bound for the generalized returns to scale (grs). |
solver |
Character string with the name of the solver used by function |
give_X |
Logical. If it is |
maxslack |
Logical. If it is |
weight_slack_i |
A value, vector of length |
weight_slack_o |
A value, vector of length |
vtrans_i |
Numeric vector of translation for undesirable inputs.
If |
vtrans_o |
Numeric vector of translation for undesirable outputs,
analogous to |
compute_target |
Logical. If it is |
returnqp |
Logical. If it is |
silent_ud |
Logical, to avoid warnings related with undesirable variables. |
... |
Other parameters, like the initial vector |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Cooper, W.W.; Deng, H.; Huang, Z.; Li, S.X. (2002). “Chance constrained programming approaches to technical efficiencies and inefficiencies in stochastic data envelopment analysis", Journal of the Operational Research Society, 53:12, 1347-1356. doi:10.1057/palgrave.jors.2601433
El-Demerdash, B.E.; El-Khodary, I.A.; Tharwat, A.A. (2013). "Developing a Stochastic Input Oriented Data Envelopment Analysis (SIODEA) Model", International Journal of Advanced Computer Science and Applications, Vol.4, No. 4, 40-44.
Examples
# Example 1.
library(deaR)
data("Coll_Blasco_2006")
ni <- 2 # number of inputs
no <- 2 # number of outputs
data_example <- make_deadata(datadea = Coll_Blasco_2006,
ni = ni,
no = no)
nd <- length(data_example$dmunames) # number of DMUs
var_input <- matrix(1, nrow = ni, ncol = nd)
var_output <- matrix(1, nrow = no, ncol = nd)
data_stoch <- make_deadata_stoch(datadea = data_example,
var_input = var_input,
var_output = var_output)
Collstoch <- modelstoch_radial(data_stoch)
# Example 2. Deterministic data with one stochastic input.
# Replication of results in El-Demerdash et al. (2013).
library(deaR)
dmunames <- c("A", "B", "C")
nd <- length(dmunames) # Number of DMUs
inputnames <- c("Professors", "Budget")
ni <- length(inputnames) # Number of Inputs
outputnames <- c("Diplomas", "Bachelors", "Masters")
no <- length(outputnames) # Number of Outputs
X <- matrix(c(5, 14, 8, 15, 7, 12),
nrow = ni, ncol = nd, dimnames = list(inputnames, dmunames))
Y <- matrix(c(9, 4, 16, 5, 7, 10, 4, 9, 13),
nrow = no, ncol = nd, dimnames = list(outputnames, dmunames))
datadea <- make_deadata(inputs = X,
outputs = Y)
covX <- array(0, dim = c(2, 3, 3))
# The 2nd input is stochastic.
# Since the corresponding 3x3 covariances matrix is symmetric, only values
# above the diagonal are necessary.
covX[2, 1, ] <- c(1.4, 0.9, 0.6)
covX[2, 2, 2:3] <- c(1.5, 0.7)
covX[2, 3, 3] <- 1.2
# Alternatively (note that values below the diagonal are ignored).
covX[2, , ] <- matrix(c(1.4, 0.9, 0.6, 0, 1.5, 0.7, 0, 0, 1.2),
byrow = TRUE)
datadea_stoch <- make_deadata_stoch(datadea,
cov_input = covX)
res <- modelstoch_radial(datadea_stoch, rts = "vrs")
Chance Constrained Radial Super-efficiency Models
Description
Solve chance constrained radial super-efficiency DEA models, based on the
Cooper et al. (2002) chance constrained radial efficiency models. Analogously to the deterministic case,
it removes the evaluated DMU from the set of reference DMUs dmu_ref
with respect to which it is evaluated.
Usage
modelstoch_radial_supereff(datadea,
dmu_eval = NULL,
dmu_ref = NULL,
...)
Arguments
datadea |
The data of class |
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 |
... |
Model parameters like |
Value
A list with the results for the evaluated DMUs and other parameters for reproducibility.
Note
Radial super-efficiency chance constrained model under non constant (vrs, nirs, ndrs, grs) returns to scale can be unfeasible for certain DMUs.
Author(s)
Vicente Bolós (vicente.bolos@uv.es). Department of Business Mathematics
Rafael Benítez (rafael.suarez@uv.es). Department of Business Mathematics
Vicente Coll-Serrano (vicente.coll@uv.es). Quantitative Methods for Measuring Culture (MC2). Applied Economics.
University of Valencia (Spain)
References
Cooper, W.W.; Deng, H.; Huang, Z.; Li, S.X. (2002). “Chance constrained programming approaches to technical efficiencies and inefficiencies in stochastic data envelopment analysis", Journal of the Operational Research Society, 53:12, 1347-1356.
See Also
Examples
# Example 1.
library(deaR)
ni = 2
no = 1
datatext <- make_deadata(Textile, ni = 2, no = 1)
nd <- length(datatext$dmunames)
# Compute variances
mean_i <- apply(datatext$input, MARGIN = 1, FUN = mean)
mean_o <- mean(datatext$output)
var_i1 <- sum((datatext$input[1, ] - mean_i[1]) ^ 2) / (nd - 1)
var_i2 <- sum((datatext$input[2, ] - mean_i[2]) ^ 2) / (nd - 1)
var_o <- sum((datatext$output - mean_o) ^ 2) / (nd - 1)
var_input <- matrix(rep(c(var_i1, var_i2), nd),
nrow = ni,
ncol = nd)
var_output <- matrix(var_o,
nrow = no,
ncol = nd)
datatext_stoch <- make_deadata_stoch(datatext,
var_input = var_input,
var_output = var_output)
res <- modelstoch_radial_supereff(datatext_stoch, orientation = "oo")