Lecture Notes on Constant Elasticity Functions

Thomas F. Rutherford

University of Colorado

November, 2002

1 CES Utility

In many economic textbooks the constant-elasticity-of-substitution (CES) utility function is

defined as:

U(x, y) = (αxρ + (1 − α)y

ρ

)

1/ρ

It is a tedious but straight-forward application of Lagrangian calculus to demonstrate that the

associated demand functions are:

x(px, py, M) = 

α

px

σ M

ασp

1−σ

x + (1 − α)

σp

1−σ

y

and

y(px, py, M) = 

1 − α

py

σ M

ασp

1−σ

x + (1 − α)

σp

1−σ

y

.

The corresponding indirect utility function has is:

V (px, py, M) = M



α

σ

p

1−σ

x + (1 − α)

σ

p

1−σ

y

 1

σ−1

Note that U(x, y) is linearly homogeneous:

U(λx, λy) = λU(x, y)

This is a convenient cardinalization of utility, because percentage changes in U are

equivalent to percentage Hicksian equivalent variations in income. Because U is linearly

homogeneous, V is homogeneous of degree one in M:

V (px, py, λM) = λV (px, py, M)

and V is homogeneous of degree -1 in p:

V (λpx, λpy, M) = V (px, py, M)

λ

.

Furthermore, linear homogeneity permits us to form an exact price index corresponding to

the cost of a unit of utility:

e(px, py) = α

σ

p

1−σ

x + (1 − α)

σ

p

1−σ

y

 1

1−σ

The indirect utility function can then be written:

V (px, py, M) = M

e(px, py)

1
Conceptually, this equation states that the utility which can be realized with income M and

prices px and py is equal to the income level divided by the unit cost of utility. The key idea is

that when the underlying is linearly homogeneous, utility can be represented like any other good

in the economy. Put another way, without loss of generality, we can thing of each consumer

demanding only one good.

2
2 CES Technology

In the representation of technology, we have a set of relationships which are directly analogous to

the CES utility function. These relationships are based on the cost and compensated demand

functions. If we have a CES production function of the form:

y(K, L) = φ (βKρ + (1 − β)L

ρ

)

1/ρ

the unit cost function then has the form:

c(pK, pL) = 1

φ



β

σ

p

1−σ

K + (1 − β)

σ

p

1−σ

L

 1

1−σ

and associated demand functions are:

K(pK, pL, y) = 

y

φ

 βφc(pK, pL)

pK

σ

and

L(pK, pL, y) = 

y

φ

 (1 − β)φc(pK, pL)

pL

σ

.

In most large-scale applied general equilibrium models, we have many function parameters

to specify with relatively few observations. The conventional approach is to calibrate functional

parameters to a single benchmark equilibrium. For example, if we have benchmark estimates for

output, labor, capital inputs and factor prices , we calibrate function coefficients by inverting the

factor demand functions:1

θ =

p ̄KK ̄

p ̄KK ̄ +  ̄pLL ̄

, ρ =

σ − 1

σ

, β =

p ̄KK ̄ 1/σ

p ̄KK ̄ 1/σ +  ̄pLL ̄1/σ

and

φ =  ̄y



βK ̄ ρ + (1 − β)L ̄ρ

−1/ρ

1

I wish to thank Professor Olivier de La Grandville for correcting an error in the expression for β in an earlier

version of these notes.

3
Exercises

1. Mikki once lived in Boulder and spent 30% of her income for rent, 10% for food and 60%

for skiing. She then moved to Georgetown where rent and food prices are identical to

Boulder. In Georgetown, however, Mikki discovered that the quality-adjusted cost of skiing

was ten-times the cost of skiing in Boulder. She adopted a lifestyle in which she spend only

30% of her income on skiing. Suppose that her preferences are characterized by a CES

utility function. What values of α and σ describe Mikki’s utility function?

2. What fraction of Mikki’s income does she spend on rent in Georgetown?

3. How much larger would Mikki’s income need to be to compensate for the higher cost of

skiing such that she would be indifferent between living in Boulder or Georgetown.

4
3 The Calibrated Share Form

Calibration formulae for CES functions are messy and difficult to remember. Consequently, the

specification of function coefficients is complicated and error-prone. For applied work using

calibrated functions, it is much easier to use the “calibrated share form” of the CES function. In

the calibrated form, the cost and demand functions explicitly incorporate

• benchmark factor demands

• benchmark factor prices

• the elasticity of substitution

• benchmark cost

• benchmark output

• benchmark value shares

In this form, the production function is written:

y =  ̄y



θ



K

K ̄

ρ

+ (1 − θ)



L

L ̄

ρ1/ρ

The only calibrated parameter, θ, represents the value share of capital at the benchmark

point, i.e.

θ =

p ̄KK ̄

p ̄KK ̄ +  ̄pLL ̄

The corresponding cost functions in the calibrated form is written:

c(pK, pL) =  ̄c

"

θ



pK

p ̄K

1−σ

+ (1 − θ)



pL

p ̄L

1−σ

# 1

1−σ

where

c ̄ =  ̄pLL ̄ +  ̄pKK ̄

and the compensated demand functions are:

K(pK, pL, y) = K ̄

y

y ̄



p ̄K c

pK c ̄

σ

and

L(pK, pL, y) = L ̄

y

y ̄



c p ̄L

c p  ̄ L

σ

Normalizing the benchmark utility index to unity, the utility function in calibrated share

form is written:

U(x, y) = θ

x

x ̄

ρ

+ (1 − θ)



y

y ̄

ρ1/ρ

The unit expenditure function can be written:

e(px, py) = "θ



px

p ̄x

1−σ

+ (1 − θ)



py

p ̄y

# 1

1−σ

,

5
the indirect utility function is:

V (px, py, M) = M

Me  ̄ (px, py)

,

and the demand functions are:

x(px, py, M) =  ̄x V (px, py, M)



e(px, py) ̄px

px

σ

and

y(px, py, M) =  ̄y V (px, py, M)



e(px, py) ̄py

py

σ

.

The calibrated form extends directly to the n-factor case. An n-factor production function is

written:

y = f(x) =  ̄y

