Learn R Programming

productivity (version 0.2.0)

fareprim: Fare-Primont productivity and profitability indices and components

Description

This function estimates and decomposes F<U+00E4>re-Primont productivity and profitability levels and indices using Data Envelopment Analysis (DEA).

Shadow prices of input and output variables are also computed.

When price information is provided, fareprim returns profitability measures and their decomposition, in addition to productivity.

Usage

fareprim(data, id.var, time.var, x.vars, y.vars, w.vars = NULL, p.vars = NULL, 
tech.change = TRUE, tech.reg = TRUE, rts = c("vrs", "crs", "nirs", "ndrs"), 
orientation = c("out", "in", "in-out"), cores = detectCores() - 1, scaled = FALSE, 
indices = FALSE, by.id = NULL, by.year = NULL, out.levels = NULL, out.indices = NULL)

Arguments

data

A dataframe containing the required information for productivity and profitability assessment.

id.var

Number or text string which is the identifier variable of the evaluated firms.

time.var

Number or text string which represents the time period variable.

x.vars

Input quantity variables. Can be a vector of text strings or integers.

y.vars

Output quantity variables. Can be a vector of text strings or integers.

w.vars

Optional. Input price variables. Can be a vector of text strings or integers. By default it is set to NULL so only productivity is computed.

p.vars

Optional. Output price variables. Can be a vector of text strings or integers. By default it is set to NULL so only productivity is computed.

tech.change

Logical. If TRUE (default), the model allows for technological change. See also the Details section.

tech.reg

Logical. If TRUE (default), the model allows for negative technological change (i.e. technological regress). See also the Details section.

rts

Character string specifying the returns to scale assumption to be considered. 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).

orientation

Character string specifying the orientation to be considered. The default value is "out" (output orientation). Other possible options are "in" (input orientation), and "in-out" (both input and output orientations). For this latter, the geometric mean of input and output orientations is returned.

cores

Integer. Specifies the number of cores to be used for parallel computing. By default, cores is set to the total number of CPU cores available from the machine, minus one. It is automatically set to one in cases where the machine is made of one core only. However, when the sample size is small it is recommended to set cores to one.

scaled

Logical. Default is False. When set to TRUE, the input and output quantities are rescaled, so that they all have unit means. See also the Details section.

indices

Logical. If TRUE, fareprim returns, in addition to the levels, indices that reflect changes in a measure. Default is FALSE. See also the Details section.

by.id

Optional. Integer specifying the reference observation used for computing the indices. by.id must be comprised between one and the total number of firms per period. To be specified if indices = TRUE. See also the Details section.

by.year

Optional. Integer specifying the reference year used for computing the indices. by.year must be comprised between one and the total number of time periods. To be specified if indices = TRUE. See also the Details section.

out.levels

A connection, or a character string naming the output file to write productivity and profitability levels to, in a CSV format (See write.csv). If it does not contain an absolute path, the file name is relative to the current working directory, getwd().

out.indices

A connection, or a character string naming the output file to write productivity and profitability change indices to, in a CSV format (See write.csv). If it does not contain an absolute path, the file name is relative to the current working directory, getwd().

Value

fareprim() returns a list of class "FarePrimont". When indices = TRUE, this list contains the following dataframes:

Levels

Several elements are provided in this dataframe along with id.var and by.year depending on the chosen orientation set through orientation:

REV Revenues
COST Costs
PROF Profitability ratio
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
MP Maximum productivity
TFPE TFP efficiency score
OTE Output-oriented technical efficiency score
OSE Output-oriented scale efficiency score
OME Output-oriented mix efficiency score
ROSE Residual output-oriented scale efficiency score
OSME Output-oriented scale-mix efficiency score
ITE Input-oriented technical efficiency score
ISE Input-oriented scale efficiency score
IME Input-oriented mix efficiency score
RISE Residual input-oriented scale efficiency score
ISME Input-oriented scale-mix efficiency score
OTE.ITE Geometric mean of OTE and ITE
OSE.ISE Geometric mean of OSE and ISE
OME.IME Geometric mean of OME and IME
ROSE.RISE Geometric mean of ROSE and RISE
OSME.ISME Geometric mean of OSME and ISME
Note: REV, COST, PROF, P, W, and TT are only provided when w.vars and p.vars are specified.

Shadowp

Shadow prices related x.vars input variables and y.vars output are returned. Shadow prices are named such as Shadowp_ is prefixed to x.vars and y.vars.

Indices

Only provided if indices = TRUE. This dataframe contains the change indices of the different elements computed in Levels. Each element is named with a prefix "d" in front of the level name. For instance profitability change is named dPROF and output-oriented efficiency change is named dOTE.

Warning

The fareprim() function might not properly work with unbalanced panel data, so the user should make sure to use a balanced panel.

Details

The function fareprim() computes F<U+00E4>re-Primont productivity and profitability levels and change indices using a parallel backend (doParallel and foreach packages). The cores option can be used to specify the number of cores to use for the parallel computing. However, when the sample size is small, we recommend to set cores to one.

All DEA linear programs are implemented using the package Rglpk.

The tech.change option can totally prohibit any technological change. When tech.change is set to FALSE, this cancels the effect of tech.reg whatever the value of this latter. The tech.reg option, when set to FALSE, rules out negative technological change (i.e. technological regress). In this case, technological change will increment between consecutive periods.

The scaled option is useful when working with very large and/or very small values. By default this option value is FALSE. However, in the case where scaled = FALSE, fareprim() may issue a warning when large (small) values are present in the input and output quantity variables. The F<U+00E4>re-Primont index may be sensitive to the rescaling especially the mix efficiency component.

By default fareprim() returns a list with (i) a dataframe of productivity and profitability levels and (ii) shadow prices corresponding to each input (x.vars) and output (y.vars) variables. When indices is set to TRUE, fareprim() returns in addition the change indices of productivity and profitability levels.

By default by.id = NULL and by.year = NULL. Hence, when indices = TRUE, each observation is then compared to itself in the first period. The user can easily modify these options by specifying a particular observation in a particular period as the reference. When the user specifies an observation in by.id and when by.year = NULL, then the reference observation is by.id in the first period. If by.year is specified and by.id = NULL, then each observation is compared to itself in the specified period of time.

References

C.J. O'Donnell C.J. (2008), An aggregate quantity-price framework for measuring and decomposing productivity and profitability change. School of Economics, University of Queensland, Australia.

C.J. 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.

C.J. O'Donnell C.J. (2012), Nonparametric estimates of the components of productivity and profitability change in U.S. agriculture. American Journal of Agricultural Economics, 94(4), 873--890.

See Also

See also lowe

Examples

Run this code
# NOT RUN {
# productivity levels and indices' computations without price information 
# indices computed in comparison to the first observation in the first period
# }
# NOT RUN {
FareP1 <- fareprim(data = usagri, id.var = "States", time.var = "Years", x.vars = c(7:10), 
y.vars = c(4:6), rts = "crs", orientation = "in", scaled = TRUE, indices = TRUE, 
by.id = 1, by.year = 1)
  summary(FareP1[["Levels"]])
  FareP1[["Shadowp"]]
# }
# NOT RUN {
# profitability and productivity levels and indices' computations
# }
# NOT RUN {
FareP2 <- fareprim(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), scaled = TRUE, indices = TRUE, 
by.id = 1, by.year = 1)
  summary(FareP2[["Indices"]])
# }

Run the code above in your browser using DataLab