Skip to content

Data Envelopment Analysis

0packages depend
596downloads / year
88.0%test coverage
13/13flavors OK

Overview

About

Nonparametric efficiency measurement by data envelopment analysis. Provides radial (Charnes-Cooper-Rhodes and Banker-Charnes-Cooper) technical efficiency under constant, variable, non-increasing and non-decreasing returns to scale, the slacks-based measure of Tone (2001), the additive model of Charnes and others (1985), and the directional distance function of Chambers, Chung and Fare (1996), all through one interface and one result object. Efficiency estimates are accompanied by peers, slacks, returns-to-scale classification, scale efficiency and the optimal multipliers, and by bias-corrected estimates and confidence intervals from the smoothed homogeneous bootstrap of Simar and Wilson (1998). Where prices are known, cost, revenue and Nerlovian profit efficiency separate the technical component from the allocative one; where they are not, cross-efficiency with the secondary goals of Doyle and Green (1994) ranks units that a self-appraisal leaves tied. This package succeeds the archived 'DEA' package of Diaz-Martinez and Fernandez-Menendez (2008).

Changes in 1.0.0

First release.

**This package succeeds DEA 0.1-2**, published in 2008 by Zuleyka

Diaz-Martinez and Jose Fernandez-Menendez and archived shortly afterwards. Both

are authors of this package.

The two cover the same ground — the 2008 package had CCR, BCC, additive and

slacks-based models in envelopment and multiplier form — but **no code is

carried over**. The 2008 package bundled a C implementation of the simplex

method from GLPK; this one has no compiled code at all and solves through

**lpSolveAPI**. The implementation is new throughout and the API is entirely

different:

| DEA 0.1-2 | here |

|---|---|

Show all changes in 1.0.0Hide the rest of the changes in 1.0.0

| dea.ccr.io.env(), dea.ccr.oo.env(), dea.bcc.io.env(), dea.bcc.oo.env() | dea(rts = "crs" / "vrs", orientation = "in" / "out") |

| dea.ccr.io.mul(), dea.ccr.oo.mul(), dea.bcc.io.mul(), dea.bcc.oo.mul() | dea(..., multipliers = TRUE), then multipliers(fit) for v and u |

| dea.sbm.ccr(), dea.sbm.ccr.io(), dea.sbm.ccr.oo(), dea.sbm.bcc(), dea.sbm.bcc.io(), dea.sbm.bcc.oo() | dea_sbm(rts = "crs" / "vrs", orientation = "none" / "in" / "out") |

| dea.add.env() | dea_add(measure = "unweighted"), plus the normalized RAM and MIP measures |

| dea.add.mul() | dea_add() for the slacks; dea(..., multipliers = TRUE) for the supporting weights |

All sixteen entry points of 0.1-2 are covered, envelopment and multiplier form

alike. Code written against them will not run: the names, the arguments and the

return values are all different. The version number starts at 1.0.0 rather than

0.1.0 because 0.1.0 would rank *below* the archived 0.1-2 under R's version

ordering.

Prices, and weights

  • dea(..., multipliers = TRUE) solves the **multiplier (dual) program** at each DMU and returns the optimal weights v on the inputs, u on the outputs and the returns-to-scale intercept u0, in the caller's own units. multipliers(fit) puts them in one matrix. For an *efficient* DMU these are not unique -- there is a whole face of optimal weight vectors -- and the documentation says so rather than leaving it to be discovered.
  • dea_cost() and dea_revenue() -- cost and revenue efficiency, each factoring **exactly** into technical times allocative, so a DMU that sits on the frontier while buying the wrong mix for its prices is visible as such.
  • dea_profit() -- Nerlovian profit inefficiency, the profit gap normalized by the value of a direction. It *adds* into technical plus allocative rather than multiplying, because observed profit is routinely zero or negative and a ratio is undefined exactly where the question matters. Constant and non-decreasing returns are refused: maximum profit over a cone is unbounded as soon as one reference DMU is profitable.
  • dea_cross() -- cross-efficiency, with the Doyle and Green (1994) benevolent and aggressive secondary goals. Plain cross-efficiency depends on which vertex of an optimal face the solver stopped at, and the spread is first-order rather than numerical; running both goals brackets it. On charnes1981 the constant-returns model calls 19 of 70 sites efficient and cannot rank them, and cross-efficiency ranks all 70 with no ties.