"X

i

θi



xi

x ̄i

ρ

#1/ρ

and has unit cost function:

C(p) = C ̄

"X

i

θi



pi

p ̄i

1−σ

# 1

1−σ

and compensated factor demands:

xi =  ̄xi

y

y ̄



C p ̄i

C p  ̄

i

σ

6
Exercises

1. Show that given a generic CES utility function:

U(x, y) = (α

ρ + (1 − α)yρ

)

1/ρ

can be represented in share form using:

x ̄ = 1, y ̄ = 1, p ̄x = tα, p ̄y = t(1 − α), M ̄ = t.

for any value of t > 0.

2. Consider the utility function defined:

U(x, y) = (x − a)

α

(y − b)

1−α

A benchmark demand point with both prices equal and demand for y equal to twice the

demand for x. Find values for which are consistent with optimal choice at the benchmark.

Select these parameters so that the income elasticity of demand for x at the benchmark

point equals 1.1.

3. Consider the utility function:

U(x, L) = (αLρ + (1 − α)x

ρ

)

1/ρ

which is maximized subject to the budget constraint:

pxx = M + w(L ̄ − L)

in which M is interpreted as non-wage income, w is the market wage rate. Assume a

benchmark equilibrium in which prices for x and L are equal, demands for x and L are

equal, and non-wage income equals one-half of expenditure on x. Find values of α and ρ

consistent with these choices and for which the price elasticity of labor supply equals 0.2.

4. Consider a consumer with CES preferences over two goods. A price change makes the

benchmark consumption bundle unaffordable, yet the consumer is indifferent. Graph the

choice. Find an equation which determines the elasticity of substitution as a function of the

benchmark value shares. (You can write down the equation, but it cannot be solved in

closed form.)

5. Consider a model with three commodities, x, y and z. Preferences are CES. Benchmark

demands and prices are equal for all goods. Find demands for x, y and z for a doubling in

the price of x as a function of the elasticity of substitution.

6. Consider the same model in the immediately preceeding question, except assume that

preferences are instead given by:

U(x, y, z) = (β min(x, y)

ρ + (1 − β)zρ

)

1/ρ

Determine β from the benchmark, and find demands for x, y and z if the price of x doubles.

7. Consider a two-period model in which consumers maximizes the discounted present value of

utility:

U(c1, c2) = c

1−θ

1

1 − θ

+ β

c

1−θ

2

1 − θ

7
subject to the budget constraint:

c1 +

c2

1 + r

= 1 +

1

1 + r

in which β is the discount factor, θ is the intertempoal elasticity parameter and r is the

given interest rate.

Use the calibrated share formulation to show (on inspection) that the equivalent variation

of a change in the interest rate from  ̄r to r is equal to:

EV = M/M ̄ − 1 = 

2 + r

2 +  ̄r

 1 +  ̄r

1 + r

 1 + β

1/θ(1 + r)1/θ−1

1 + β

1/θ(1 +  ̄r)1/θ−1

θ/(1−θ)

− 1

8
4 Flexibility and Non-Separable CES

We let πi denote the user price of the ith input, and let xi(π) be the cost-minizing demand for

the ith input. The reference price and quantities are  ̄πi and  ̄xi. One can think of set i as

{K, L, E, M} but the methods we employ may be applied to any number of inputs. Define the

reference cost, and reference value share for ith input by C ̄ and θi, where

C ̄ ≡

X

i

π ̄ix ̄i

and

θi ≡

πix ̄i

C ̄

The single-level constant elasticity of substitution cost function in calibrated form is written:

C(π) = C ̄

 X

i

θi



πi

π ̄i

1−σ

! 1

1−σ

Compensated demands may be obtained from Shephard’s lemma:

xi(π) = ∂C

∂πi

≡ Ci =  ̄xi



C(π)

C ̄

π ̄i

πi

σ

Cross-price Allen-Uzawa elasticities of substitution (AUES) are defined as:

σij ≡

CijC

CiCj

where

Cij ≡

∂

2C(π)

∂πi ∂πj

=

∂xi

∂πj

=

∂xj

∂πi

For single-level CES functions:

σij = σ ∀i 6= j

The CES cost function exibits homogeneity of degree one, hence Euler’s condition applies to

the second derivatives of the cost function (the Slutsky matrix):

X

j

Cij (π) πj = 0

or, equivalently:

X

j

σij θj = 0

The Euler condition provides a simple formula for the diagonal AUES values:

σii =

−

P

j6=i

σij θj

θi

As an aside, note that convexity of the cost function implies that all minors of order 1 are

negative, i.e. σii < 0 ∀i. Hence, there must be at least one positive off-diagonal element in each

row of the AUES or Slutsky matrices. When there are only two factors, then the off-diagonals

must be negative. When there are three factors, then only one pair of negative goods may be

complements.

Let:

9
k index a second-level nest

sik denote the fraction of good i inputs assigned to the kth nest

ωk denote the benchmark value share of total cost which enters through the kth nest

γ denote the top-level elasticity of substitution

σ

k denote the elasticity of substitution in the kth aggregate

pk(π) denote the price index associated with aggregate k, normalized to equal unity in the

benchmark, i.e.:

pk(π) = "X

i

sikθi

ωk

πi

π ̄i

)

1−σ

k

# 1

1−σk

The two-level nested, nonseparable constant-elasticity-of-substitution (NNCES) cost

function is then defined as:

C(π) = C ̄

 X

k

ωkpk(π)

1−γ

! 1

1−γ

Demand indices for second-level aggregates are needed to express demand functions in a

compact form. Let zk(π) denote the demand index for aggregate k, normalized to unity in the

benchmark; i.e.

zk(π) = 

C(π)

C ̄

1

pk(π)

γ

Compensated demand functions are obtained by differentiating C(π). In this derivative, one

term arise for each nest in which the commodity enters, so:

xi(π) =  ̄xi

X

k

zk(π)



pk(π) ̄πi

πi

σ

k

=  ̄xi

X

k



C(π)

C ̄

1

pk(π)

γ 

pk(π) ̄πi

πi

σ

k

