Learn R Programming

micEconCES (version 0.9-8)

cesCalc: Calculate CES function

Description

Calculate the endogenous variable of a ‘Constant Elasticity of Substitution’ (CES) function.

The original CES function with two explanatory variables is

$$y = \gamma \: \exp ( \lambda \: t ) \: ( \delta \: x_1^{-\rho} + ( 1 - \delta ) \: x_2^{-\rho} ) ^{-\frac{\nu}{\rho}}$$

and the non-nested CES function with \(N\) explanatory variables is

$$y = \gamma \: \exp ( \lambda \: t ) \: \left( \sum_{i=1}^N \delta_i \: x_i^{-\rho} \right) ^{-\frac{\nu}{\rho}}$$

where in the latter case \(\sum_{i=1}^N \delta_i = 1\).

In both cases, the elesticity of substitution is \(s = \frac{1}{ 1 + \rho }\).

The nested CES function with 3 explanatory variables proposed by Sato (1967) is

$$y = \gamma \: \exp ( \lambda \: t ) \: \left[ \delta \: \left( \delta_1 \: x_1^{-\rho_1} + ( 1 - \delta_1 ) x_2^{-\rho_1} \right)^{\frac{\rho}{\rho_1}} + ( 1 - \delta ) x_3^{-\rho} \right]^{-\frac{\nu}{\rho}}$$

and the nested CES function with 4 explanatory variables (a generalisation of the version proposed by Sato, 1967) is

$$y = \gamma \: \exp ( \lambda \: t ) \: \left[ \delta \cdot \left( \delta_1 \: x_1^{-\rho_1} + ( 1 - \delta_1 ) x_2^{-\rho_1} \right)^{\frac{\rho}{\rho_1}} + ( 1 - \delta ) \cdot \left( \delta_2 \: x_3^{-\rho_2} + ( 1 - \delta_2 ) x_4^{-\rho_2} \right)^{\frac{\rho}{\rho_2}} \right]^{-\frac{\nu}{\rho}}$$

Usage

cesCalc( xNames, data, coef, tName = NULL, nested = FALSE, rhoApprox = 5e-6 )

Arguments

xNames

a vector of strings containing the names of the explanatory variables.

data

data frame containing the explanatory variables.

coef

numeric vector containing the coefficients of the CES: if the vector is unnamed, the order of the coefficients must be \(\gamma\), eventuelly \(\lambda\), \(\delta\), \(\rho\), and eventually \(\nu\) in case of two expanatory variables, \(\gamma\), eventuelly \(\lambda\), \(\delta_1\), …, \(\delta_N\), \(\rho\), and eventually \(\nu\) in case of the non-nested CES with \(N>2\) explanatory variables, \(\gamma\), eventuelly \(\lambda\), \(\delta_1\), \(\delta\), \(\rho_1\), \(\rho\), and eventually \(\nu\) in case of the nested CES with 3 explanatory variables, and \(\gamma\), eventuelly \(\lambda\), \(\delta_1\), \(\delta_2\), \(\delta\), \(\rho_1\), \(\rho_2\), \(\rho\), and eventually \(\nu\) in case of the nested CES with 4 explanatory variables, where in all cases the \(\nu\) is only required if the model has variable returns to scale. If the vector is named, the names must be "gamma", "delta", "rho", and eventually "nu" in case of two expanatory variables, "gamma", "delta_1", …, "delta_N", "rho", and eventually "nu" in case of the non-nested CES with \(N>2\) explanatory variables, and "gamma", "delta_1", "delta_2", "rho_1", "rho_2", "rho", and eventually "nu" in case of the nested CES with 4 explanatory variables, where the order is irrelevant in all cases.

tName

optional character string specifying the name of the time variable (\(t\)).

nested

logical. ; if FALSE (the default), the original CES for \(n\) inputs proposed by Kmenta (1967) is used; if TRUE, the nested version of the CES for 3 or 4 inputs proposed by Sato (1967) is used.

rhoApprox

if the absolute value of the coefficient \(\rho\) is smaller than or equal to this argument, the endogenous variable of the non-nested CES is calculated using the Kmenta approximation, which is more precise than the non-linear CES formula for very small values of \(\rho\) (and the CES formula cannot even be used for \(\rho=0\)). This feature is not (yet) available for the nested CES.

Value

A numeric vector with length equal to the number of rows of the data set specified in argument data.

References

Kmenta, J. (1967): On Estimation of the CES Production Function. International Economic Review 8, p. 180-189.

Sato, K. (1967): A Two-Level Constant-Elasticity-of-Substitution Production Function. Review of Economic Studies 43, p. 201-218.

See Also

cesEst.

Examples

Run this code
# NOT RUN {
   data( germanFarms, package = "micEcon" )
   # output quantity:
   germanFarms$qOutput <- germanFarms$vOutput / germanFarms$pOutput
   # quantity of intermediate inputs
   germanFarms$qVarInput <- germanFarms$vVarInput / germanFarms$pVarInput


   ## Estimate CES: Land & Labor with fixed returns to scale
   cesLandLabor <- cesEst( "qOutput", c( "land", "qLabor" ), germanFarms )

   ## Calculate fitted values
   cesCalc( c( "land", "qLabor" ), germanFarms, coef( cesLandLabor ) )


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

   ## Calculate fitted values
   cesCalc( c( "land", "qLabor" ), germanFarms, coef( cesLandLaborVrs ) )
# }

Run the code above in your browser using DataLab