Josefina Martinez
Department of Economics
University of Colorado
$TITLE Model M1_4S: Close 2x2 economy with labor-leisure choice
$ontext
In this model, the consumer is endowed with 200 units of time.
In the benchmark equilibrium, 100 units of time are provided
to the market and 100 units are "purchased" by the consumer.
This formulation provides an elastic labor supply.
Production Sectors Consumers
Markets | X Y W | CONS
------------------------------------------------------
PX | 100 -100 |
PY | 100 -100 |
PW | 300 | -300
PL | -40 -60 -100 | 200
PK | -60 -40 | 100
------------------------------------------------------
$offtext
* GAMS parameters which we will use in model specification:
SCALAR TX Ad-valorem tax rate for X sector inputs /0/,
ESUBL Elasticity of substitution for leisure vs. consumption /0.5/;
$ONTEXT
$MODEL: M1_4S
$SECTORS:
X ! Activity level for sector X
Y ! Activity level for sector Y
W ! Activity level for sector W (Hicksian welfare index)
$COMMODITIES:
PX ! Price index for commodity X
PY ! Price index for commodity Y
PL ! Price index for primary factor L
PK ! Price index for primary factor K
PW ! Price index for welfare (expenditure function)
$CONSUMERS:
CONS ! Income level for consumer CONS
$PROD:X s:1
O:PX Q:100
I:PL Q:40 A:CONS T:TX
I:PK Q:60 A:CONS T:TX
$PROD:Y s:1
O:PY Q:100
I:PL Q: 60
I:PK Q: 40
$PROD:W s:ESUBL a:1
O:PW Q:300
I:PX Q:100 a:
I:PY Q:100 a:
I:PL Q:100
$DEMAND:CONS
D:PW Q:300
E:PL Q:200
E:PK Q:100
$OFFTEXT
$SYSINCLUDE mpsgeset M1_4S
* Replicate the benchmark:
M1_4S.ITERLIM = 0;
$INCLUDE M1_4S.GEN
SOLVE M1_4S USING MCP;
M1_4S.ITERLIM = 2000;
* Solve a counterfactual: 100% tax on X:
TX = 1;
$INCLUDE M1_4S.GEN
SOLVE M1_4S USING MCP;
*----------------------------------------------------------------------
* EXERCISE (1). Derive an analytic expression for the elasticity
* of labor supply as a function of ESUBL and the benchmark value
* shares. Determine values of ESUBL consistent with labor supply
* elasticities equal to -0.10, 0, 0.10 and 0.20.
* Use alternative formulation with "Labor Supply" as a sector:
$TITLE Model M1_4AS: Closed 2x2 economy with labor-leisure (alt. formulation)
$ontext
Activity T transforms leisure into labor supply:
Production Sectors Consumers
Markets | A B W T | CONS
---------------------------------------------------------
PX | 80 20 -100 |
PY | 20 80 -100 |
PW | 300 | -300
PLS | -40 -60 100 |
PL | -100 -100 | 200
PK | -60 -40 | 100
---------------------------------------------------------
$offtext
* GAMS parameters which we will use in model specification.
* (TX and ESUBL were declared in the previous model):
SCALAR LS0 Reference labor supply /100/;
$ONTEXT
$MODEL:M1_4AS
$SECTORS:
X ! Activity level for sector X
Y ! Activity level for sector Y
T ! Labor supply
$COMMODITIES:
PX ! Price index for commodity X
PY ! Price index for commodity Y
PL ! Price index for leisure
PLS ! Price index for labor supply (factor L input)
PK ! Price index for primary factor K
$CONSUMERS:
CONS ! Income level for consumer CONS
$PROD:X s:1
O:PX Q:100
I:PLS Q:40 A:CONS T:TX
I:PK Q:60 A:CONS T:TX
$PROD:Y s:1
O:PY Q:100
I:PLS Q:60
I:PK Q:40
$PROD:T
O:PLS
I:PL
$DEMAND:CONS s:ESUBL con:1
D:PX Q:100 con:
D:PY Q:100 con:
D:PL Q:100
E:PL Q:200
E:PK Q:100
* Recover a Hicksian welfare index (to be used in exercise 2):
$REPORT:
V:WELF W:CONS
$OFFTEXT
$SYSINCLUDE mpsgeset M1_4AS
* Replicate the benchmark (initialize value of labor supply):
T.L = LS0;
TX = 0;
M1_4AS.ITERLIM = 0;
$INCLUDE M1_4AS.GEN
SOLVE M1_4AS USING MCP;
*-------------------------------------------------------------------------
* Analytical expression of labor supply elasticity:
$ontext
The algebraic derivation of the uncompensated labor supply
elasticity from a nested CES utility function (like the specified
in the block $DEMAND:CONS), gives the following formulae:
ETA = (LEIS/LSUP) * {ESUBL - (ESUBL - 1)*Shl - LEND*PL/M}
Where:
ETA = Uncompensated labor supply elasticity
LEIS = Demand for leisure
LS0 = Supply of labor
ESUBL= Compensated labor supply elasticity
Shl = Value share of leisure in consumption
LEND = Labor endowment
PL = Price of labor
M = Total income of consumer
Solving for ESUBL:
ESUBL = {(LSUP/LEIS)*ETA + LEND*PL/M - Shl} / (1 - Shl)
To CHECK THE LABOR SUPPLY ELASTICITY (ELS), we follow the procedure
presented in the paper "CES functions: Some Hints and Formulae",
pp. 19 in www.gams.com/solvers/mpsge:
"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
(with iteration limit equal to 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."
The ELS can be written as:
ELS = PL.M / (PL.L - 1) * (1 / LS0)
$offtext
* Introduce a change in the price of labor:
PL.L = 1.001;
* Compute the compensated labor supply elasticity. At
* benchmark PL = 1, LEIS = 100, LEND = 200, M = 300. Hence we
* can write the compensated labor supply elasticity as:
* ESUBL = (ETA + (2/3) - (1/3)) / (2/3)
SET SC Scenarios /SC1* SC4/;
PARAMETER ESVAL(SC) Values of ESUBL by scenario
ETA(SC) Uncompensated labor supply elasticity by scenario
/SC1 -0.10, SC2 0, SC3 0.10, SC4 0.20/
ELS(SC) Calibrated labor supply elasticity;
LOOP(SC,
* Install a tax rate for the current scenario:
ESVAL(SC) = (ETA(SC) + (2/3) - (1/3)) / (2/3);
ESUBL = ESVAL(SC);
$INCLUDE M1_4AS.GEN
SOLVE M1_4AS USING MCP;
* Check the labor supply elasticity:
ELS(SC) = PL.M / (PL.L - 1) * (1/LS0);
);
OPTION DECIMALS = 2;
DISPLAY ESVAL, ELS;
M1_4AS.ITERLIM = 2000;
*------------------------------------------------------------------------
* EXERCISE (2): Plot excess burden versus the price elasticity
* of labor supply over the range -0.10 to 0.20.
* Note that in a model where tax revenues are accrued to the
* consumer, the excess burden of taxation is the change in the
* Hicksian welfare index
* Tax on sector X inputs:
TX = 1;
* Compute excess burden:
PARAMETER EX_BURDEN(SC) % excess burden by scenario;
LOOP(SC,
* Install a ESUBL for the current scenario:
ESVAL(SC) = ETA(SC)*(3/2) + (1/2);
ESUBL = ESVAL(SC);
$INCLUDE M1_4AS.GEN
SOLVE M1_4AS USING MCP;
* Compute excess burden (the negative of welfare index change):
EX_BURDEN(SC) = (WELF.L - 1) * 100;
);
DISPLAY ESVAL, ETA, EX_BURDEN;
The solution listing appears as follows:
S O L V E S U M M A R Y
MODEL M1_4S
Default price normalization using income for CONS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR W . 1.000 +INF .
---- VAR PX . 1.000 +INF .
---- VAR PY . 1.000 +INF .
---- VAR PL . 1.000 +INF .
---- VAR PK . 1.000 +INF .
---- VAR PW . 1.000 +INF .
---- VAR CONS . 300.000 +INF .
X Activity level for sector X
Y Activity level for sector Y
W Activity level for sector W (Hicksian welfare index)
PX Price index for commodity X
PY Price index for commodity Y
PL Price index for primary factor L
PK Price index for primary factor K
PW Price index for welfare (expenditure function)
CONS Income level for consumer CONS
Counterfactual model: 100% tax on X sector inputs:
S O L V E S U M M A R Y
MODEL M1_4S
Default price normalization using income for CONS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 0.664 +INF .
---- VAR Y . 1.280 +INF .
---- VAR W . 0.960 +INF .
---- VAR PX . 2.092 +INF .
---- VAR PY . 1.085 +INF .
---- VAR PL . 1.167 +INF .
---- VAR PK . 0.972 +INF .
---- VAR PW . 1.388 +INF .
---- VAR CONS . 400.000 +INF .
ALTERNATIVE FORMULATION: Activity "T" transforms leisure into labor supply.
S O L V E S U M M A R Y
MODEL M1_4AS
Default price normalization using income for CONS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR PX . 1.000 +INF .
---- VAR PY . 1.000 +INF .
---- VAR PL . 1.000 +INF .
---- VAR PK . 1.000 +INF .
---- VAR CONS . 300.000 +INF .
---- VAR T . 100.000 +INF .
---- VAR PLS . 1.000 +INF .
---- VAR WELF . 1.000 +INF .
EXERCISE (1). Determine values of ESUBL for a given value of ETA
L O O P S SC SC1
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR PX . 1.000 +INF -0.045
---- VAR PY . 1.000 +INF -0.045
---- VAR PL . 1.001 +INF -0.010
---- VAR PK . 1.000 +INF .
---- VAR CONS . 300.200 +INF .
---- VAR T . 100.000 +INF 0.001
---- VAR PLS . 1.000 +INF .
---- VAR WELF . 1.000 +INF .
L O O P S SC SC2
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR PX . 1.000 +INF -0.050
---- VAR PY . 1.000 +INF -0.050
---- VAR PL . 1.001 +INF -8.324E-6
---- VAR PK . 1.000 +INF .
---- VAR CONS . 300.200 +INF .
---- VAR T . 100.000 +INF 0.001
---- VAR PLS . 1.000 +INF .
---- VAR WELF . 1.000 +INF .
L O O P S SC SC3
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR PX . 1.000 +INF -0.055
---- VAR PY . 1.000 +INF -0.055
---- VAR PL . 1.001 +INF 0.010
---- VAR PK . 1.000 +INF .
---- VAR CONS . 300.200 +INF .
---- VAR T . 100.000 +INF 0.001
---- VAR PLS . 1.000 +INF .
---- VAR WELF . 1.000 +INF .
L O O P S SC SC4
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR PX . 1.000 +INF -0.060
---- VAR PY . 1.000 +INF -0.060
---- VAR PL . 1.001 +INF 0.020
---- VAR PK . 1.000 +INF .
---- VAR CONS . 300.200 +INF .
---- VAR T . 100.000 +INF 0.001
---- VAR PLS . 1.000 +INF .
---- VAR WELF . 1.000 +INF .
E x e c u t i o n
---- 973 PARAMETER ESVAL Values of ESUBL by scenario
SC1 0.35, SC2 0.50, SC3 0.65, SC4 0.80
---- 973 PARAMETER ELS Calibrated labor supply elasticity
SC1 -0.10, SC2 -8.32362E-5, SC3 0.10, SC4 0.20
EXERCISE (2). Plot Excess burden:
L O O P S SC SC1
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 0.670 +INF .
---- VAR Y . 1.299 +INF .
---- VAR PX . 2.102 +INF .
---- VAR PY . 1.085 +INF .
---- VAR PL . 1.156 +INF .
---- VAR PK . 0.986 +INF .
---- VAR CONS . 400.200 +INF .
---- VAR T . 97.531 +INF .
---- VAR PLS . 1.156 +INF .
---- VAR WELF . 0.961 +INF .
L O O P S SC SC2
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 0.664 +INF .
---- VAR Y . 1.280 +INF .
---- VAR PX . 2.093 +INF .
---- VAR PY . 1.085 +INF .
---- VAR PL . 1.167 +INF .
---- VAR PK . 0.973 +INF .
---- VAR CONS . 400.200 +INF .
---- VAR T . 95.231 +INF .
---- VAR PLS . 1.167 +INF .
---- VAR WELF . 0.960 +INF .
L O O P S SC SC3
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 0.658 +INF .
---- VAR Y . 1.263 +INF .
---- VAR PX . 2.084 +INF .
---- VAR PY . 1.085 +INF .
---- VAR PL . 1.178 +INF .
---- VAR PK . 0.960 +INF .
---- VAR CONS . 400.200 +INF .
---- VAR T . 93.127 +INF .
---- VAR PLS . 1.178 +INF .
---- VAR WELF . 0.960 +INF .
L O O P S SC SC4
MODEL M1_4AS
LOWER LEVEL UPPER MARGINAL
---- VAR X . 0.653 +INF .
---- VAR Y . 1.248 +INF .
---- VAR PX . 2.076 +INF .
---- VAR PY . 1.086 +INF .
---- VAR PL . 1.188 +INF .
---- VAR PK . 0.948 +INF .
---- VAR CONS . 400.200 +INF .
---- VAR T . 91.203 +INF .
---- VAR PLS . 1.188 +INF .
---- VAR WELF . 0.960 +INF .
E x e c u t i o n
---- 1119 PARAMETER ESVAL Values of ESUBL by scenario
SC1 0.35, SC2 0.50, SC3 0.65, SC4 0.80
---- 1119 PARAMETER ETA Uncompensated labor supply elasticity by
scenario
SC1 -0.10, SC3 0.10, SC4 0.20
---- 1119 PARAMETER EX_BURDEN % excess burden by scenario
SC1 -3.90, SC2 -3.95, SC3 -4.00, SC4 -4.05