Simple differentiation shows that benchmark cross-elasticities of substitution have the form:

σij = γ +

X

k

(σ

k − γ)siksjk

ωk

Given the benchmark value shares θi and the benchmark cross-price elasticities of

substitution, σij , we can solve for values of sik, ωk, σ

k and γ. A closed-form solution of the

calibration problem is not always practical, so it is convenient to compute these parameters using

a constrained nonlinear programming algorithm, CONOPT, which is available through GAMS,

the same programming environment in which the equilibrium model is specified. Perroni and

Rutherford [1995] prove that calibration of the NNCES form is possible for arbitrary dimensions

whenever the given Slutsky matrix is negative semi-definite. The two-level (N × N) function is

flexible for three inputs; and although we have not proven that it is flexible for 4 inputs, the only

difficulties we have encountered have resulted from indefinite calibration data points.

Two GAMS programs are listed below. The first illustrates two analytic calibrations of the

three-factor cost function. The second illustrates the use of nonlinear programming to calibrate a

four-factor cost function.(See Rutherford [1999] for an introduction to MPSGE.)

10
$TITLE Two nonseparable CES calibrations for a 3-input cost function.

* Model-specific data defined here:

SET i Production input aggregates / A,B,C /; ALIAS (i,j);

PARAMETER

theta(i) Benchmark value shares /A 0.2, B 0.5, C 0.3/

aues(i,j) Benchmark cross-elasticities (off-diagonals) /

A.B 2

A.C -0.05

B.C 0.5 /;

* Use an analytic calibration of the three-factor CES cost

* function:

ABORT$(CARD(i) <> 3) "Error: not a three-factor model!";

* Fill in off-diagonals:

aues(i,j)$aues(j,i) = aues(j,i);

* Verify that the cross elasticities are symmetric:

ABORT$SUM((i,j), ABS(aues(i,j)-aues(j,i))) " AUES values non-symmetric?";

* Check that all value shares are positive:

ABORT$(SMIN(i, theta(i)) <= 0) " Zero value shares are not valid:",THETA;

* Fill in the elasticity matrices:

aues(i,i) = 0; aues(i,i) = -SUM(j, aues(i,j)*theta(j))/theta(i); DISPLAY aues;

SET n Potential nesting /N1*N3/

k(n) Nesting aggregates used in the model

i1(i) Good fully assigned to first nest

i2(i) Good fully assigned to second nest

i3(i) Good split between nests;

SCALAR assigned /0/;

PARAMETER

esub(*,*) Alternative calibrated elasticities

shr(*,i,n) Alternative calibrated shares

sigma(n) Second level elasticities

s(i,n) Nesting assignments (in model)

gamma Top level elasticity (in model);

* First the Leontief structure:

esub("LTF","GAMMA") = SMAX((i,j), aues(i,j));

esub("LTF",n) = 0;

LOOP((i,j)$((aues(i,j) = esub("LTF","GAMMA"))*(NOT assigned)),

11
i1(i) = YES;

i2(j) = YES;

assigned = 1;

);

i3(i) = YES$((NOT i1(i))*(NOT i2(i)));

DISPLAY i1,i2,i3;

LOOP((i1,i2,i3),

shr("LTF",i1,"N1") = 1;

shr("LTF",i2,"N2") = 1;

shr("LTF",i3,"N1") = theta(i1)*(1-aues(i1,i3)/aues(i1,i2)) /

( 1 - theta(i3) * (1-aues(i1,i3)/aues(i1,i2)) );

shr("LTF",i3,"N2") = theta(i2)*(1-aues(i2,i3)/aues(i1,i2)) /

( 1 - theta(i3) * (1-aues(i2,i3)/aues(i1,i2)) );

shr("LTF",i3,"N3") = 1 - shr("LTF",i3,"N1") - shr("LTF",i3,"N2");

);

ABORT$(SMIN((i,n), shr("LTF",i,n)) < 0) "Benchmark AUES is indefinite.";

* Now specify the two-level CES function:

esub("CES","GAMMA") = SMAX((i,j), aues(i,j));

ESUB("CES","N1") = 0;

LOOP((i1,i2,i3),

shr("CES",i1,"N1") = 1;

shr("CES",i2,"N2") = 1;

esub("CES","N2") = (aues(i1,i2)*aues(i1,i3)-aues(i2,i3)*aues(i1,i1)) /

(aues(i1,i3)-aues(i1,i1));

shr("CES",i3,"N1") =

(aues(i1,i2)-aues(i1,i3)) / (aues(i1,i2)-aues(i1,i1));

shr("CES",i3,"N2") = 1 - shr("CES",i3,"N1");

);

ABORT$(SMIN(n, esub("CES",n)) < 0) "Benchmark AUES is indefinite?";

ABORT$(SMIN((i,n), shr("CES",i,n)) < 0) "Benchmark AUES is indefinite?";

PARAMETER price(i) Price indices used to verify calibration,

aueschk(*,i,j) Check of benchmark AUES values;

price(i) = 1;

$ontext

$MODEL:CHKCALIB

$SECTORS:

Y ! PRODUCTION FUNCTION

D(i)

$COMMODITIES:

PY ! PRODUCTION FUNCTION OUTPUT

P(i) ! FACTORS OF PRODUCTION

PFX ! AGGREGATE PRICE LEVEL

$CONSUMERS:

RA

$PROD:Y s:gamma k.tl:sigma(k)

12
O:PY Q:1

I:P(i)#(k) Q:(theta(i)*s(i,k)) k.TL:

$PROD:D(i)

O:P(i) Q:theta(i)

I:PFX Q:(theta(i)*price(i))

$DEMAND:RA

D:PFX

E:PFX Q:2

E:PY Q:-1

$OFFTEXT

$SYSINCLUDE mpsgeset CHKCALIB

SCALAR delta /1.E-5/;

SET function /ltf, ces/;

alias (i,ii);

LOOP(function,

k(n) = YES$SUM(i, shr(function,i,n));

gamma = esub(function,"GAMMA");

sigma(k) = esub(function,k);

s(i,k) = shr(function,i,k);

loop(ii,

price(j) = 1; price(ii) = 1 + delta;

$INCLUDE CHKCALIB.GEN

SOLVE CHKCALIB USING MCP;

aueschk(function,j,ii) = (D.L(j)-1) / (delta*theta(ii));

));

