Using Data Envelopment Analysis (DEA), this function measures productivity with Malmquist index.
malm(data, id.var, time.var, x.vars, y.vars, tech.reg = TRUE, rts = c("vrs", "crs",
"nirs", "ndrs"), orientation = c("out", "in"), parallel = FALSE, cores = max(1,
detectCores() - 1), scaled = TRUE)# S3 method for Malmquist
print(x, digits = NULL, …)
A dataframe containing the required information for measuring productivity.
Firms' ID variable. Can be an integer or a text string.
Time period variable. Can be an integer or a text string.
Input quantity variables. Can be a vector of text strings or integers.
Output quantity variables. Can be a vector of text strings or integers.
Logical. If TRUE
(default), the model allows for negative technological change
(i.e. technological regress). If FALSE
, only positive technological change (i.e. technological progress)
is allowed. See also the Details
section.
Character string specifying the returns to scale assumption.
The default value is "vrs"
(variable returns to scale). Other possible options
are "crs"
(constant returns to scale), "nirs"
(non-increasing returns to scale),
or "ndrs"
(non-decreasing returns to scale).
Character string specifying the orientation. The default value is "out"
(output-orientation). The other possible option is "in"
(input-orientation).
Logical. Allows parallel computation. If FALSE
(default) the estimation is conducted
in sequential mode. If TRUE
, parallel mode is activated using the number of cores specified in cores
.
When the sample size is small, it is recommended to keep the parallel
option to its default value (FALSE
).
Integer. Used only if parallel = TRUE
. It specifies the number of cores to be used
for parallel computation. By default, cores = max(1, detectCores() - 1)
.
Logical. If TRUE
(default), input and output quantities are rescaled. If FALSE
, a warning message
is displayed when very large (>1e5) and/or very small (<1e-4) values are present in the input and output quantity variables.
An object of class 'Malmquist'
.
The minimum number of significant digits to be printed in values.
Default = max(3, getOption("digits") - 3)
.
Currently not used.
malm()
returns a list of class 'Malmquist'
for which a summary of productivity measures
in levels and changes is printed.
This list contains the following items:
It contains the Shephard distance function estimates, useful to compute and decompose
the Malmquist productivity index. These distance functions use input and output quantities
for period 1
and period 0
.
In addition to the id.var
variable and periods 1
and 0
, the dataframe
therefore contains, depending on the orientation:
c111o
, c100o
, c011o
, c000o
, c110o
, c010o
, or
c111i
, c100i
, c011i
, c000i
, c110i
, c010i
.
When the returns to scale option (rts
) is different from "crs"
, then v111o
and
v000o
, or v111i
and v000i
(depending on the orientation) are returned in addition
to the distance function estimated under constant returns to scale ("crs"
).
The prefix "c" stands for constant returns to scale ("crs"
) and "v" for
all other types of returns to scale (i.e. "vrs"
, "nirs"
, or "ndrs"
).
The suffix "o" means output-oriented while "i" refers to input-oriented.
The distance function names are displayed with three digits:
(i) the first digit represents the period of the reference technology,
(ii) the second digit represents the period of the inputs, and
(iii) the third digit represents the period of the outputs.
For instance c010o
means output-oriented efficiency under constant returns to scale ("crs"
),
with the reference technology of period 0
, inputs of period 1
and outputs of period 0
.
Malmquist productivity index and its components are provided, depending on the orientation.
malmquist |
Malmquist productivity index |
effch |
Efficiency change |
tech |
Technological change |
obtech |
Output-biased technological change |
ibtech |
Input-biased technological change |
matech |
Magnitude component |
pure.out.effch |
Pure output efficiency change |
(when rts != "crs" and orientation = "out" ) |
|
out.scalech |
Output scale efficiency change |
(when rts != "crs" and orientation = "out" ) |
|
pure.inp.effch |
Pure input efficiency change |
(when rts != "crs" and orientation = "in" ) |
|
inp.scalech |
Input scale efficiency change |
obtech
(Output-biased technological change), ibtech
(Input-biased technological change),
and matech
(Magnitude component) are components of technological change (tech
).
pure.out.effch
(Pure output efficiency change) and out.scalech
(Output scale efficiency change)
are components of efficiency change (effch
).
pure.inp.effch
(Pure input efficiency change), and inp.scalech
(Input scale efficiency change)
are components of efficiency change (effch
).
From an object of class 'Malmquist' obtained from malm(), the
Levels
function extracts Shephard distance function estimates; and
Changes
function extracts Malmquist productivity index and components.
The malm()
function will not work with unbalanced panel data.
Distance functions required for computing the Malmquist index are radial measures which verify the translation
invariance property. Hence, unless very large or very small values are present, the Malmquist index is insensitive
to the rescaling option (scaled
).
F<U+00E4>re R., and Grosskopf S. (1996), Intertemporal Production Frontiers: With Dynamic DEA. Springer Eds.
See Levels
to retrieve a data frame with Shephard distance function estimates.
See Changes
to retrieve a data frame with Malmquist productivity index and components.
# NOT RUN {
## Malmquist productivity index compares each observation in period 1 to the same
## observation in period 0
# }
# NOT RUN {
Malmquist <- malm(data = usagri, id.var = "States", time.var = "Years",
x.vars = c("q.capital", "q.land","q.labor","q.materials"),
y.vars = c("q.livestock", "q.crop", "q.other"), rts = "nirs")
Malmquist
# }
Run the code above in your browser using DataLab