Estimators

  • dea() — radial Debreu-Farrell technical efficiency under constant ("crs"), variable ("vrs"), non-increasing ("nirs") and non-decreasing ("ndrs") returns to scale, and under free disposal ("fdh"), in either orientation. Optional second-stage slack maximization, Andersen-Petersen super-efficiency, and an explicit reference technology through xref/yref.
  • dea_sbm() — the slacks-based measure of Tone (2001), non-oriented, input-oriented or output-oriented. The non-oriented measure is a fractional program and is solved exactly by the Charnes-Cooper linearization.
  • dea_add() — the additive model of Charnes, Cooper, Golany, Seiford and Stutz (1985), with three objective weightings: the Range Adjusted Measure of Cooper, Park and Pastor (1999), the Measure of Inefficiency Proportions, and the original unweighted total. One program on three scales; the projection and the efficient set are identical across them, and that set is exactly the Pareto-Koopmans set dea() and dea_sbm() find.
  • dea_ddf() — the directional distance function of Chambers, Chung and Fare (1996), with the direction given as one of five shorthands, a fixed vector, or one row per DMU. Accepts zero and negative data, which the radial and slacks-based measures cannot.
  • dea_rts() — scale efficiency and the returns-to-scale classification, from a single sweep of the constant-, variable- and non-increasing-returns technologies.

Inference

  • dea_boot() — the smoothed homogeneous bootstrap of Simar and Wilson (1998): bias, bootstrap standard error, bias-corrected efficiency and percentile confidence intervals. Reports Simar and Wilson's own |bias|/se > 1/sqrt(3) rule per DMU as correct_worthwhile rather than applying the correction silently. Parallel over replications through parallel::mclapply.
  • dea_rate() — the rate a DEA estimator can attain, as the slope of log mean squared error on log sample size, given the number of inputs and outputs and the returns-to-scale assumption.
  • dea_sim() — simulate a convex, freely disposable technology whose input- and output-oriented Farrell efficiencies have a closed form, so that an estimator can be scored against a truth rather than against another implementation.

Data

  • charnes1981 — the Program Follow Through data of Charnes, Cooper and Rhodes (1981), 70 school sites with five inputs and three outputs. The original DEA application, and the standard worked example in the field. Identical to the copies distributed as Benchmarking::charnes1981 and npsf::ccr81, which were checked against each other before this one was made.

Interface

  • x and y accept matrices, data frames, bare numeric vectors, or -- with data -- character column names or one-sided formulas.
  • One result class, "dea", shared by all three estimators, with print(), summary(), plot(), fitted(), nobs(), efficiency(), peers() and slacks() methods. efficiency(fit, "score") maps every model's measure onto a common (0, 1] scale, and deliberately refuses to do so for a directional model whose direction is neither purely input nor purely output, because no such mapping exists.
  • "drs" and "irs" are accepted as aliases for "nirs" and "ndrs", the spellings **Benchmarking** uses, so switching packages does not silently change the model.
  • A stray positional argument is refused rather than absorbed. data is the third positional argument of every entry point, so dea_add(x, y, "ram") used to put "ram" there and silently take the default measure. It now errors.
  • Input and output columns are rescaled to mean one before solving. Radial efficiency, the slacks-based measure and a proportional-direction directional distance are all invariant to this, so no answer changes and the linear program is much better conditioned; slacks come back in the caller's own units.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 2.0 min · r-oldrel-macos-x86_64
Status changes
  • OK13 OKNow
  • OK6 OK2026-09-11
Advisories

none known

Documentation

In release 1.0.0
READMEYes · 1,144 wordsVignettesYes · 1 · dynamicNEWSYes · 67% structured · mentions 1.0.0Citation fileYes · software entry onlyWebsiteYes
Help pages
12includes a package overview page
Examples that run
100%12 run in a plain check
Exported functions with examples
100%
Documented parameters
44%
Return-value docs
100%
Help pages citing references
83%

Downloads

596
CRAN downloads in the past year
Rank #22,472 · ~2/day · ~50/mo
Daily download trend is not available in this view yet.
32830 days
59390 days
5961 year
Compare downloads with other packages →
Also on7 r2u8 autocran

Repository

