cesCalc | R Documentation |
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)
cesCalc( xNames, data, coef, tName = NULL, nested = FALSE, rhoApprox = 5e-6 )
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 |
tName |
optional character string specifying the name of the time variable (t). |
nested |
logical. ;
if |
rhoApprox |
if the absolute value of the coefficient rho, rho_1, or rho_2 is smaller than or equal to this argument, the endogenous variable is calculated using a first-order Taylor series approximation at the point rho = 0 (for non-nested CES functions) or a linear interpolation (for nested CES functions), because this avoids large numerical inaccuracies that frequently occur in calculations with non-linear CES functions if rho, rho_1, or rho_2 have very small values (in absolute terms). |
A numeric vector with length equal to the number of rows of the data set
specified in argument data
.
Arne Henningsen and Geraldine Henningsen
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
.
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 ) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.