Learn R Programming

micEcon (version 0.5-22)

cesEst: Estimate a CES function

Description

Estimate a Constant-Elasticities-of-Scale (CES) function with two exogenous variables by Least Squares.

$$y = \gamma * ( \alpha * x1^\rho + ( 1 - \alpha ) * x2^\rho )^{\phi/\rho}$$ where the elesticity of substitution is $s = 1 / ( 1 - \rho )$

Warning: The econometric estimation of a CES function is (almost) always very problematic, because very different parameter vectors could result in very similar values of the objective function (sum of squared residuals). Hence, even if optim reports that the nonlinear minimization has converged, there might be another rather different parameter vector that results in a lower sum of squared residuals.

Usage

cesEst( yName, xNames, data, vrs = FALSE, ...)

Arguments

yName
a string containing the name of the dependent variable.
xNames
a vector of two strings containing the names of the independent variables.
data
data frame containing the data.
vrs
logical. Allow for variable returns to scale?
...
further arguments are passed to optim.

Value

  • A list of class cesEst. It is the object returned by optim plus following elements:
  • hessianHessian matrix of the objective function with respect to the estimated parameters.
  • vcovcovariance matrix of the estimated parameters.
  • callthe matched call.

Details

Analytical gradients are used (only) if the BFGS, CG, or L-BFGS-B method is used.

See Also

translogEst and quadFuncEst.

Examples

Run this code
data( germanFarms )
   # output quantity:
   germanFarms$qOutput <- germanFarms$vOutput / germanFarms$pOutput
   # quantity of intermediate inputs
   germanFarms$qVarInput <- germanFarms$vVarInput / germanFarms$pVarInput


   ## CES: Land & Labor
   cesLandLabor <- cesEst( "qOutput", c( "land", "qLabor" ), germanFarms )

   # variable returns to scale
   cesLandLaborVrs <- cesEst( "qOutput", c( "land", "qLabor" ), germanFarms,
      vrs = TRUE )

   # using the BFGS optimization method
   cesLandLaborBfgs <- cesEst( "qOutput", c( "land", "qLabor" ), germanFarms,
      method = "BFGS" )

   # using the L-BFGS-B optimization method with constrained alpha
   cesLandLaborBfgsCon <- cesEst( "qOutput", c( "land", "qLabor" ),
      germanFarms, method = "L-BFGS-B", lower = c( -Inf, 0, -Inf ),
      upper = c( Inf, 1, Inf ) )

   # using the SANN optimization method
   cesLandLaborSann <- cesEst( "qOutput", c( "land", "qLabor" ), germanFarms,
      method = "SANN" )


   ## CES: Land & Intermediate Inputs
   cesLandInt <- cesEst( "qOutput", c( "land", "qVarInput" ), germanFarms )

   # variable returns to scale
   cesLandIntVrs <- cesEst( "qOutput", c( "land", "qVarInput" ), germanFarms,
      vrs = TRUE )

   # using the BFGS optimization method
   cesLandIntBfgs <- cesEst( "qOutput", c( "land", "qVarInput" ), germanFarms,
      method = "BFGS" )

   # using the L-BFGS-B optimization method with constrained alpha
   cesLandIntBfgsCon <- cesEst( "qOutput", c( "land", "qVarInput" ), germanFarms,
      method = "L-BFGS-B", lower = c( -Inf, 0, -Inf ),
      upper = c( Inf, 1, Inf ) )

   # using the SANN optimization method
   cesLandIntSann <- cesEst( "qOutput", c( "land", "qVarInput" ), germanFarms,
      method = "SANN" )

Run the code above in your browser using DataLab