dea.plot {Benchmarking}R Documentation

Plot of DEA technologies


Draw a graph of a DEA technology. Designed for two goods illustrations, either isoquant (2 inputs), transformation curve (2 outputs), or a production function (1 input and 1 output). If the number of good is larger than 2 then aggregation occur, either simple or weighted.


dea.plot(x, y, RTS="vrs", ORIENTATION="in-out", txt=NULL, add=FALSE, 
         wx=NULL, wy=NULL, TRANSPOSE=FALSE, fex=1, GRID=FALSE,
         RANGE=FALSE, param=NULL, ..., xlim, ylim, xlab, ylab), y, RTS="vrs",...)

dea.plot.isoquant(x1, x2, RTS="vrs",...)

dea.plot.transform(y1, y2, RTS="vrs",...)



The good illustrated on the first axis. If there are more than 1 input then inputs are just summed or, if wx is present, a weighted sum of inputs is used.


The good illustrated on the second axis. If there are more than 1 output then outputs are just summed or, if wy is present, a weighted sum of outputs is used.

x1, y1

The good illustrated on the first axis

x2, y2

The good illustrated on the second axis


Underlying DEA model / assumptions about returns to scale: "fdh" (0), "vrs" (1), "drs" (2), "crs" (3), "irs" (4), "irs2" (5) (irs without convexity), "add" (6), and "fdh+" (7). Numbers in parenthesis can also be used as values for RTS


Input-output graph of 1 input and 1 output is "in-out" (0), graph of 2 inputs is "in" (1), and graph of 2 outputs is "out" (2).


txt is an array to label the observations. If txt=TRUE the observations are labeled by the observation number or rownames if there are any.


For add=T the technology is drawn on top of an existing graph. With the default add=F, a new graph is made.


Weight to aggregate the first axis if there are more than 1 good behind the first axis.


Weights to aggregate for the second axis if there are more than 1 good behind the second the second axis.


Only relevant for more than 1 good for each axis, see dea for a description of this option.


If GRIF=TRUE a gray grid is put on the plot.


Usual options for the methods plot, lines, and abline etc.


Relative size of the text/labels on observations; corresponds to cex, but only changes the size of the text.


A logical variable, if RANGE=TRUE the limits for the graph is the range of the variables; zero is always included. Default is RANGE=FALSE when the range is from zero to the max values. Relevant if some values are negative.


Possible parameters. At the moment only used for RTS="fdh+"; see the section details and examples for its use. Future versions might also use param for other purposes.


Possible limits c(x1,x2) for the first axis


Possible limits c(y1,y2) for the second axis


Possible label for the x-axis


Possible label for the y-axis


The method dea.plot is the general plotting method. The the 3 others are specialized versions for frontiers (1 input and 1 output), isoquant curves (2 inputs for given outputs), and transformation curves (2 outputs for given inputs) obtained by using the argument ORIENTATION.

The crs factor in RTS="fdh+" that sets the lower and upper bound can be changed by the argument param that will set the lower and upper bound to 1-param and 1+param; the default value is param=.15. The value must be greater than or equal to 0 and strictly less than 1. A value of 0 corresponds to RTS="fdh". The FDH+ technology set is described in Bogetoft and Otto (2011) pages 72–73.


No return, uses the original graphing system.


If there are more than 1 good for the arguments x and y then the goods are just summed or, if wx or wy are present, weighted sum of goods are used. In this case the use of the command identify must be calles as dea.plot(rowSums(x),rowSums(y)).

Warning If you use this facility to plot multi input and multi output then the plot may deceive you as fully multi efficient firms are not necessarely placed on the two dimensional frontier.

Note that RTS="add" and RTS="fdh+" only works for ORIENTATION="in-out" (0).


Peter Bogetoft and Lars Otto


Peter Bogetoft and Lars Otto; Benchmarking with DEA, SFA, and R; Springer 2011

Paul Murrell; R Graphics; Chapman & Hall 2006

See Also

The documentation for the function plot and Murrell (2006) for further options and on customizing plots.


x <- matrix(c(100,200,300,500,600,100),ncol=1)
y <- matrix(c(75,100,300,400,400,50),ncol=1)


n <- 10
x <- matrix(1:n,,1)
y <- matrix(x^(1.6) + abs(rnorm(n)),,1),y,RTS="irs",txt=1:n),y,RTS="irs2",add=TRUE,lty="dotted")

# Two different forms of irs: irs and irs2, and two different ways to
# make a frontier
id <- sample(1:n,30,replace=TRUE)

# Difference between the FDH technology and the additive 
# FRH technology
x <- matrix(c(100,220,300,520,600,100),ncol=1)
y <- matrix(c(75,100,300,400,400,50),ncol=1)

# Use of parameter in FDH+

[Package Benchmarking version 0.29 Index]