MPSGE:Closed Economy Models. Solution to Model M1_4S

Closed Economy Models: Solution to Model M1_4S

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