# cesCalc: Calculate CES function In micEconCES: Analysis with the Constant Elasticity of Substitution (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 * x1^(-rho) + ( 1 - delta ) * x2^(-rho) )^(-nu/rho)

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

y = gamma * exp( lambda * t ) * ( sum(i=1 to N) delta_i * x_i^(-rho) )^(-nu/rho)

where in the latter case sum(i=1 to N) delta_i = 1.

In both cases, the elesticity of substitution is s = 1 / ( 1 + rho ).

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

y = gamma * exp( lambda * t ) * [ delta * ( delta_1 * x_1^(-rho_1) + ( 1 - delta_1 ) * x_2^(-rho_1) )^(rho / rho_1) + ( 1 - delta ) * x_3^(-rho) ]^(-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 ) * [ delta ( delta_1 * x_1^(-rho_1) + ( 1 - delta_1 ) * x_2^(-rho_1) )^(rho / rho_1) + ( 1 - delta ) ( delta_2 * x_3^(-ρ_2) + ( 1 - delta_2 ) * x_4^(-rho_2) )^(rho / rho_2) ]^(-nu / rho)

## Usage

 `1` ```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`.

## Author(s)

Arne Henningsen and Geraldine Henningsen

## 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.

`cesEst`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20``` ``` 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 ) ) ```