aueschk(function,i,j) = aueschk(function,i,j) - aues(i,j);

DISPLAY aueschk;

* Evaluate the demand functions:

$LIBINCLUDE plot

SET pr Alternative price levels /pr0*pr10/;

PARAMETER

demand(function,i,pr) Demand functions

dplot(pr,function) Demand function comparison

loop(ii,

LOOP(function,

k(n) = YES$SUM(i, shr(function,i,n));

gamma = esub(function,"GAMMA");

sigma(k) = esub(function,k);

s(i,k) = shr(function,i,k);

LOOP(pr,

price(j) = 1;

price(ii) = 0.2 * ORD(pr);

$INCLUDE CHKCALIB.GEN

SOLVE CHKCALIB USING MCP;

demand(function,ii,pr) = D.L(ii);

dplot(pr,function) = D.L(ii);

);

13
);

* Display the comparisons:

$LIBINCLUDE PLOT dplot

);

DISPLAY demand;

14
$TITLE Numerical calibration of Nested CES from KLEM elasticities

SET i Production input aggregates / K, L, E, M/; ALIAS (i,j);

* Model-specific data defined here:

PARAMETER

theta(i) Benchmark value shares /K 0.2, L 0.4, E 0.05, M 0.35/

aues(i,j) Benchmark cross-elasticities (off-diagonals) /

K.L 1

K.E -0.1

K.M 0

L.E 0.3

L.M 0

E.M 0.1 /;

SCALAR epsilon Minimum value share tolerance /0.001/;

* Fill in off-diagonals:

aues(i,j)$aues(j,i) = aues(j,i);

* Verify that the cross elasticities are symmetric:

ABORT$SUM((i,j), ABS(aues(i,j)-aues(j,i))) " AUES values non-symmetric?";

* Check that all value shares are positive:

ABORT$(SMIN(i, theta(i)) le 0) " Zero value shares are not valid:",theta;

* Fill in the elasticity matrices:

aues(i,i) = 0; aues(i,i) = -SUM(j, aues(i,j)*theta(j))/theta(i); DISPLAY aues;

* Define variables and equations for NNCES calibration:

SET n Nests within the two-level NNCES function /N1*N4/,

k(n) Nests which are in use;

VARIABLES

S(i,n) Fraction of good I which enters through nest N,

SHARE(n) Value share of nest N,

SIGMA(n) Elasticity of substitution within nest N,

GAMMA Elasticity of substitution at the top level,

OBJ Objective function;

POSITIVE VARIABLES S, SHARE, SIGMA, GAMMA;

EQUATIONS

SDEF(i) Nest shares must sum to one,

TDEF(n) Nest share in total cost,

ELAST(i,j) Consistency with given AUES values,

OBJDEF Maximize concentration;

ELAST(i,j)$(ORD(i) > ORD(j))..

15
aues(i,j) =E= GAMMA +

SUM(k, (SIGMA(k)-GAMMA)*S(i,k)*S(j,k)/SHARE(k));

TDEF(k).. SHARE(k) =E= SUM(i, theta(i) * S(i,k));

SDEF(i).. SUM(n, S(i,n)) =E= 1;

* Maximize concentration at the same time keeping the elasticities

* to be reasonable:

OBJDEF.. OBJ =E= SUM((i,k),S(i,k)*S(i,k))

- SQR(GAMMA) - SUM(k, SQR(sigma(k)));

MODEL CESCALIB /ELAST, TDEF, SDEF, OBJDEF/;

* Apply some bounds to avoid divide by zero:

SHARE.LO(n) = epsilon;

SCALAR solved Flag for having solved the calibration problem /0/

minshr Minimum share in candidate calibration;

SET tries Counter on the number of attempted calibrations /T1*T10/;

OPTION SEED=0;

LOOP(tries$(NOT solved),

* Initialize the set of active nests and the bounds:

k(n) = YES;

S.LO(i,n) = 0; S.UP(i,n) = 1;

SHARE.LO(n) = epsilon; SHARE.UP(n) = 1;

SIGMA.LO(n) = 0; SIGMA.UP(n) = +INF;

* Install a starting point:

SHARE.L(k) = MAX(UNIFORM(0,1), epsilon);

S.L(i,k) = UNIFORM(0,1);

GAMMA.L = UNIFORM(0,1);

SIGMA.L(k) = UNIFORM(0,1);

SDEF.M(i) = 0; TDEF.M(k) = 0; ELAST.M(i,j) = 0;

SOLVE CESCALIB USING NLP MAXIMIZING OBJ;

solved = 1$(CESCALIB.MODELSTAT LE 2);

IF (solved,

minshr = SMIN(k, SHARE.L(k)) - epsilon;

IF (minshr EQ 0,

k(n)$(SHARE.L(n) = epsilon) = NO;

S.FX(i,n)$(not k(n)) = 0;

SHARE.FX(n)$(not k(n)) = 0;

SIGMA.FX(n)$(not k(n)) = 0;

16
DISPLAY "Recalibrating with the following nests:",k;

SOLVE CESCALIB USING NLP MAXIMIZING OBJ;

IF (cescalib.modelstat gt 2, solved = 0;);

minshr = SMIN(k, SHARE.L(k)) - epsilon;

IF (minshr=0, solved = 0;);

);

);

);

IF (solved, DISPLAY "Function calibrated:",GAMMA.L,SIGMA.L,SHARE.L,S.L;

ELSE DISPLAY "Function calibration fails!";

);

17
C0

C1

C2

Ck

CL

pj pi

r

r

r

r

r

r

r

r r

r

r

r

r r











❅

❅

❅

❅

❅

❅













❅

❅

❅







❅

❅

❅







♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

♣

Figure 1: A Multi-level Nested CES Cost Function

5 Price Elasticities in Nested CES Functions

Suppose that we have a nested cost function of arbitrary depth and complexity. The prices for

goods i and j, pi and pj are arguments of C(p). Assume that the cost function C(p) is nested. In

