The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
High-dimensional visualization methods for data envelopment analysis (DEA), gathered into a single R package. It brings together techniques that have appeared in the literature but remained scattered and largely unimplemented: cross-efficiency matrix unfolding, the Porembski reference-set graph, PCA biplots, multidimensional-scaling colour-plots, self-organizing maps, the Costa bi-dimensional efficient frontier, parallel coordinates, radar charts, panel-data trajectory biplots, peer and reference networks, and a set of descriptive plots.
The methods follow the author’s PhD thesis (Ashkiani, 2019).
Everything is built around one validated object,
dea_data, which every function accepts (plain data frames
are coerced automatically). Functions follow a consistent naming
convention plot_<source>_<method>:
compute_* — analysis, returns values (efficiency
scores, cross-efficiency matrices, multiplier weights, a fitted
SOM).plot_io_* — plots built from inputs/outputs (the
io).plot_cem_* — plots of the cross-efficiency matrix (the
cem).plot_efficiency_* — plots of the efficiency
scores.plot_panel_io_* — plots of panel (long-format)
input/output data.Most plotting functions share the same four arguments:
interactive — FALSE (default) returns a
static ggplot2 object; TRUE returns an
interactive plotly object.labels — TRUE (default) shows the
identifying text labels for that plot (DMU names on points and networks,
DMU ticks on heatmaps, variable names on distributions and radar, and so
on).title — an optional plot title.... — passed through to the underlying geom (or to the
relevant compute_* function for the plots that take raw
data).A shared colour scheme is used throughout: the colour-blind-safe Okabe–Ito palette for categories and viridis for continuous scales.
The Benchmarking package is the DEA engine. The
modelling and plotting packages are in Suggests; each
function checks for the ones it needs and errors informatively if they
are missing.
# install.packages("devtools")
devtools::install_local("deaviz") # from the package directory
# install the suggested engines you intend to use, e.g.:
install.packages(c("Benchmarking", "ggplot2", "plotly", "lpSolve",
"smacof", "kohonen", "MASS", "ggrepel"))library(deaviz)
# Build the data object (the example data is not i_/o_ prefixed,
# so name the inputs and outputs explicitly)
d <- dea_data(
chinese_cities,
inputs = c("industrial_labour_force", "working_funds", "investments"),
outputs = c("gross_industrial_output", "profit_and_tax", "retail_sales"),
id = "DMU"
)
# Analysis
eff <- compute_efficiency(d, rts = "crs") # Farrell efficiency
ce <- compute_cross_efficiency(d) # cross-efficiency matrix
# Visualization (static ggplot2 by default)
plot_efficiency_distributions(d)
plot_io_pca_biplot(d)
plot_cem_heatmap(ce)
plot_cem_unfolding(ce)
plot_io_costa_frontier(d)
plot_io_peer_network(d, size_by_peers = TRUE)
# The same plot, interactive (plotly), with labels turned off
plot_io_pca_biplot(d, interactive = TRUE, labels = FALSE)With your own data you can skip the explicit
inputs/outputs by prefixing columns
i_ (inputs) and o_ (outputs);
dea_data() then recognises them automatically.
| Area | Functions |
|---|---|
| Data object | dea_data(), as_dea_data() |
| Efficiency analysis | compute_efficiency(),
compute_multiplier_weights() |
| Cross-efficiency analysis | compute_cross_efficiency(),
compute_cross_efficiency_weights(),
standardize_weights() |
| SOM analysis | compute_som() |
| Descriptive (inputs/outputs) | plot_io_distributions(),
plot_io_scatter(), plot_io_heatmap(),
plot_io_parcoo(), plot_io_radar() |
| Efficiency plots | plot_efficiency_distributions(),
plot_io_efficients() |
| Projections & frontier | plot_io_pca_biplot(), plot_io_mds(),
plot_io_costa_frontier(),
plot_io_3dscatter() |
| Reference networks | plot_io_lambda_network(),
plot_io_peer_network() |
| Panel data | plot_panel_io_biplot() |
| Self-organizing maps | plot_io_som(),
plot_io_som_components() |
| Cross-efficiency matrix | plot_cem_heatmap(), plot_cem_unfolding(),
plot_cem_weights_heatmap() |
| Data | chinese_cities |
If you use this package, please cite the thesis it is based on:
Ashkiani, S. (2019). Four Essays on Data Visualization and Anomaly Detection of Data Envelopment Analysis Problems [PhD thesis, Universitat Autonoma de Barcelona]. https://ddd.uab.cat/record/240333
See citation("deaviz") for the BibTeX entry.
This package implements my DEA-Viz methods. An AI coding assistant (Claude, Anthropic) was used to help implement and refine the R code from my specifications and prototype functions; I designed the methods, and reviewed, tested, and validated all code, taking full responsibility for the software.
AGPL-3.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.