Josefina Martinez
Department of Economics
University of Colorado
$TITLE Model M1_6S: Closed 2x2 Economy with Two Consumers
$ontext
Two consumers in a closed economy.
Production Sectors Consumers
Markets | X Y WA WB | A B
----------------------------------------------------------
PX | 100 -25 -75 |
PY | 100 -75 -25 |
PWA | 100 | -100
PWB | 100 | -100
PL | -40 -60 | 90 10
PK | -60 -40 | 10 90
----------------------------------------------------------
$offtext
* Declare GAMS parameters which we will use in the model.
SCALAR TX Ad-valorem tax rate for X sector inputs /0/;
$ONTEXT
$MODEL:M1_6S
$SECTORS:
X ! Activity level for sector X
Y ! Activity level for sector Y
WA ! Welfare index for consumer A
WB ! Welfare index for consumer B
$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
PWA ! Price index for consumer A welfare (expenditure function)
PWB ! Price index for consumer B welfare (expenditure function)
$CONSUMERS:
CONSA ! Income level for consumer A
CONSB ! Income level for consumer B
* More than one tax may be levied on a single transaction with
* revenues accruing to different agents. As specified here, the
* ad-valorem tax rate on inputs to sector X equals 2*TX. Half
* of the tax revenue accrues to A and half to B.
$PROD:X s:1
O:PX Q:100
I:PL Q: 40 A:CONSA T:TX A:CONSB T:TX
I:PK Q: 60 A:CONSA T:TX A:CONSB T:TX
$PROD:Y s:1
O:PY Q:100
I:PL Q: 60
I:PK Q: 40
$PROD:WA s:1
O:PWA Q:100
I:PX Q:25
I:PY Q:75
$PROD:WB s:1
O:PWB Q:100
I:PX Q:75
I:PY Q:25
$DEMAND:CONSA
D:PWA Q:100
E:PL Q: 90
E:PK Q: 10
$DEMAND:CONSB
D:PWB Q:100
E:PL Q: 10
E:PK Q: 90
$OFFTEXT
$SYSINCLUDE mpsgeset M1_6S
* Check the benchmark:
M1_6S.ITERLIM = 0;
$INCLUDE M1_6S.GEN
SOLVE M1_6S USING MCP;
M1_6S.ITERLIM = 2000;
* Solve a counterfactual:
TX = 0.5;
$INCLUDE M1_6S.GEN
SOLVE M1_6S USING MCP;
*---------------------------------------------------------------------
* EXERCISE (2). Use the model to ascertain the utility
* possibility frontier (UPF) for this economy, with TX as the sole
* redistributive instrument. Compare this frontier with the
* Pareto-optimal frontier based on lump-sum redistribution.
$ontext
A lump-sum redistribution can be modeled by including
transfers. We modify the program to introduce an auxiliary
variable with a rationing constraint that gives each consumer
a transfer that makes their incomes to converge.
Note that we changed the value of TX for SC1 from -0.5 to
-0.3, because when running the model with TX = -0.5 there is
no solution (the model is infeasible).
$offtext
$ONTEXT
$MODEL:M1_6AS
$SECTORS:
X ! Activity level for sector X
Y ! Activity level for sector Y
WA ! Welfare index for consumer A
WB ! Welfare index for consumer B
$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
PWA ! Price index for consumer A welfare (expenditure function)
PWB ! Price index for consumer B welfare (expenditure function)
$CONSUMERS:
CONSA ! Income level for consumer A
CONSB ! Income level for consumer B
* Declare an auxiliary variable to compute automatically the
* transfer from CONSA to CONSB
$AUXILIARY:
TRNATB ! Implied transfer from A to B
$PROD:X s:1
O:PX Q:100
I:PL Q: 40 A:CONSA T:TX A:CONSB T:TX
I:PK Q: 60 A:CONSA T:TX A:CONSB T:TX
$PROD:Y s:1
O:PY Q:100
I:PL Q: 60
I:PK Q: 40
$PROD:WA s:1
O:PWA Q:100
I:PX Q:25
I:PY Q:75
$PROD:WB s:1
O:PWB Q:100
I:PX Q:75
I:PY Q:25
$DEMAND:CONSA
D:PWA Q:100
E:PL Q:-1 R:TRNATB
E:PL Q: 90
E:PK Q: 10
$DEMAND:CONSB
D:PWB Q:100
E:PL Q:1 R:TRNATB
E:PL Q: 10
E:PK Q: 90
$CONSTRAINT:TRNATB
CONSB =E= CONSA;
$OFFTEXT
$SYSINCLUDE mpsgeset M1_6AS
M1_6AS.ITERLIM = 2000;
*------ TX as the sole redistributive instrument:
* Fix transfers equal to zero:
TRNATB.FX = 0;
SET SC Scenarios /SC1*SC5/;
PARAMETER TXVALUE(SC) Values of TX by scenario
/SC1 -0.3, SC2 -0.1, SC3 0,
SC4 0.1, SC5 0.5 /,
WELFARE Welfare index by scenario;
LOOP(SC,
* Install a tax rate for the current scenario:
TX = TXVALUE(SC);
$INCLUDE M1_6AS.GEN
SOLVE M1_6AS USING MCP;
* Extract solution values:
WELFARE("UPF",SC,"A") = WA.L;
WELFARE("UPF",SC,"B") = WB.L;
);
*------ LUMP-SUM redistribution:
* Include transfers and allow them to be negative (transfers
* from B to A)
TRNATB.LO = -INF;
TRNATB.UP = +INF;
LOOP(SC,
* Install a tax rate for the current scenario:
TX = TXVALUE(SC);
$INCLUDE M1_6AS.GEN
SOLVE M1_6AS USING MCP;
* Extract solution values:
WELFARE("UPF_LUMP",SC,"A") = WA.L;
WELFARE("UPF_LUMP",SC,"B") = WB.L;
);
DISPLAY WELFARE;
The solution listing appears as follows:
S O L V E S U M M A R Y
MODEL M1_6S
Default price normalization using income for CONSA
LOWER LEVEL UPPER MARGINAL
---- VAR X . 1.000 +INF .
---- VAR Y . 1.000 +INF .
---- VAR WA . 1.000 +INF .
---- VAR WB . 1.000 +INF .
---- VAR PX . 1.000 +INF .
---- VAR PY . 1.000 +INF .
---- VAR PL . 1.000 +INF .
---- VAR PK . 1.000 +INF .
---- VAR PWA . 1.000 +INF .
---- VAR PWB . 1.000 +INF .
---- VAR CONSA . 100.000 +INF .
---- VAR CONSB . 100.000 +INF .
X Activity level for sector X
Y Activity level for sector Y
WA Welfare index for consumer A
WB Welfare index for consumer B
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
PWA Price index for consumer A welfare (expenditure function)
PWB Price index for consumer B welfare (expenditure function)
CONSA Income level for consumer A
CONSB Income level for consumer B
Counterfactual model: 50% tax on X sector inputs:
S O L V E S U M M A R Y MODEL M1_6S Default price normalization using income for CONSA LOWER LEVEL UPPER MARGINAL ---- VAR X . 0.659 +INF . ---- VAR Y . 1.336 +INF . ---- VAR WA . 1.155 +INF . ---- VAR WB . 0.761 +INF . ---- VAR PX . 2.138 +INF . ---- VAR PY . 1.099 +INF . ---- VAR PL . 1.163 +INF . ---- VAR PK . 1.010 +INF . ---- VAR PWA . 1.298 +INF . ---- VAR PWB . 1.810 +INF . ---- VAR CONSA . 150.000 +INF . ---- VAR CONSB . 137.755 +INF .UPF_O: TX as the sole distributive instrumentTX = -0.30
L O O P S SC SC1 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.462 +INF . ---- VAR Y . 0.529 +INF . ---- VAR WA . 0.609 +INF . ---- VAR WB . 1.251 +INF . ---- VAR PX . 0.595 +INF . ---- VAR PY . 1.431 +INF . ---- VAR PL . 1.324 +INF . ---- VAR PK . 1.608 +INF . ---- VAR PWA . 1.149 +INF . ---- VAR PWB . 0.741 +INF . ---- VAR CONSA . 70.000 +INF . ---- VAR CONSB . 92.703 +INF . ---- VAR TRNATB . . . 22.703TX = -0.10L O O P S SC SC2 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.117 +INF . ---- VAR Y . 0.883 +INF . ---- VAR WA . 0.921 +INF . ---- VAR WB . 1.070 +INF . ---- VAR PX . 1.207 +INF . ---- VAR PY . 1.494 +INF . ---- VAR PL . 1.465 +INF . ---- VAR PK . 1.538 +INF . ---- VAR PWA . 1.416 +INF . ---- VAR PWB . 1.273 +INF . ---- VAR CONSA . 130.357 +INF . ---- VAR CONSB . 136.216 +INF . ---- VAR TRNATB . . . 5.859TX = 0L O O P S SC SC3 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.000 +INF . ---- VAR Y . 1.000 +INF . ---- VAR WA . 1.000 +INF . ---- VAR WB . 1.000 +INF . ---- VAR PX . 1.531 +INF . ---- VAR PY . 1.531 +INF . ---- VAR PL . 1.531 +INF . ---- VAR PK . 1.531 +INF . ---- VAR PWA . 1.531 +INF . ---- VAR PWB . 1.531 +INF . ---- VAR CONSA . 153.060 +INF . ---- VAR CONSB . 153.060 +INF . ---- VAR TRNATB . . . 5.528E-10TX = 0.10L O O P S SC SC4 LOWER LEVEL UPPER MARGINAL ---- VAR X . 0.906 +INF . ---- VAR Y . 1.094 +INF . ---- VAR WA . 1.055 +INF . ---- VAR WB . 0.939 +INF . ---- VAR PX . 1.819 +INF . ---- VAR PY . 1.528 +INF . ---- VAR PL . 1.552 +INF . ---- VAR PK . 1.493 +INF . ---- VAR PWA . 1.596 +INF . ---- VAR PWB . 1.742 +INF . ---- VAR CONSA . 168.366 +INF . ---- VAR CONSB . 163.590 +INF . ---- VAR TRNATB . . . -4.776TX = 0.50L O O P S SC SC5 LOWER LEVEL UPPER MARGINAL ---- VAR X . 0.659 +INF . ---- VAR Y . 1.336 +INF . ---- VAR WA . 1.155 +INF . ---- VAR WB . 0.761 +INF . ---- VAR PX . 3.182 +INF . ---- VAR PY . 1.637 +INF . ---- VAR PL . 1.732 +INF . ---- VAR PK . 1.504 +INF . ---- VAR PWA . 1.933 +INF . ---- VAR PWB . 2.695 +INF . ---- VAR CONSA . 223.294 +INF . ---- VAR CONSB . 205.066 +INF . ---- VAR TRNATB . . . -18.228UPF_O: Lump-Sum redistribution --Including TransfersTX = -0.3
L O O P S SC SC1 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.409 +INF . ---- VAR Y . 0.583 +INF . ---- VAR WA . 0.727 +INF . ---- VAR WB . 1.131 +INF . ---- VAR PX . 0.989 +INF . ---- VAR PY . 2.390 +INF . ---- VAR PL . 2.231 +INF . ---- VAR PK . 2.649 +INF . ---- VAR PWA . 1.917 +INF . ---- VAR PWB . 1.233 +INF . ---- VAR CONSA . 139.445 +INF . ---- VAR CONSB . 139.445 +INF . ---- VAR TRNATB -INF -7.500 +INF .TX = -0.10L O O P S SC SC2 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.106 +INF . ---- VAR Y . 0.893 +INF . ---- VAR WA . 0.942 +INF . ---- VAR WB . 1.049 +INF . ---- VAR PX . 1.890 +INF . ---- VAR PY . 2.342 +INF . ---- VAR PL . 2.301 +INF . ---- VAR PK . 2.405 +INF . ---- VAR PWA . 2.220 +INF . ---- VAR PWB . 1.994 +INF . ---- VAR CONSA . 209.167 +INF . ---- VAR CONSB . 209.167 +INF . ---- VAR TRNATB -INF -1.818 +INF .TX = 0L O O P S SC SC3 LOWER LEVEL UPPER MARGINAL ---- VAR X . 1.000 +INF . ---- VAR Y . 1.000 +INF . ---- VAR WA . 1.000 +INF . ---- VAR WB . 1.000 +INF . ---- VAR PX . 2.353 +INF . ---- VAR PY . 2.353 +INF . ---- VAR PL . 2.353 +INF . ---- VAR PK . 2.353 +INF . ---- VAR PWA . 2.353 +INF . ---- VAR PWB . 2.353 +INF . ---- VAR CONSA . 235.313 +INF . ---- VAR CONSB . 235.313 +INF . ---- VAR TRNATB -INF . +INF .TX = 0.10L O O P S SC SC4 LOWER LEVEL UPPER MARGINAL ---- VAR X . 0.913 +INF . ---- VAR Y . 1.087 +INF . ---- VAR WA . 1.041 +INF . ---- VAR WB . 0.953 +INF . ---- VAR PX . 2.836 +INF . ---- VAR PY . 2.381 +INF . ---- VAR PL . 2.416 +INF . ---- VAR PK . 2.330 +INF . ---- VAR PWA . 2.488 +INF . ---- VAR PWB . 2.715 +INF . ---- VAR CONSA . 258.845 +INF . ---- VAR CONSB . 258.845 +INF . ---- VAR TRNATB -INF 1.429 +INF .TX = 0.50L O O P S SC SC5 LOWER LEVEL UPPER MARGINAL ---- VAR X . 0.677 +INF . ---- VAR Y . 1.319 +INF . ---- VAR WA . 1.116 +INF . ---- VAR WB . 0.800 +INF . ---- VAR PX . 5.097 +INF . ---- VAR PY . 2.617 +INF . ---- VAR PL . 2.761 +INF . ---- VAR PK . 2.416 +INF . ---- VAR PWA . 3.092 +INF . ---- VAR PWB . 4.315 +INF . ---- VAR CONSA . 345.126 +INF . ---- VAR CONSB . 345.126 +INF . ---- VAR TRNATB -INF 5.000 +INF . E x e c u t i o n ---- 1183 PARAMETER WELFARE Welfare index by scenarioTX as the sole distributive instrumentA B UPF .SC1 0.609 1.251 UPF .SC2 0.921 1.070 UPF .SC3 1.000 1.000 UPF .SC4 1.055 0.939 UPF .SC5 1.155 0.761Lump-Sum redistribution --Including TransfersA B UPF_LUMP.SC1 0.727 1.131 UPF_LUMP.SC2 0.942 1.049 UPF_LUMP.SC3 1.000 1.000 UPF_LUMP.SC4 1.041 0.953 UPF_LUMP.SC5 1.116 0.800