Russell Models
Russell Input Model
Based on the data matrix $(X,Y)$, we calculate the Russell measure of input efficiency (Färe & Lovell, 1978; and Färe et al., 1985) of each observation o by solving $n$ times the following linear programming problem:
\[\begin{aligned} & \underset{\theta_i ,\lambda_j }{\mathop{\min }}\,\quad \quad \quad \;\ \frac{1}{m} \sum_{i=1}^{m}{\theta_i} \\ & \text{subject}\ \text{to} \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j x_{ij} }\ \le \theta_i {x}_{io} \qquad i = 1,...,m \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j y_{rj} }\ \ge {y}_{ro} \qquad r = 1,...,s \\ & \quad \quad \quad \quad \quad \ \theta_i \le 1 \qquad i = 1,...,m \\ & \quad \quad \quad \quad \quad \ \lambda_j \ge 0 \qquad j = 1,...,n. \end{aligned}\]
The measurement of technical efficiency assuming variable returns to scale, VRS, adds the following condition:
\[\sum\nolimits_{j=1}^{n}\lambda_j=1\]
In this example we compute the Russell input DEA model under constant returns to scale:
using DataEnvelopmentAnalysis
X = [2 2; 1 4; 4 1; 4 3; 5 5; 6 1; 2 5; 1.6 8];
Y = [1; 1; 1; 1; 1; 1; 1; 1];
dearussellio = dearussell(X, Y, orient = :Input, rts = :CRS)
Russell DEA Model
DMUs = 8; Inputs = 2; Outputs = 1
Orientation = Input; Returns to Scale = CRS
──────────────────────────────────────────
efficiency effX1 effX2 slackY1
──────────────────────────────────────────
1 1.0 1.0 1.0 0.0
2 1.0 1.0 1.0 0.0
3 1.0 1.0 1.0 0.0
4 0.583333 0.5 0.666667 0.0
5 0.4 0.4 0.4 0.0
6 0.833333 0.666667 1.0 0.0
7 0.65 0.5 0.8 0.0
8 0.5625 0.625 0.5 0.0
──────────────────────────────────────────
To compute the variable returns to scale model, we simply set the rts
parameter to :VRS
:
Estimated efficiency scores are returned with the efficiency
function:
efficiency(dearussellio)
8-element Vector{Float64}:
1.0
1.0
1.0
0.5833333333333334
0.4
0.8333333333333334
0.65
0.5625
efficiency(dearussellio, :X)
8×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
1.0 1.0
0.5 0.666667
0.4 0.4
0.666667 1.0
0.5 0.8
0.625 0.5
Russell Output Model
It is possible to calculate the Russell measure of output efficiency of each observation by solving the following linear program:
\[\begin{aligned} & \underset{\phi_r ,\lambda_j }{\mathop{\max }}\,\quad \quad \quad \;\ \frac{1}{s} \sum_{r=1}^{s}{\phi_r} \\ & \text{subject}\ \text{to} \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j x_{ij} }\ \le {x}_{io} \qquad i = 1,...,m \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j y_{rj} }\ \ge \phi_r {y}_{ro} \qquad r = 1,...,s \\ & \quad \quad \quad \quad \quad \ \phi_r \ge 1 \qquad r = 1,...,s \\ & \quad \quad \quad \quad \quad \ \lambda_j \ge 0 \qquad j = 1,...,n. \end{aligned}\]
with the following condition when assuming variable returns to scale:
\[\sum\nolimits_{j=1}^{n}\lambda_j=1\]
In this example we compute the Russell output DEA model under constant returns to scale:
X = [1; 1; 1; 1; 1; 1; 1; 1];
Y = [7 7; 4 8; 8 4; 3 5; 3 3; 8 2; 6 4; 1.5 5] ;
dearusselloo = dearussell(X, Y, orient = :Output, rts = :CRS)
Russell DEA Model
DMUs = 8; Inputs = 1; Outputs = 2
Orientation = Output; Returns to Scale = CRS
────────────────────────────────────────
efficiency effY1 effY2 slackX1
────────────────────────────────────────
1 1.0 1.0 1.0 0.0
2 1.0 1.0 1.0 0.0
3 1.0 1.0 1.0 0.0
4 1.86667 2.33333 1.4 0.0
5 2.33333 2.33333 2.33333 0.0
6 1.5 1.0 2.0 0.0
7 1.45833 1.16667 1.75 0.0
8 3.05556 5.11111 1.0 0.0
────────────────────────────────────────
Estimated efficiency scores are returned with the efficiency
function:
efficiency(dearusselloo)
8-element Vector{Float64}:
1.0
1.0
1.0
1.8666666666666665
2.333333333333333
1.5
1.4583333333333335
3.0555555555555554
efficiency(dearusselloo, :Y)
8×2 Matrix{Float64}:
1.0 1.0
1.0 1.0
1.0 1.0
2.33333 1.4
2.33333 2.33333
1.0 2.0
1.16667 1.75
5.11111 1.0
Russell Graph Model
It is possible to calculate the Russell graph measure of technical efficiency of each observation by solving the following linear program:
\[\begin{aligned} & \underset{\theta_i, \phi_r ,\lambda_j }{\mathop{\min }}\,\quad \quad \quad \;\ \frac{1}{m + s} (\sum_{i=1}^{m}{\theta_i} + \sum_{r=1}^{s}{\frac{1}{\phi_r}}) \\ & \text{subject}\ \text{to} \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j x_{ij} }\ \le \theta_i {x}_{io} \qquad i = 1,...,m \\ & \quad \quad \quad \quad \quad \ \sum_{j=1}^{n}{\lambda_j y_{rj} }\ \ge \phi_r {y}_{ro} \qquad r = 1,...,s \\ & \quad \quad \quad \quad \quad \ \theta_i \le 1 \qquad i = 1,...,m \\ & \quad \quad \quad \quad \quad \ \phi_r \ge 1 \qquad r = 1,...,s \\ & \quad \quad \quad \quad \quad \ \lambda_j \ge 0 \qquad j = 1,...,n. \end{aligned}\]
with the following condition when assuming variable returns to scale:
\[\sum\nolimits_{j=1}^{n}\lambda_j=1\]
In this example we compute the Russell graph DEA model under variable returns to scale:
X = [2; 4; 8; 12; 6; 14; 14; 9.412];
Y = [1; 5; 8; 9; 3; 7; 9; 2.353];
dearussellgr = dearussell(X, Y, orient = :Graph, rts = :VRS)
Russell DEA Model
DMUs = 8; Inputs = 1; Outputs = 1
Orientation = Graph; Returns to Scale = VRS
────────────────────────────────
efficiency effX1 effY1
────────────────────────────────
1 1.0 1.0 1.0
2 1.0 1.0 1.0
3 1.0 1.0 1.0
4 1.0 1.0 1.0
5 0.633333 0.666667 1.66667
6 0.723214 0.571429 1.14286
7 0.928571 0.857143 1.0
8 0.447795 0.424989 2.12495
────────────────────────────────
Estimated efficiency scores are returned with the efficiency
function:
efficiency(dearussellgr)
8-element Vector{Float64}:
0.9999996492279167
0.9999999749520232
0.9999999913580742
0.9999999703644951
0.6333333226351024
0.7232142937165499
0.9285714048857328
0.4477946881737884
efficiency(dearussellgr, :X)
8×1 Matrix{Float64}:
1.0000000084319445
0.9999999519036574
0.9999999790875087
0.9999999328388507
0.6666666303008444
0.57142851550475
0.8571428024480117
0.42498937010375143
efficiency(dearussellgr, :Y)
8×1 Matrix{Float64}:
1.000000709976615
1.0000000019996111
0.9999999963713605
0.9999999921098606
1.6666666250851108
1.1428570489099183
0.9999999926765463
2.124946848134728
dearussell Function Documentation
DataEnvelopmentAnalysis.dearussell
— Functiondearussell(X, Y)
Compute the Russell model using data envelopment analysis for inputs X and outputs Y.
Optional Arguments
orient=:Input
: chooses the Russell input mode. For the Russell output model choose:Output
. For the Russell graph model choose:Graph
.rts=:CRS
: chooses constant returns to scale. For variable returns to scale choose:VRS
.slack=true
: computes input and output slacks.Xref=X
: Identifies the reference set of inputs against which the units are evaluated.Yref=Y
: Identifies the reference set of outputs against which the units are evaluated.names
: a vector of strings with the names of the decision making units.