3Stars
1Forks
0Open issues
0Open PRs
0Releases
34Commits
2Commit identities
dea
34 commits · Last activity 2026-10-01 · +50% stars, 30d · Default branch at 1.0.3, ahead of CRAN 1.0.0 (checked 2026-10-21)
Responsiveness
How these are sampled
PRs merged (all time)
not measured
Median days to close, 50 most recently updated closed issues
12
Median days to close, 50 most recently updated closed PRs
not measured

Stars over time

2026-09-10 · 12026-10-17 · 3
PracticesBeta

4 development-tooling and community-health practices detected across 3 families in the upstream repository

Checks run against github.com/davidhbernstein/dea on 2026-10-21.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

CRAN release process (1)
cran-comments.md
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v4 (2026-10-20)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-08-24
    Commits: at least 30 crediting it in the message
Models named in its commits
  • Claude Opus 530 commits · Aug to Oct 2026
Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
6 external dependencies (excludes base and recommended)

Installing DEA adds 1 package (1 with compiled code, 479 KB of source tarballs). Heaviest: lpSolveAPI 479 KB.

Depends (1)
R >= 4.0.0
Imports (4)
lpSolveAPIstatsgraphicsutils
LinkingTo (0)
none
Suggests (7)
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

Datasets

People & History

People (3)
Author, Maintainer since 1.0.0 (2026) · added in 1.0.0
Author · added in 0.1-2
Author · added in 1.0.0

Previously maintained by Zuleyka Diaz-Martinez (0.1-1 to 0.1-2).

Listed in earlier versions (3)
Show 3 peopleHide 3 people
Zuleyka D{\'i}az-Mart{\'i}nez
no longer listed · 0.1-1
Jos{\'e} Fern{\'a}ndez-Men{\'e}ndez.
no longer listed · 0.1-1
Jose Fernandez-Menendez.
no longer listed · 0.1-2
Releases (3)

Pick two releases to compare their code metrics.

  • unarchivedReturned to CRAN
    2026-09-10
  • 1.0.0Latest
    record
    2026-09-10 · current release · diff ↗ ·
    added 16 exports
    dea, dea_sbm, dea_ddf, dea_add, dea_rts, dea_boot, dea_sim, dea_rate, dea_cost, dea_revenue, dea_profit, dea_cross, efficiency, peers, slacks, multipliers
  • R
    R 4.6.0 released · 2026-04-24
  • R
    R 4.5.0 released · 2025-04-11
  • R
    R 4.4.0 released · 2024-04-24
  • R
    R 4.3.0 released · 2023-04-21
  • R
    R 4.2.0 released · 2022-04-22
  • R
    R 4.1.0 released · 2021-05-18
  • R
    R 4.0.0 released · 2020-04-24
  • R
    R 3.6.0 released · 2019-04-26
  • R
    R 3.5.0 released · 2018-04-23
  • R
    R 3.4.0 released · 2017-04-21
  • R
    R 3.3.0 released · 2016-05-03
  • R
    R 3.2.0 released · 2015-04-16
  • R
    R 3.1.0 released · 2014-04-10
  • R
    R 3.0.0 released · 2013-04-03
Show 13 earlier eventsHide 13 earlier events
  • R
    R 2.15.0 released · 2012-03-30
  • R
    R 2.14.0 released · 2011-10-31
  • R
    R 2.13.0 released · 2011-04-13
  • R
    R 2.12.0 released · 2010-10-15
  • archivedRemoved from CRAN
    2010-07-30
  • R
    R 2.11.0 released · 2010-04-22
  • R
    R 2.10.0 released · 2009-10-26
  • R
    R 2.9.0 released · 2009-04-17
  • R
    R 2.8.0 released · 2008-10-20
  • R
    R 2.7.0 released · 2008-04-22
  • 0.1-2
    record
    2008-02-18 · diff ↗
  • 0.1-1
    record
    2008-01-29
  • R
    R 2.6.0 released · 2007-10-03

Package metadata

First published
2008-01-29
Total releases
3 / 18 yrs
License
GPL (>= 2) OSI
Minimum R
≥ 4.0.0
Bundled data
1.9 KB / 1 file
Download size
112 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("DEA")

The package provides a citation file, so citation() returns the authors' own entry.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for DEA version 1.0.0 [Data set]. HJJB, LLC. Data release v2026-10-25. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy