Using Data Envelopment Analysis (DEA), this function measures productivity and profitability in levels and changes with Fisher index.
The Fisher productivity index is the geometric average of Laspeyres and Paasche indices.
Deflated shadow prices of inputs and outputs can also be computed.
fisher(data, id.var, time.var, x.vars, y.vars, w.vars, p.vars, tech.change = TRUE,
tech.reg = TRUE, rts = c("vrs", "crs", "nirs", "ndrs"), orientation = c("out",
"in", "in-out"), parallel = FALSE, cores = max(1, detectCores() - 1), scaled = TRUE,
shadow = FALSE)# S3 method for Fisher
print(x, digits = NULL, …)
A dataframe containing the required information for measuring productivity and profitability.
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.
Input price variables. Can be a vector of text strings or integers.
Output price variables. Can be a vector of text strings or integers.
Logical. If TRUE
(default), the model allows for technological change.
If FALSE
, technological change is prohibited. See also the Details
section.
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). Other possible options
are "in"
(input-orientation), and "in-out"
(both input- and output-orientations).
For "in-out"
, the geometric mean of input- and output-orientations' results is returned.
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.
See also the Details
section.
Logical. Default is FALSE
(no shadow prices are returned). When set to TRUE
, input and output
shadow prices are returned. These shadow prices are informative only and may be subject to the linear programming solver used.
An object of class 'Fisher'
.
The minimum number of significant digits to be printed in values.
Default = max(3, getOption("digits") - 3)
.
Currently not used.
fisher()
returns a list of class 'Fisher'
for which a summary of productivity and profitability
measures in levels and changes, as well as a summary shadow prices (if shadow = TRUE
), is printed.
This list contains the following items:
Several elements are provided, depending on the orientation
specified:
REV |
Revenues |
COST |
Costs |
PROF |
Profitability |
P |
Aggregated output prices |
W |
Aggregated input prices |
TT |
Terms of trade (i.e. P/W ) |
AO |
Aggregated outputs |
AI |
Aggregated inputs |
TFP |
Total Factor Productivity (TFP) |
MP |
Maximum productivity |
TFPE |
TFP efficiency score |
OTE |
Output-oriented technical efficiency score (orientation = "out" ) |
OSE |
Output-oriented scale efficiency score (orientation = "out" ) |
RAE |
Revenue allocative efficiency (orientation = "out" ) |
(equivalent to output-oriented mix efficiency score) |
|
ROSE |
Residual output-oriented scale efficiency score (orientation = "out" ) |
OSME |
Output-oriented scale-mix efficiency score (orientation = "out" ) |
ITE |
Input-oriented technical efficiency score (orientation = "in" ) |
ISE |
Input-oriented scale efficiency score (orientation = "in" ) |
CAE |
Cost allocative efficiency (orientation = "in" ) |
(equivalent to input-oriented mix efficiency score) |
|
RISE |
Residual input-oriented scale efficiency score (orientation = "in" ) |
ISME |
Input-oriented scale-mix efficiency score (orientation = "in" ) |
OTE.ITE |
Geometric mean of OTE and ITE (orientation = "in-out" ) |
OSE.ISE |
Geometric mean of OSE and ISE (orientation = "in-out" ) |
RAE.CAE |
Geometric mean of RAE and CAE (orientation = "in-out" ) |
ROSE.RISE |
Geometric mean of ROSE and RISE (orientation = "in-out" ) |
OSME.ISME |
Geometric mean of OSME and ISME (orientation = "in-out" ) |
RME |
Residual mix efficiency score |
RE |
Revenue efficiency (orientation = "out" ) |
CE |
Cost efficiency (orientation = "in" ) |
Change indices of the different elements of Levels
are provided.
Each change is prefixed by "d"
(e.g. profitability change is denoted dPROF
,
output-oriented efficiency change is denoted dOTE
, etc.).
Each firm is compared to itself in the previous period. Since there is no previous period for the
first period, the results for this first period are replaced by NA
.
Returned only if shadow = TRUE
. It contains the deflated cost input (x.vars
) shadow prices and the
deflated revenue output (y.vars
) shadow prices.
From an object of class 'Fisher' obtained from fisher(), the
Levels
function extracts individual productivity and profitability levels;
Changes
function extracts individual productivity and profitability change indices; and
If shadow = TRUE
, the Shadowp
function extracts individual input and output deflated shadow prices.
The fisher()
function will not work with unbalanced panel data.
The Fisher index may be sensitive to the rescaling.
For extreme efficient observations, the problem of multiple solutions may arise and the values of shadow prices may differ depending on the linear programming solver used (here lpSolveAPI).
When tech.change
is set to FALSE
, this overrides the effect of tech.reg
.
Setting scaled = FALSE
(no rescaling of data) may lead to numerical problems in solving LP
problems while optimizing DEA models. In extreme cases it may also prevent models from being optimized.
The Fisher index is not transitive and therefore each firm is compared to itself in the previous period.
Since there is no previous period for the first period, the results for this first period are replaced by NA
.
Diewert W.E. (1992), Fisher ideal output, input, and productivity indexes revisited. Journal of Productivity Analysis, 3(3), 211-248. https://doi.org/10.1007/BF00158354
Coelli T.J., D.S.P. Rao, C.J. O'Donnell, and G.E. Battese (2005), An Introduction to Efficiency and Productivity Analysis. Springer Eds.
O'Donnell C.J. (2011), The sources of productivity change in the manufacturing sectors of the U.S. economy. School of Economics, University of Queensland, Australia. URL: http://www.uq.edu.au/economics/cepa/docs/WP/WP072011.pdf
See Levels
to retrieve a data frame with individual Fisher
productivity and profitability in levels and components.
See Changes
to retrieve a data frame with individual Fisher
productivity and profitability changes and components.
See Shadowp
to retrieve individual deflated input and output shadow prices, provided that shadow = TRUE
.
See also laspeyres
and paasche
for computations with alternative indices.
# NOT RUN {
## Fisher profitability and productivity levels and changes' computations
# }
# NOT RUN {
Fisher.prod <- fisher(data = usagri, id.var = "States", time.var = "Years", x.vars = c(7:10),
y.vars = c(4:6), w.vars = c(14:17), p.vars = c(11:13), orientation = "out")
Fisher.prod
# }
Run the code above in your browser using DataLab