the simplest two level case, we would have:

C(p) = X

k

θkck(p)

1−σ0

!1/1−σ0

in which:

ck(p) = X

i∈Ik

αikp

1−σk

i

!1/1−σk

where Ik indicates the set of commodities entering nest k.

In a more general case, we could have cost aggregates as arguments to other cost aggregates.

The figure shown below displays a graph of the nested CES cost function in which we number the

nested cost functions which lead from the top level to nest containing good i as C0 (top level),

C1, . . . , CL.

If we construct the cost function from a calibrated benchmark in which input prices and

total cost are unity , we can scale the benchmark values of the subaggregate cost functions as

18
unity and express the demand for good i as:

xi =  ̄xi



CL

pi

σL 

CL−1

CL

σL−1

. . . 

C0

C1

σ0

=  ̄xi p

−σL

i C

σ0

0

Y

L

n=1

C

σn−σn−1

n

5.1 The Own-Price Elasticity of Demand

By Shephard’s lemma the derivative of Cn with respect to pi equals the demand for good i per

unit of aggregate n. Recalling that all prices are scaled to unity, the benchmark “quantity” of

aggregate n equals the sum of the inputs which enter directly or indirectly into that cost function:

X ̄

n =

X

j∈In

x ̄j

and

∂Cn

∂pi









p=1

=



0 i /∈ In

x ̄i

X ̄n

i ∈ In

We then can compute the compensated own-price elasticity of demand for good i:

ηi ≡

∂xi

∂pi









p=1

= −σL +  ̄xi

 

σ0 +

X

L

n=1

σn − σn−1

X ̄

n

!

5.2 The Cross-Price Elasticity of Demand

When we evaluate the elasticity of demand for i with respect to a change in the price of good j,

we can let k denote the deepest price aggregate which contains both pi and pj . (See Figure 1).

The cross derivative can then be computed using the demand function for xi, taking into

account the impact of pj on Ck, Ck−1, . . . , C0:

∂xi

∂pj









p=1

=  ̄xi

"

σ0

∂C0

∂pj

+

X

k

n=1

(σn − σn−1)

∂Cn

∂pj

#

One means of representing the dependence of xi on pj is with the Allen-Uzawa

elasticity-of-substitution which:

σij ≡

∂xi

∂pj

C0

xixj

= σ0 +

X

k

n=1

σn − σn−1

Xn

As a logical check on this elasticity, consider two special cases:

1. σn = σ0 ∀n

This then leads to single level CES, impling a constant cross elasticity of substitution

between all input pairs.

2. σn = 0 ∀n < k

We then have Leontief demand for aggregate k, implying that the elasticity of substitution

between i and j is given by

σij = σk

N.B. The cross elasticity between i and j is independent of the subnest elasticity for all

nests n > k.

19
6 Benchmarking Supply Functions

This section describes how calibrate the fixed factor input for a constant returns to scale CES

technology and obtain an arbitrary price elasticity of supply at a reference point. For

concreteness, consider output as a function of labor and capital inputs. Consider the labor input

to be variable and the capital input to be fixed. We then have a CES cost function which in

equilibrium defines the price of output:

p = c(r, w)

in which w is the exogenous wage rate and r is the residual return to the sector’s fixed factor.

Because this factor is fixed, by Shepard’s lemma we have the following relationship between

output, the supply of the fixed factor and the return to the fixed factor:

y

∂c(r, w)

∂r = R ̄

If we use the calibrated CES cost function of the form:

c(r, w) = θr1−σ + (1 − θ)w

1−σ

 1

1−σ

then the calibration problem consists of finding a values for θ and σ for which:

∂y

∂(p/w)

(p/w)

y

= η

at the benchmark point.

Note that we are free to choose units of the specific factor such that its benchmark price is

unity. Hence, when we calibrate the share parameter, we are also determining the supply of the

fixed factor:

R ̄ = θy ̄

in which we scale the benchmark price of output to unity.

If the relative price of output and the variable factor depart from their benchmark values,

the supply constraint for sector-specific can be inverted to obtain an explicit expression for the

return:

r = p



θy

R ̄

1/σ

where we have substituted the equilibrium price for the cost function. Substituting back into the

cost function, we have

p

1−σ = θp1−σ



θy

R ̄

1−σ

σ

+ (1 − θ)w

1−σ

or

y = Rθ ̄

1

σ−1

"

1 − (1 − θ)



w

p

1−σ

# σ

1−σ

Differentiating this expression with respect the relative price of output, and setting all prices

equal to unit, we have:

η =

σ(1 − θ)

θ

This equation can be used in a variety of ways to calibrate the supply function. One

approach would be to choose the value share of the fixed factor θ to match the base year profits,

and then assign the elasticity according to:

σ =

θη

(1 − θ)

20
Alternatively, one choose to use a Cobb-Douglas function and set the specific factor value

share accordingly:

θ =

1

1 + η

21
7 Calibration of Short- and Long-Run Elasticities

In a dynamic model it may be helpful to introduce two notions of the elasticity of supply:

short-run and long-run. A simple way to introduce this distinction into a numerical model is to

work with a three factor production function:

y = f(L, K, R)

where L is labor, a production factor which is variable in both the short and long run, K is

capital, a quasi-fixed production factor which is variable in the long run but fixed in the short

run, and R is a sector-specific resource which is fixed in both the short and long run.

We can write the long-run production function as:

y =  ̄y



θL



L

L ̄

ρ

+ θK



K

K ̄

ρ

+ (1 − θL − θK)

1/ρ

The R input does not appear in the calibrated production function because we have assumed

that R = R ̄. In the short-run model, we have:

y =  ̄y



θL



L

L ̄

ρ

+ (1 − θL)

1/ρ

If the short-run elasticity of supply is given by ηS, and the labor value share (θL) is given in

the benchmark data, we can then calibrate the elasticity of substitution to match these inputs:

σ = ηS

1 − θL

θL

Let us assume that while the labor value share is observed (employment statistics are

commonly available for many secttors and regions), but the allocation of the remaining value

added is not known with certainty. We can take advantage of this uncertainty to calibrate the

