Learn R Programming

nonparaeff (version 0.5-13)

additive: Linear Programming for the Additive Model

Description

Solve the Additive Model under the VRS assumption

Usage

additive(base = NULL, frontier = NULL, noutput = 1)

Arguments

base

A data set for DMUs to be evaluated. A data frame with J1*(M+N) dimention, where J1 is the number of DMUs, M for the number of inputs, and N for the number of outputs.

frontier

A data set for DMUs to be used in constructing a production possibility set (PPS). A data frame with J2*(M+N) dimention, where J2 is the number of DMUs, M for the number of inputs, and N for the number of outputs.

noutput

The number of outputs (N).

Value

A data frame with J1*(J1+M+N), which has efficiency scores, optimal weightes and optimal slacks. Take a look at the example below.

Details

The additive model under the VRS assumption is as follows:

\( \theta^{k*}_{ADD} = \max_{\lambda, s^+, s^-} \left( \sum_{m=1}^M s^-_m + \sum_{n=1}^N s^+_n \right)\)

\(s.t.~~ x^k_m = \sum_{j=1}^J x_m^j \lambda^j + s^-_n ~ (m = 1, 2, \cdots, M);\)

\(~~~~~~ y^k_n = \sum_{j=1}^J y_n^j \lambda^j + s^-_n ~ (n = 1, 2, \cdots, N);\)

\(~~~~~~\sum_{j=1}^J \lambda^j = 1;\) \(~~~~~~\lambda^j \geq 0~ (j = 1, 2, \cdots, J);~ s^-_m \geq 0~ (m = 1, 2, \cdots, M);~ s^+_n \geq 0~ (n = 1, 2, \cdots, N). \)

References

Cooper, W., Seiford, L. and Tone, K. (2007). Data envelopment analysis: a comprehensive text with models, applications, references and DEA-solver software (2nd ed.). Springer Verlag, New York.

Lee, J. and Oh, D. (forthcoming). Efficiency Analysis: Data Envelopment Analysis. Press (in Korean).

See Also

sbm.tone, sbm.vrs

Examples

Run this code
# NOT RUN {
## Simple Example
my.dat <- data.frame(y = c(1, 2, 4, 6, 7, 9, 9),
                     x = c(3, 2, 6, 4, 8, 8, 10))
(re <- additive(my.dat, noutput = 1))

## Property of the Additive Model
dat1 <- data.frame(y = c(1, 1, 1, 1, 1, 1),
                        x1 = c(2, 3, 6, 3, 6, 6),
                        x2 = c(5, 3, 1, 8, 4, 2))
dat2 <- dat1 
dat2$x1 <- dat2$x1 * 10 
dat3 <- dat1 
dat3$x1 <- dat3$x1 + 10 
(re1 <- additive(dat1, noutput = 1))
(re2 <- additive(dat2, noutput = 1))
(re3 <- additive(dat3, noutput = 1))

# }

Run the code above in your browser using DataLab