Title: | Advanced Methods for Stochastic Frontier Analysis |
---|---|
Description: | Stochastic frontier analysis with advanced methods. In particular, it applies the approach proposed by Latruffe et al. (2017) <DOI:10.1093/ajae/aaw077> to estimate a stochastic frontier with technical inefficiency effects when one input is endogenous. |
Authors: | Yann Desjeux [aut, cre], Laure Latruffe [aut], Alain Carpentier [ctb] |
Maintainer: | Yann Desjeux <[email protected]> |
License: | GPL-3 |
Version: | 1.0.1 |
Built: | 2024-11-13 03:12:16 UTC |
Source: | https://github.com/cran/sfadv |
The Farms
data frame contains simulated data for 2,500 dairy farms.
Farms
Farms
This data frame contains the following 14 variables:
farm_output |
Farm total output, in constant Euros. |
agri_land |
Farm agricultural area, in hectares. |
tot_lab |
Total labour used on the farm, in hours. |
tot_asset |
Total assets of the farm (excluding land), in constant Euros. |
LFA |
Dummy variable indicating whether the farm is located within a |
Less Favoured Area (1 ) or not (0 ). |
|
hired_lab |
Ratio of the farm hired labour to total labour (tot_lab ). |
rented_land |
Ratio of the farm rented land to agricultural area (agri_land ). |
debt_asset |
Ratio of the farm total debts to total assets. |
costs |
Costs of variable inputs used on the farm, in constant Euros. |
subs |
Amount of the farm production subsidies received per hectare of agricultural area |
(agri_land ), in constant Euros. |
|
region |
Factor variable representing the administrative region of the farm. |
milkprice |
Average farm milk price per ton of milk, in constant Euros. |
price_ind |
National yearly price index of variable inputs. |
T |
Time trend. |
Simulated farmers' accountancy data
head(Farms) str(Farms) summary(Farms) lm.output <- lm(farm_output ~ agri_land + tot_lab + tot_asset + costs, data = Farms) summary(lm.output)
head(Farms) str(Farms) summary(Farms) lm.output <- lm(farm_output ~ agri_land + tot_lab + tot_asset + costs, data = Farms) summary(lm.output)
It implements a Method of Moments (MM) estimation of stochastic production frontier with explanatory variables influencing technical inefficiency (i.e. the technical inefficiency effects) and accounting for one single endogenous input.
sfaendog(y, x.exo, x.endo, c.var, ineff, inst, data, nls.algo = c("GN", "LM"), gmm.kernel = c("Bartlett", "Quadratic Spectral", "Truncated", "Parzen", "Tukey-Hanning"), gmm.optim = c("BFGS", "Nelder-Mead", "CG", "SANN"), maxiter = 100)
sfaendog(y, x.exo, x.endo, c.var, ineff, inst, data, nls.algo = c("GN", "LM"), gmm.kernel = c("Bartlett", "Quadratic Spectral", "Truncated", "Parzen", "Tukey-Hanning"), gmm.optim = c("BFGS", "Nelder-Mead", "CG", "SANN"), maxiter = 100)
y |
A character string specifying the name of the dependent variable of the
production function (output). Values of the |
x.exo |
A vector of strings containing the names of the exogenous inputs
of the production function. Values of the |
x.endo |
A character string specifying the name of the input of the
production function considered as endogenous. Values of the the |
c.var |
A vector of strings containing the names of non-input variables influencing the output (production environment conditions, time trend, etc.). |
ineff |
A vector of strings containing the names of the variables influencing technical inefficiency. |
inst |
A vector of strings containing the names of the external instrumental variables. |
data |
A data frame containing the variables called in |
nls.algo |
A character string specifying the algorithm used in the Non-linear Least
Squares (NLS) estimation (see |
gmm.kernel |
A character string specifying the type of kernel used to compute
the covariance matrix of the vector of sample moment conditions in the Generalised Method of
Moments (GMM) estimations (see |
gmm.optim |
A character string specifying the optimisation method to be applied
in the GMM estimations (see |
maxiter |
A positive integer specifying the maximum number of iterations
allowed for the NLS and GMM estimations. The |
The function sfaendog()
implements the 4-step ‘recipe’ detailed
in Latruffe et al. (2017, p.788).
The use of basic formula operators generally involved in model formulae, such as
":"
, "*"
, or "^"
, are allowed in x.exo
, x.endo
,
c.var
, ineff
and inst
.
As in function formula
, the function I()
can also be used to inhibit the interpretation of operators such as "+"
,
"-"
, "*"
and "^"
as formula operators, so that they are used as
arithmetical operators.
sfaendog()
assumes a Cobb-Douglas functional form for the production frontier.
In this case, the stochastic frontier production model is written as:
where is the log;
is the observed output;
and
are
vectors of parameters to be estimated;
is a vector containing
the inputs as well as a constant term one;
is a random term
which accounts for the effects of unobserved heterogeneity across observations and
for stochastic events affecting the production process;
is a non-negative
term accounting for the presence of technical inefficiency;
is a vector of variables influencing technical inefficiency (the inefficiency effects),
including a constant term one; and
is a positive random term with mean one.
If all inputs are exogenous, the above equation can be estimated by NLS.
sfaendog()
accounts for the endogeneity of one input, with a MM estimator based
on Chamberlain's (1987) ‘efficient instruments’.
In the case of endogeneity of one input, the stochastic frontier production model
defined above can be rewritten as:
where is the vector containing the exogenous inputs and the
constant term one;
is the endogenous input; and the subscript
denotes the ‘true’ parameters value. The vector of exogenous variables is
denoted by
where
is the vector of external instrumental variables.
Assuming that , and that
and
are independent, the stochastic frontier
production model can be rewritten as:
where the error term is defined as
The estimation 'recipe' detailed in Latruffe et al. (2017, p.788) and implemented
through sfaendog()
consists in the following four steps:
Step1: Ordinary Least Squares (OLS) estimation of
on a set of external instrumental variables (
) and all exogenous
variables included in the stochastic frontier production model. This generates the
predicted values of
to be used as instruments in
Step3
.
The strength of the external instrumental variables () is measured by
testing, with a Fisher test, the nullity of the parameters related to these external
instrumental variables.
This Step1
corresponds to Step 1 of the estimation 'recipe' presented in
Latruffe et al. (2017, p.788).
Step2: NLS estimation of the stochastic frontier production model,
to compute a non consistent and non efficient estimator to be used in Step3
. Step2
consists in three sub-steps (not detailed as such in
Latruffe et al.'s (2017, p.788) recipe):
Step2a.i: OLS estimation of a production model with the output
as the dependent variable, and the explanatory variables being the inputs and the
non-input variables influencing the output.
This provides predicted residuals to be used in Step2a.ii
, and parameters to be
used as starting values for the variables in the production part of the stochastic frontier
production model in Step2b
.
Step2a.ii: OLS estimation of the predicted residuals of Step2a.i
on the variables influencing technical inefficiency.
This provides parameters to be used as starting values for the variables in the inefficiency
effect part of the stochastic frontier production model in Step2b
.
Step2b: NLS estimation of the stochastic frontier production model,
using starting values obtained from Step2a.i
and Step2a.ii
.
This sub-step corresponds to Step 2 of the estimation 'recipe' presented in
Latruffe et al. (2017, p.788).
Step3: Estimation of the stochastic frontier production model, using the
predicted values of the endogenous input obtained from Step1
and using the parameters
obtained from Step2b
as starting values. The estimation is done with GMM. Step3
computes a consistent but non efficient estimator to be used in Step4
.
This Step3
corresponds to Step 3 of the estimation 'recipe' presented in
Latruffe et al. (2017, p.788).
Step4: Estimation of the stochastic frontier production model, using the
predicted values of the endogenous input obtained from Step1
the parameters
obtained from Step3
as starting values. This estimation is done with GMM. Step4
computes a consistent and efficient estimator, and returns
the final results of the estimation of the stochastic frontier production model.
This Step4
corresponds to Step 4 of the estimation 'recipe' presented in
Latruffe et al. (2017, p.788).
Please note that, the applicability of default options in nls.algo
, gmm.kernel
, and gmm.optim
is highly data-dependent and the user may have to play around with different options.
sfaendog
returns a list of class 'sfaendog'
.
The object of class 'sfaendog'
is a list containing at least the following
components:
Step1 |
Results of |
FishTest |
The list of external instrumental variables ( |
Step2 |
Results of |
Step3 |
Results of |
Step4 |
Results of |
The function summary
is used to obtain and print
a summary of the results.
Yann Desjeux, Laure Latruffe
Chamberlain G. (1987). Asymptotic Efficiency in Estimation with Conditional Moment Restrictions. Journal of Econometrics, 34(3), 305–334. https://doi.org/10.1016/0304-4076(87)90015-7
Latruffe L., Bravo-Ureta B.E., Carpentier A., Desjeux Y., and Moreira V.H. (2017). Subsidies and Technical Efficiency in Agriculture: Evidence from European Dairy Farms. American Journal of Agricultural Economics, 99(3), 783–799. https://doi.org/10.1093/ajae/aaw077
summary
for creating and printing summary results.
## Not run: y <- "farm_output" x.exo <- c("agri_land", "tot_lab", "tot_asset") x.endo <- "costs" c.var <- c("LFA", "T", "I(T^2)") ineff <- c("hired_lab", "rented_land", "debt_asset", "subs", "region", "region:T") inst <- c("milkprice", "I(milkprice^2)", "price_ind", "milkprice:region") RES <- sfaendog(y, x.exo, x.endo, c.var, ineff, inst, data=Farms) summary(RES) ## End(Not run)
## Not run: y <- "farm_output" x.exo <- c("agri_land", "tot_lab", "tot_asset") x.endo <- "costs" c.var <- c("LFA", "T", "I(T^2)") ineff <- c("hired_lab", "rented_land", "debt_asset", "subs", "region", "region:T") inst <- c("milkprice", "I(milkprice^2)", "price_ind", "milkprice:region") RES <- sfaendog(y, x.exo, x.endo, c.var, ineff, inst, data=Farms) summary(RES) ## End(Not run)
It creates and displays the results of an estimation returned by sfaendog
.
## S3 method for class 'sfaendog' summary(object, all = FALSE, ...) ## S3 method for class 'summary.sfaendog' print(x, digits = max(3, getOption("digits") - 3), signif.stars = getOption("show.signif.stars"), ...)
## S3 method for class 'sfaendog' summary(object, all = FALSE, ...) ## S3 method for class 'summary.sfaendog' print(x, digits = max(3, getOption("digits") - 3), signif.stars = getOption("show.signif.stars"), ...)
object |
An object of class |
x |
An object of class |
all |
Logical. If |
signif.stars |
Logical. If |
digits |
The minimum number of significant digits to be printed in values. |
... |
Currently not used. |
print.summary.sfaendog
tries to be smart about formatting the coefficients,
standard errors, etc. and additionally gives significance stars if
signif.stars
is TRUE
.
A list of class 'summary.sfaendog'
is returned, containing the number of
observations, the parameter estimates, standard errors, t-values and p-values.
More precisely:
Step1 |
The list of summary statistics of ‘Step1’ OLS estimation of the endogenous input. |
FishTest |
A list containing the names of the variables used as external instrumental
variables in the estimation, and the results (i.e. |
Step2 |
The list of summary statistics of ‘Step2’ NLS estimation of the stochastic frontier production model. |
Step3 |
The list of summary statistics of ‘Step3’ GMM estimation of the
stochastic frontier production model. The name of the endogenous input (wrapped with
‘ |
Step4 |
The list of summary statistics of ‘Step4’ GMM estimation of the
stochastic frontier production model. In addition, it also returns the name of the
endogenous input (wrapped with ‘ |
Step2
and Step3
are returned only if all = TRUE
.
In Step2
to Step4
results, InterceptX
is the constant term in
the production part of the stochastic frontier production model, while InterceptZ
is
the constant term in the inefficiency effect part.
Information on convergence is also provided with Step3
and Step4
results, where
Convergence
code = 0
indicates successful completion (see optim
).
Yann Desjeux, Laure Latruffe
sfaendog
, for the model fitting function.