long-run supply response by choosing the capital value as:

θK =

ηL

σ + ηL

− θL

given the value of σ previously calibrated. (It can be shown that when ηL > ηS, we find that

θK < 1 − θL.)

22
8 The GEMTAP Final Demand System

Following Ballard, Fullerton, Shoven and Whalley (BFSW), we consider a representative agent

whose utility is based upon current consumption, future consumption and current leisure.

Changes in future consumption; in this static framework are associated with changes in the level

of savings. There are three prices which jointly determine the price index for future consumption.

These are:

PI the composite price index for investment goods

PK the composite rental price for capital services

PC the composite price of current consumption.

All of these prices equal unity in the benchmark equilibrium.

Capital income in each future year finances future consumption, which is expected to cost

the same as in the current period, PC (static expectations). The consumer demand for savings

therefore depends not only on PI , but also on PK and PC , namely:

PS =

PIPC

PK

The price index for savings is unity in the benchmark period. In a counter-factual equilibrium,

however, we would expect generally that

PS 6= PI

. When these price indices are not equal, there is a virtual tax payment; associated with

savings demand.

Following BFSW, we adopt a nested CES function to represent preferences. In this function,

at the top level demand for savings (future consumption) trades off with a second CES aggregate

of leisure and current consumption. These preferences can be summarized with the following

expenditure function:

PU =



αPH

1−σS + (1 − α)PS1−σS

 1

1−σS

Preferences are homothetic, so we have defined PU as a linearly homogeneous cost index for

a unit of utility. We conveniently scale this price index to equal unity in the benchmark. In this

definition,α is the benchmark value share for current consumption (goods and leisure). PH is a

compositive price for current consumption defined as:

PH =



βP`

1−σL + (1 − β)PC1−σL

 1

1−σL

in which β is the benchmark value share for leisure within current consumption.

Demand functions are:

S = S0



PU

PF

σS

I

I0PU

,

C = C0



PH

PC

σL 

PU

PH

σS

I

I0PU

,

and

` = `0



PH

PL

σL 

PU

PH

σS

I

I0PU

.

Demands are written here in terms of their benchmark values (S0, C0 and `0) and current

and benchmark income (I and I0).

23
There are four components in income. The first is the value of labor endowment (E),

defined inclusive of leisure. The second is the value of capital endowment (K). The third is all

other income (M). The fourth is the value of virtual tax revenue; associated with differences

between the shadow price of savings and the cost of investment.

I = PLE + PKK + M + (PS − PI )S

The following parameter values are specified exogenously:

ζ = 1.75 is the ratio of labor endowment to labor supply, ζ ≡

E

L0

, where L0 is the benchmark labor

supply. Labor supply and ζ also define benchmark leisure demand, `0 = L0(ζ − 1).

ξ = 0.15 is the uncompensated elasticity of labor supply with respect to the net of tax wage, i.e.

ξ =

∂L

∂PL

PL

L

=

∂(E − `)

∂PL

PL

L

= −

