44 Data Envelopment Analysis
Data Envelopment Analysis (DEA) is a method for measuring the efficiency of a set of decision-making units (DMUs) that was developed in the late 1970s by Abraham Charnes, William Cooper, and Edwardo Rhodes. It was originally developed to evaluate the performance of U.S. banks, but has since been applied to a wide range of industries and sectors.
It provides a way to measure the relative efficiency of different DMUs, even when they produce different combinations of outputs and use different combinations of inputs. This can be useful for identifying best practices and areas for improvement, and for making decisions about which DMUs to invest in or prioritize.
44.1 How it works?
At a high level, DEA works by comparing the input-output combinations of different decision-making units (DMUs) to determine which DMUs are operating efficiently and which are not. Specifically, DEA tries to identify the “efficient frontier” of DMUs that are using their inputs to produce the optimum amount of outputs possible.
To do this, DEA uses a mathematical model that takes into account the inputs and outputs of each DMU, as well as any weights or constraints that may apply. The model then calculates a “score” for each DMU based on how well it performs relative to the other DMUs in the group. DMUs that score higher are considered more efficient than those that score lower.
44.2 Use-cases
DEA has a wide range of applications across different industries and sectors. Here are a few examples:
Firm Performance Evaluation: DEA can be used to evaluate the performance of firms in a given industry, by comparing their input-output combinations to identify which firms are operating more efficiently than others. This can help investors and policymakers make decisions about which firms to invest in or support.
Education Quality Assessment: DEA can be used to assess the quality of schools, by comparing their input-output combinations to identify which schools are producing better outcomes (e.g., higher test scores) with fewer resources. This can help policymakers allocate education funding more effectively.
Healthcare Efficiency Analysis: DEA can be used to analyze the efficiency of hospitals and healthcare providers, by comparing their input-output combinations to identify which providers are delivering better outcomes (e.g., lower mortality rates) with lower costs. This can help healthcare systems optimize resource allocation and improve patient outcomes.
Regional Development Analysis: DEA can be used to compare the efficiency of different regions or countries, by comparing their input-output combinations to identify which regions/countries are making the best use of their resources. This can help policymakers identify areas for improvement and develop targeted interventions to promote economic growth.
44.3 Possible uses in Audit
Data Envelopment Analysis (DEA) can be used in audit to evaluate the efficiency of an organization or process. Auditors can use DEA to identify areas of inefficiency within an organization by comparing the inputs and outputs of different departments or processes. For example, an auditor could use DEA to compare the efficiency of different production lines within a manufacturing plant or the efficiency of different branches within a bank.
By using DEA, auditors can identify areas where an organization is not using its resources effectively and recommend changes to improve efficiency. This can help organizations reduce costs, improve productivity, and increase profits. DEA can also be used to evaluate the efficiency of different audit methods and procedures. For example, an auditor could use DEA to compare the efficiency of different sampling methods to determine which method is most effective at detecting errors or fraud. Undoubtedly, DEA is a powerful tool that can help auditors identify areas of inefficiency and recommend changes to improve organizational performance.
44.4 A practical example in R
We will now see a complete practical example of doing DEA in R.
44.4.2 Sample data-set
Let us assume, we have a data/KPIs of six stores located across India.
Store | x1 | x2 | y1 | y2 |
---|---|---|---|---|
Delhi | 51 | 38 | 169 | 119 |
Gurgaon | 60 | 45 | 243 | 167 |
Bengalore | 43 | 33 | 173 | 158 |
Chennai | 53 | 43 | 216 | 138 |
Mumbai | 43 | 38 | 155 | 161 |
Nagpur | 44 | 35 | 169 | 157 |
In the above sample, we have only two inputs, x1
and x2
and two outputs, y1
and y2
. Here -
-
x1
andx2
represents machine hours and employee + management hours per week; -
y1
andy2
represents quantity of productsA
andB
produced per week, at the locations given.
44.4.3 Performing DEA in R
Now our objective is to first find out the effective DMUs, i.e. which DMUs are using their inputs effectively. Here we will also assume constant returns to scale i.e. output will be doubled if inputs are doubled.
DEA in deaR
is a two step process.
-
Step-1: We will make data in the form as required for the package; using
make_deadata()
function.inputs
,outputs
anddmus
require column references in the data provided. -
Step-2: Performing actual analysis, using
model_basic
which takes previously created data (step-1) and two other essential arguments,-
orientation
: which takes a string value;"io"
(input oriented),"oo"
(output oriented), or"dir"
(directional) -
rts
: again takes a string; specifying type of returns to scale, equal to"crs"
(constant),"vrs"
(variable),"nirs"
(non-increasing),"ndrs"
(non-decreasing) or"grs"
(generalized) - Other arguments may be passed on as per need. See
?model_basic
for more help.
-
store_dea <- make_deadata(store, inputs = 2:3, outputs = 4:5, dmus = 1)
model <- model_basic(store_dea, orientation = 'io', rts = 'crs')
We have stored the DEA model in model
variable just created. Now we can use the following functions to get efficiencies
, targets
and lambdas
respectively.
efficiencies(model)
## Delhi Gurgaon Bengalore Chennai Mumbai Nagpur
## 0.8254374 1.0000000 1.0000000 1.0000000 1.0000000 0.9685549
targets(model)
## $target_input
## x1 x2
## Delhi 41.74913 31.36662
## Gurgaon 60.00000 45.00000
## Bengalore 43.00000 33.00000
## Chennai 53.00000 43.00000
## Mumbai 43.00000 38.00000
## Nagpur 42.61641 33.38805
##
## $target_output
## y1 y2
## Delhi 169 119
## Gurgaon 243 167
## Bengalore 173 158
## Chennai 216 138
## Mumbai 155 161
## Nagpur 169 157
lambdas(model)
## Delhi Gurgaon Bengalore Chennai Mumbai Nagpur
## Delhi 0 0.64348 0.07303 0 0.00000 0
## Gurgaon 0 1.00000 0.00000 0 0.00000 0
## Bengalore 0 0.00000 1.00000 0 0.00000 0
## Chennai 0 0.00000 0.00000 1 0.00000 0
## Mumbai 0 0.00000 0.00000 0 1.00000 0
## Nagpur 0 0.00000 0.85459 0 0.13649 0
44.4.4 Interpreting above results
- As evident from the named function
efficiencies
returned the efficiencies of all DMUs. We can see that all DMUs exceptDelhi
andNagpur
are working efficiently. -
targets
give us the optimum values of inputs and/or outputs for the given values. We can see that we have to reducex1
andx2
to given values atDelhi
andNagpur
. -
lambdas
give the lambdas of the DEA solution. - Further, the
plot()
function will output the following plots which are easy to inerpret.
plot(model)
## Press [enter] to continue
## Press [enter] to continue



Figure 44.1: Data Envelopment Analysis Plots
The example was simple enough. However, we can easily perform DEA on any number of inputs and outputs, using R.