Stochastic Frontier Analysis

Maximum Likelihood Estimation of Stochastic Frontier Production and Cost Functions. Two specifications are available: the error components specification with time-varying efficiencies (Battese and Coelli, 1992) and a model specification in which the firm effects are directly influenced by a number of variables (Battese and Coelli, 1995).


News

THIS IS THE CHANGELOG OF THE "frontier" PACKAGE

Please note that only the most significant changes are reported here. A full ChangeLog is available in the log messages of the SVN repository on R-Forge.

        CHANGES IN VERSION 1.1-0  (2013-08-20)
  • stochastic frontier models can be estimated without an intercept

  • added fitted() method for objects of class "frontier" for obtaining the fitted/predicted frontier values of each observation

  • added argument "extraPar" to the coef(), vcov(), and summary() methods for frontier models: if this argument is set to TRUE, further parameters are calculated (based on the estimated parameters) and returned

  • removed unused argument "multErr" of sfa(), because this feature probably will not be implemented in the near future

  • frontierTranslogRay() now makes sure that the ratios (arcs) are in the interval [-1,1] before it takes the arc-cosine of the ratio, because small rouding errors can make that a few ratios are around 1+1e-8 or -1-1e-8 (suggested by Tomasz Czekaj)

        CHANGES IN VERSION 1.0-2  (2013-07-06)
  • added argument "minusU" to efficiencies.frontier() and argument "effMinusU" to summary.frontier() that will replace argument "farrell" in the future

  • added a CITATION file

  • added a start-up message

        CHANGES IN VERSION 0.997-14  (2012-12-04)
  • fixed a bug in the Fortran code that could result in a segmentation fault error when an efficiency effects frontier model with intercept is estimated (many thanks to Simon Urbanek and Berend Hasselman for pointing this bug out to me!)
        CHANGES IN VERSION 0.997-12  (2012-06-03)
  • further arguments to print.summary.frontier() are forwarded to printCoefmat()

  • if the likelihood value of the ML estimation is less than that obtained using OLS, there is no longer a warning issued if argument maxit is set to 0

  • minor improvements of the examples in the documentation

        CHANGES IN VERSION 0.997-10  (2012-06-02)
  • added nobs() method for objects of class "frontier"
        CHANGES IN VERSION 0.997-8  (2012-03-04)
  • sfa() now issues a warning message if the covariance matrix of the ML estimates is not positive semi-definite, singular, or not invertible for other reasons

  • sfa() now issues a warning message if the parameter "gamma" is close to the boundaries of the parameter space [0,1]

        CHANGES IN VERSION 0.997-6  (2012-01-15)
  • corrected documentation of the argument "farrell" of the efficiencies() method for objects of class "frontier"
        CHANGES IN VERSION 0.997-4  (2011-12-28)
  • the function frontierTranslogRay() now can estimate models with more than two outputs

  • replaced all "write" commands in the Fortran code by "intpr" or "dblepr" commands so that messages from the Fortran code (e.g. when using argument "printIter") should also appear on R GUIs now

  • removed all "stop" commands in the Fortran code so that the Fortran code should no longer terminate the R session if a problem occurs

  • improved Fortran code (e.g. fixed possible problems indicated by "ftnchek")

  • fixed bug: argument "restartMax" of sfa() was previously ignored (the maximum number of restarts was always 10)

  • sfa() now checks whether a firm has more than one observation in a specific time period

        CHANGES IN VERSION 0.997-2  (2011-03-04)
  • improved documentation of the calculation of the marginal effects of the z variables in efficiencies.frontier()

  • some internal not user-visible improvements

        CHANGES IN VERSION 0.997-0  (2010-12-26)
  • methods efficiencies() and summary() for objects of class "frontier" have an additional argument "farrell" now that indicates whether Farrell-type efficiencies (that have values between 0 and 1) or efficiencies with values equal to or larger than one should be returned and used for calculating mean efficiencies, respectively; WARNING: as the default value of "farrell" is always TRUE, the type of efficiencies returned by default for models, where inefficiency decreases the dependent variable, has changed!

  • the efficiencies() method for objects of class "frontier" has an additional argument "margEff" (defaults to FALSE) now: if it is TRUE, the marginal effects of the z variables (of an Efficiency Effects Frontier, EEF) on the efficiency measure are returned as an 'attribute' to the returned object (i.e. the efficiency estimates). Currently, this feature is implemented only for models with logged dependent variables.

  • the efficiencies() method for objects of class "frontier" calculates some efficiency estimates in a way that is numerically more stable now (similar to the second item in the list for changes in version 0.991-2)

        CHANGES IN VERSION 0.996-10
  • bug fix: it now possible to estimate stochastic frontier models with cross-sectional data sets that have NA or infinite values

  • bug fix: it now possible to estimate stochastic frontier models with panel data sets, where some firms have NA or infinite values in all time periods

  • bug fix: it now possible to estimate stochastic frontier models with panel data sets, where some time periods have NA or infinite values for all firms

        CHANGES IN VERSION 0.996-8
  • function sfa() (and hence, all functions that are based on sfa()) now return additionally a component "code" that indicates the reason why the iterated ML estimation terminated (see documentation)

  • the tolerance limit in the unidimensional search procedure to determine the optimal step length now can be reduced 10 times (rather than 5 times) before the algorithm gives up

  • if the search procedure cannot find a parameter vector that result in a larger likelihood value than the initial values, the initial values (provided by the user or obtained by the grid search) are multiplied by a numeric scalar (specified by argument "restartFactor") and the search procedure is re-started (the maximum number of restarts is specified by argument "restartMax")

  • removed argument "quadHalf" of frontierQuad(), as this argument is confusing, not really helpful, and has been removed also from many functions of the "micEcon" package

        CHANGES IN VERSION 0.996-6
  • frontierTranslogRay() no longer uses the function .micEconLogData() from package "micEcon" (removed in version 0.6-1) but the function logDataSet() from package "miscTools" (added in version 0.6-1); hence, this package now depends on "micEcon" version >= 0.6-1, which further depends on "miscTools" version >= 0.6-1.
        CHANGES IN VERSION 0.996-4
  • updated NEWS (changelog) file
        CHANGES IN VERSION 0.996-2
  • the frontier package works with version 0.6-0 of the micEcon package now
        CHANGES IN VERSION 0.996-0
  • observations with values that are not available (NA + NaN) or infinite (Inf) are automatically excluded from the estimation now

  • a warning is given now, if the OLS residuals have the wrong skewness (the skewness is calculated by the function skewness() of the package "moments")

  • added method lrtest.frontier (based on the generic function lrtest() of the "lmtest" package) that can test parameter restriction using LR tests: it can be used to compare different stochastic frontier models (estimated by ML) and to test the (one-sided) inefficiency term (i.e. MLE vs. OLS)

  • the object returned by logLik.frontier() is of class "logLik" now and has two attributes: "nobs" (number of observations) and "df" (number of free parameters)

  • improved and added some warning messages so that they are (hopefully) more helpful now

  • reduced output printed by print.summary.frontier()

  • the OLS estimation in done inside R using lm() now

  • added some further tests in the /tests/ subdirectory

  • minor improvements in the documentation of some functions/methods

        CHANGES IN VERSION 0.995-8
  • the P values of the parameters estimated by ML are calculated using a standard normal distribution (instead of a t distribution) now, because the "t values" do not follow a t distribution but asymptotically follow a standard normal distribution

  • renamed the "t values" of the parameters estimated by ML (and returned by the "summary" method) as "z values" (see above)

  • print.frontier() prints the estimation results in a way that is much more similar (almost identical) to the output of print.lm() now

  • removed variable "time" from the data set "front41Data", because it is a cross-section data set

        CHANGES IN VERSION 0.995-6
  • modified sfa() so that it works with version 0.2-0 of the "Formula" package
        CHANGES IN VERSION 0.995-4
  • added data set "telecom" that contains data on telecommunications providers in 21 countries in 1990
        CHANGES IN VERSION 0.995-0
  • added new user interface: function "sfa" (instead of "frontier") should be used for Stochastic Frontier Analysis (SFA) now; its user interface is much more similar to the standard regression tool in R "lm"; function "frontier", which is a wrapper to "sfa" now, is kept for compatibility with older versions

  • functions "sfa" (and hence also "frontier", "frontierQuad" etc.) no longer calculate and return efficiency estimates

  • function "sfa" no longer has argument "logDepVar", because this information is irrelevant for the estimation

  • method "efficiencies" for objects of class "frontier" calculates efficiency estimates now (instead of just extracting them)

  • method "efficiencies" for objects of class "frontier" has the argument "logDepVar" now, which indicates whether the dependent variable is logged (this information is required to calculate the efficiency estimates)

  • method "summary" for objects of class "frontier" calculates and returns the efficiency estimates now (the calculation is done by the "efficiencies" method, see above)

  • method "summary" for objects of class "frontier" has the argument "logDepVar" now, which indicates whether the dependent variable is logged (this information is required to calculate the efficiency estimates)

  • added "residuals" method for objects of class "frontier" to obtain the residuals

  • fixed bug in the Fortran subroutine "der1" that calculates the derivatives of the likelihood function of the "Error Components Frontier" (ECF): in case of unbalanced panel data, uninitialized values (for unobserved observations) were used in the calculation so that the derivatives were wrong

  • fixed bug in the Fortran code: in case of unbalanced panel data, the efficiency estimates of the missing observations were set to the previously calculated efficiency estimate (mostly the efficiency estimate of the previous firm in the same year)

  • added further tests in /tests/frontierTest.R

        CHANGES IN VERSION 0.991-2
  • fixed bug #469: it is possible (again) now to estimate frontiers with argument "ineffDecrease" set to FALSE (e.g. cost frontiers)

  • the ratio between the density function and the cumulative distribution function ("den(a)/dis(a)") is calculated by "dexp(denlog(a)-dislog(a))" now, because the new approach is capable to calculate this ratio even if "a" is smaller than -37.5

        CHANGES IN VERSION 0.991-0
  • removed argument "modelType": the model type is derived from argument "zNames" (NULL or not NULL) now

  • the C function "pnorm", which is included in the R software, is used instead of the Fortran function "dis", which is included in the Frontier 4.1 software, to calculate the cumulative distribution of the standard normal distribution

  • the C function "dnorm", which is included in the R software, is used instead of the Fortran function "den", which is included in the Frontier 4.1 software, to calculate the density of the standard normal distribution

  • the logarithm of the density function of the standard normal distribution is calculated directly with the C function "pnorm" with argument "give_log" equal to 1 (TRUE) now

  • the parameters of the X variables are no longer named "beta_0", "beta_1", "beta_2" etc. but "(Intercept)", "", "" etc. (as returned by lm())

  • the parameters of the Z variables are no longer named "delta_0", "delta_1", "delta_2" etc. but "Z_(Intercept)", "Z_", "Z_" etc.

  • the "logLik" method for objects of class "frontier" has a new argument "newParam" now: if this argument is provided by the user, the log-likelihood value of the model 'object' is calculated with these (new) parameters

  • added argument "muBound": in case of an Error Components Frontier (ECF) with the inefficiency terms "u" following a truncated normal distribution with mean "mu", argument "muBound" can be used to restrict "mu" to be in the interval "+/- muBound * sigma_u", where "sigma_u" is the standard deviation of "u".

        CHANGES IN VERSION 0.99-2
  • argument 'maxit' can be zero now
        CHANGES IN VERSION 0.99-0
  • corrected and considerably improved documentation of function "fontier"

  • changed order of arguments of function "frontier"

  • removed arguments "crossSectionName" and "timePeriodName" from function "frontier": in case of cross-section data, these variables (information) are not needed, and in case of panel data, the information on the panel structure has to be added to the data set by the function "plm.data" of the "plm" package

  • argument "modelType" of function "frontier" must be "ECF" or "EEF" now

  • replaced argument "funtionType" of function "frontier" by argument "ineffDecrease"

  • renamed argument "eta" of function "frontier" as "timeEffect"

  • split argument "mu" of function "frontier" into "truncNorm" and "zIntercept"

  • increased default value of argument "maxit" of function "frontier" to 1000

  • renamed argument "step1" of function "frontier" as "searchStep"

  • renamed argument "tol2" of function "frontier" as "searchTol"

  • replaced argument "indic" of function "frontier" by "searchScale"

  • renamed argument "gridno" of function "frontier" as "gridSize"

  • renamed argument "igrid2" of function "frontier" as "gridDouble"

  • renamed argument "iprint" of function "frontier" as "printIter"

  • removed arguments "qxNames" and "quadHalf" from function "frontier", because quadratic or translog frontiers can be estimated with function "frontierQuad" now

  • added "logLik" method for objects of class "frontier"

  • added function "frontierQuad" for estimating quadratic and translog frontiers

  • added function "frontierTranslogRay" for estimating stochastic ray translog frontier functions

  • added the generic function "efficiencies" and corresponding methods for default objects and objects of class "frontier"

  • added "elas" method for objects of class "frontierQuad"

  • function frontier() and frontierQuad() return the (matched) call now

  • the matrix of efficiency estimates returned by "frontier" has row names (cross section units) and possibly column names (time period) now

        CHANGES IN VERSION 0.9-9 AND BEFORE
  • please take a look at the log messages of the SVN repository on R-Forge

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("frontier")

1.1-2 by Arne Henningsen, 4 months ago


http://frontier.r-forge.r-project.org/


Browse source code at https://github.com/cran/frontier


Authors: Tim Coelli, Arne Henningsen


Documentation:   PDF Manual  


Task views: Econometrics


GPL (>= 2) license


Imports moments, stats, Formula, miscTools, plm

Depends on micEcon, lmtest

Suggests MCMCpack, fdrtool


See at CRAN