∂`

∂PL

PL

L

η = 0.4 is the elasticity of savings with respect to the return to capital:

η ≡

∂S

∂PK

S

PK

Shephard’s lemma applied at benchmark prices provides the following identities which are

helpful in deriving expressions for η and ξ:

∂PU

∂PH

= α,

∂PU

∂PS

= 1 − α,

∂PH

∂PL

= β, ∂PH

∂PC

= 1 − β

It is then a relatively routine application of the chain rule to show that:

ξ = (ζ − 1) σL + β(σS − σL) − αβ(σS − 1) −

E

I0



and

η = σSα +

K

I0

The expression for η does not involve σL, so we may first solve for σS and use this value in

determining σL:

σS =

η −

K

I0

α

and

αL =

ξ

ζ−1 − σSβ(1 − α) − αβ +

E

I0

1 − β

24
$TITLE A Maquette Illustrating Labor Supply / Savings Demand Calibration

* Exogenous elasticity:

SCALAR XI UNCOMPENSATED ELASTICITY OF LABOR SUPPLY /0.15/,

ETA ELASTICITY OF SAVINGS WRT RATE OF RETURN /0.40/,

ZETA RATIO OF LABOR ENDOWMENT TO LABOR SUPPLY /1.75/;

* Benchmark data:

SCALAR C0 CONSUMPTION /2.998845E+2/,

S0 SAVINGS /70.02698974/,

LS0 LABOR SUPPLY / 2.317271E+2/,

K0 CAPITAL INCOME /93.46960577/,

PL0 MARGINAL WAGE /0.60000000/;

* Calibrated parameters:

SCALAR EL0 LABOR ENDOWMENT

L0 LEISURE DEMAND

M0 NON-WAGE INCOME

I EXTENDED GROSS INCOME

ETAMIN SMALLEST PERMISSIBLE VALUE FOR ETA,

XIMIN SMALLEST PERMISSIBLE VALUE FOR XI,

ALPHA CURRENT CONSUMPTION VALUE SHARE

BETA LEISURE VALUE SHARE IN CURRENT CONSUMPTION

SIGMA_L ELASTICITY OF SUBSTITUTION WITHIN CURRENT CONSUMPTION

SIGMA_S ELASTICITY OF SUBSTITUTION - SAVINGS VS CURRENT CONSUMPTION

TS SAVINGS PRICE ADJUSTMENT;

LS0 = LS0 * PL0;

EL0 = ZETA * LS0;

L0 = EL0 - LS0;

M0 = C0 + S0 - LS0 - K0;

I = L0 + C0 + S0;

BETA = L0 / (C0 + L0);

ALPHA = (L0 + C0) / I;

SIGMA_S = (ETA - K0 / I) / ALPHA;

ETAMIN = K0 / I;

ABORT$(SIGMA_S LT 0) " Error: cannot calibrate SIGMA_S", ETAMIN;

SIGMA_L = (XI*(LS0/L0)-SIGMA_S*BETA*(1-ALPHA)-ALPHA*BETA+EL0/I)/(1-BETA);

XIMIN = -(L0/LS0) * (- SIGMA_S * BETA * (1-ALPHA) - ALPHA*BETA + EL0/I);

ABORT$(SIGMA_L LT 0) " Error: cannot calibrate SIGMA_L", XIMIN;

DISPLAY "Calibrated elasticities:", SIGMA_S, SIGMA_L;

$ONTEXT

$MODEL:CHKCAL

$COMMODITIES:

PL

PK

PC

PS

25
$SECTORS:

Y

S

$CONSUMERS:

RA

$PROD:Y

O:PC Q:(K0+LS0-S0)

I:PL Q:(LS0-S0)

I:PK Q:K0

$PROD:S

O:PS A:RA T:TS

I:PL

$DEMAND:RA s:SIGMA_S a:SIGMA_L

E:PC Q:M0

E:PL Q:EL0

E:PK Q:K0

D:PS Q:S0

D:PC Q:C0 a:

D:PL Q:L0 a:

$OFFTEXT

$SYSINCLUDE mpsgeset CHKCAL

S.L = S0;

TS = 0;

* VERIFY THE BENCHMARK:

CHKCAL.ITERLIM = 0;

$INCLUDE CHKCAL.GEN

SOLVE CHKCAL USING MCP;

PL.L = 1.001;

CHKCAL.ITERLIM = 0;

$INCLUDE CHKCAL.GEN

SOLVE CHKCAL USING MCP;

* Compute induced changes in labor supply using the labor market

* "marginal", PL.M. This marginal returns the net excess supply of

* labor at the given prices. We started from a balanced benchmark,

* with no change in labor demand (the iteration limit was zero).

* Hence, PL.M returns the magnitude of the change in labor supply.

* We multiply by the benchmark wage (1) and divide by the benchmark

* labor supply (LS0) to produce a finite difference approximation

* of the elasticity:

DISPLAY "CALIBRATION CHECK -- THE FOLLOWING VALUES SHOULD BE IDENTICAL:", XI;

XI = (PL.M / 0.001) * (1 / LS0);

DISPLAY XI;

PL.L = 1.0;

26
* CHECK THE ELASTICITY OF SAVINGS WRT RENTAL RATE OF CAPITAL:

PK.L = 1.001;

PS.L = 1 / 1.001;

TS = 1 / 1.001 - 1;

CHKCAL.ITERLIM = 0;

* Compute elasticity of savings with respect to the rental rate of

* capital. This requires some recursion in order to account for the

* effect of changes in savings on effective income. When PK increases,

* PS declines -- there is an effective "subsidy" for saving, paid from

* consumer income. In order to obtain a difference approximation for

* the elasticity of savings response, we need to make sure the virtual

* tax payments are properly handled. In the MPSGE model, this means

* that the level value for S must be adjusted so that it exactly equals

* the savings. We do this recursively:

SET ITER /IT1*IT5/;

PS.M = 1;

LOOP(ITER$(ABS(PS.M) GT 1.0E-8),

$INCLUDE CHKCAL.GEN

SOLVE CHKCAL USING MCP;

S.L = S.L - PS.M;

);

DISPLAY "CALIBRATION CHECK -- THE FOLLOWING VALUES SHOULD BE IDENTICAL:", ETA;

ETA = ((S.L - S0) / 0.001) * (1 / S0);

DISPLAY ETA;

27
9 Calibrating the Demand for Bequest

Bequests play an important part in the life-cycle income and expenditures of certain classes of

households (see Kotlikoff and Summers [1981]). Bequests are important for analyzing the

intergenerational impact of economic policy because they provide a mechanism through which

impacts on older generations are transmitted to younger generations.

A simple means of introducing bequests to the OLG exchange model involves the

introduction of a separate “bequest market” for each generation. A representative of generation g

then demands two goods, ˆug and bg. The first of these is the composite of lifetime consumption as

defined by the utility function:

max

cg,t

ug (cg,t) =

gX+N

t=g



1

1 + ρ

t−g

c

1−θ

g,t

1 − θ

s.t.

gX+N

t=g

ptcg,t ≤

gX+N

t=g

ptωg,t,

The second represents the amount of bequests to future generations. In this approach, we can

think about the value of bequests as a reduced form which is calibrated to two parameters: the

average bequest rate, β, and the bequest elasticity, ξ. If wealth of generation g is  ̄mg, we have:

β =

 ̄bg

m ̄ g

(1)

and

ξ =

∂bg

∂mg

mg

bg









m ̄ g, ̄bg

. (2)

In order to make the reduced form representation, we model the bequests as a specialized

transfer good that is demanded by generation g and caries the price p

b

g

. Endowments of this

commodity are fixed and sum to bg, hence p

b

g

is an index of the aggregate transfer. The

ownership of the bequest good then determines which generations receive the bequest and p

b

g

,

equal to unity in the baseline, determines the value of the bequest.

We write the utility function for a representative generation g as

u(b, uˆ) = hβ

1

ν b

ν−1

ν + (1 − β)

1

ν uˆ

ν−1

ν

i ν

ν−1

(3)

so the elasticity of substitution, ν, can be used to calibrate the bequest elasticity. The “demand”

for bequests arising from budget-constrained utility maximization on the baseline growth path

provides the following equation:

b =

βm

βpb + (1 − β)p

ν

b

. (4)

Evaluating ∂m/∂pb permits us to express ξ as a function of ν, and we may the invert this

relationship to find the elasticity of substitution as a function of the average bequest rate and the

bequest elasticity:2

ν =

1 − ξβ

ξ(1 − β)

. (5)

2When the bequest elasticity is unity the ratio of bequest to wealth is constant, and (3) is replaced by a CobbDouglas function with β as the value share of bequests.

28
10 Alternative Functional Forms

A well known dimensionless index of second-order curvature is the compensated price elasticity

(CPE), which is defined as:3

σ

C

ij ≡

∂ ln Ci

∂ ln pj

=

Cijpj

Ci

,

and a related measure of second-order curvature is the AUES, which has been already discussed.

This can also be written as

σ

A

ij =

σ

C

ij

θj

.

The AUES is a one-input-one-price elasticity of substitution (Mundlak, 1968), since, as the

definition of σ

A

ij makes clear, it measures the responsiveness of the compensated demand for one

input to a change in one input price. In contrast, the Morishima elasticity of substitution (MES;

Morishima, 1967) constitutes a two-input- one-price elasticity measure, being defined as

σ

M

ij ≡

∂ ln(Ci/Cj )

∂ ln(pi/pj )

= σ

C

ij − σ

C

jj .

Note that, in general, the MES is not symmetric, i.e. σM

ij 6= σM

ji .

A third type of curvature measure is represented by the class of two-input-two-price

elasticities of substitution, which take the form ∂ ln(Ci/Cj )/∂ ln(pj/pi). One such index is the

shadow elasticity of substitution (SES; Frenger, 1985), which is defined as

σ

S

ij ≡

θiσM

ij + θjσM

ji

(θi + θj )

.

When technologies are of the CES type, σ

A

ij , σMij and σ

S

ij are all identical, but they are generally

different otherwise.

10.1 The Translog Cost Function

The Translog unit cost function is defined as

ln C(p) ≡ ln b0 +

X

i

biln pi +

1

2

X

ij

aij ln piln pj ≡ ln b0 + L(p).

Compensated Demand Functions:

xi(p) = ∂C(p)

∂pi

=

∂ ln C(p)

∂pi

C =

C(p)

pi



bi +

X

j

aij ln pj





Restrictions:

X

i

bi = 1;

aij = aji, ∀i, ∀j;

X

j

aij = 0, ∀i.

3This exposition is based on Perroni Rutherford, 1998.

29
Calibration:

aij = θiθj (σ

A

ij − 1), i 6= j;

aii = −

X

j6=i

aij , ∀i;

bi = θi −

X

j

aij ln pj , ∀i;

b0 = Ce ̄ −L(p).

10.2 The Generalized Leontief Cost Function

The Generalized Leontief unit cost function is defined as

C(p) ≡

1

2

X

ij

aij√

pipj .

Compensated Demand Functions:

xi(p) = ∂C(p)

∂pi

=

X

j

aij

2

rpj

pi

.

Restrictions:

aij = aji, ∀i, ∀j.

Calibration:

aij = 4σ

A

ij θiθj

C ̄

√pipj

, i 6= j;

aii = 2θi

C ̄

pi

−

X

j6=i

aijrpj

pi

∀i.

10.3 The Normalized Quadratic Cost Function

The Normalized Quadratic unit cost function is defined as

C(p) ≡

1

2

P

ij aijpipj

P

i

bipi

.

Compensated Demand Functions:

xi(p) = ∂C(p)

∂pi

=

P

j

aijpj − C(p)bi

P

j

bjpj

Restrictions:

aij = aji, ∀i, ∀j;

bi ≥ 0, ∀i;

X

i

bi = 1.

30
Calibration:

aij =

Cθ ̄

iθj

pipj

 

σ

A

ij X

k

bkpk +

bipi

θi

+

bjpj

θj

!

, ∀i, ∀j;

We examined two alternative specifications, one in which bi = θi, and another in which bi = 1/N.

The first specification is reported by Perroni and Rutherford [1998] to produce a more stable

function.

10.4 The Nonseparable Nested CES Cost Function

We restrict our discussion to the case N = 3 (for the general N-input case see Perroni and

Rutherford, 1995), and focus on a particular nesting structure which we call “Lower Triangular

Leontief” (LTL). Let us rearrange indices so that the maximum off-diagonal AUES element is

σ

A

12. Then the three-input NNCES-LTL cost function can be defined as

C(p) ≡ φ

h

α(a1p1 + a3p3)

1−γ + (1 − α)(b2p

1−μ

2 + b3p

1−μ

3

)

1−γ

1−μ

i 1

1−γ

.

Compensated Demand Functions: We simplify the algebra by defining price indices for the two

nests:

p13 = a1p1 + a3p3

and

p23 =

h

b2p

1−μ

2 + b3p

1−μ

3

i 1

1−μ

we have:

x1(p) = ∂C(p)

∂p1

= a1αφ 

C(p)

φp13 γ

x2(p) = ∂C(p)

∂p2

= b2(1 − α)φ



C(p)

φp23 γ 

φp23

p2

μ

x3(p) = ∂C(p)

∂p3

= a3αφ 

C(p)

φp13 γ

+ b3(1 − α)φ



C(p)

φp23 γ 

φp23

p3

μ

Restrictions:

γ ≥ 0;

μ ≥ 0;

φ ≥ 0;

ai ≥ 0, ∀i;

bi ≥ 0, ∀i.

Calibration:

Let us denote with s3 the fraction of the total input of commodity 3 which enters the first

subnest of the structure:

C(p) ≡ φ

h

α(a1p1 + a3p3)

1−γ + (1 − α)(b2p

1−μ

2 + b3p

1−μ

3

)

1−γ

1−μ

i 1

1−γ

.

31
(with (1 − s3) representing the fraction entering the second subnest). If we select

γ = σ

A

12;

μ =

σ

A

12σ

A

13 − σ

A

23σ

A

11

σ

A

13 − σ

A

11

;

it can be shown that

s3 =

σ

A

12 − σ

A

13

σ

A

12 − σ

A

11

.

The remaining parameters can then be recovered as follows:

φ = C ̄;

α = θ1 + s3θ3

a1 =

θ1

αp1

a3 =

s3θ3

αp3

b2 =

θ2

(1 − α)p

1−μ

2

b3 =

(1 − s3)θ3

(1 − α)p

1−μ

3

References

Kotlikoff, Laurence J. and Lawrence H. Summers, “The Role of Intergenerational

Transfers in Aggregate Capital Accumulation,” Journal of Political Economy, 1981, 89 (4),

706–732.

Perroni, Carlo and Thomas F. Rutherford, “Regular flexibility of nested CES functions,”

European Economic Review, 1995, 39, 335–343.

and , “Regular flexibility of nested CES functions,” Computational Economics, 1998,

11, 245–263.

Rutherford, Thomas F., “Applied General Equilibrium Modeling with MPSGE as a GAMS

Subsystem: An Overview of the Modeling Framework and Syntax,” Computational

Economics, 1999, 14, 1–46.

32