Description
This is the TWO3MCP model written using macros. The documentation of GAMS-F uses this model as example 7. Reference: Shoven and Whalley: "Applied G.E. Models" Journal of Economic Literature, XXII (1984) Keywords: mixed complementarity problem, general equilibrium model, GAMS macro
Small Model of Type : MCP
Category : GAMS Model library
Main file : two3mac.gms
$title Simple 2 x 2 x 2 General Equilibrium Model Using Macros (TWO3MAC,SEQ=341)
$onText
This is the TWO3MCP model written using macros. The documentation
of GAMS-F uses this model as example 7.
Reference: Shoven and Whalley: "Applied G.E. Models"
Journal of Economic Literature, XXII (1984)
Keywords: mixed complementarity problem, general equilibrium model, GAMS macro
$offText
Set
f 'factors' / labor, capital /
s 'sectors' / mfrs, nonmfrs /
h 'households' / rich, poor /;
* demand function parameters.
Parameter sigmac(h) / rich 1.5, poor 0.75 /;
Table alpha(s,h)
rich poor
mfrs 0.5 0.3
nonmfrs 0.5 0.7;
Table e(f,h)
rich poor
labor 60
capital 25 ;
* production function parameters.
Parameter phi(s) / mfrs 1.5, nonmfrs 2.0 /;
Table delta(f,s) 'factor share coefficients'
mfrs nonmfrs
labor 0.6 0.7
capital 0.4 0.3;
Parameter
sigma(s) 'elasticities of factor substitution' / mfrs 2.0, nonmfrs 0.5 /
tshr(h) 'share of tax revenue'
t(f,s) 'ad-valorem tax rates';
tshr(h) = 0;
t(f,s) = 0;
$macro PF(f,s) (W[f]*(1 + t[f,s]))
$macro COST(s) sum{f.local, delta[f,s]**sigma[s]*PF(f,s)**(1 - sigma[s])}**(1/(1 - sigma[s]))/phi[s]
$macro FD(f,s) (delta[f,s]*COST(s)/PF(f,s))**sigma[s]
$macro TAX(s) sum{f.local, t[f,s]*W[f]*Y[s]*FD(f,s)}
$macro INCOME(h) (sum{f, e[f,h]*W[f]} + tshr[h]*sum{s.local, TAX(s)})
$macro D(s,h) INCOME(h)*alpha[s,h]*sum{s.local, alpha[s,h]*P[s]**(sigmac[h] - 1)}*P[s]**(-sigmac[h])
Positive Variable
W(f) 'factor price'
P(s) 'commodity price'
Y(s) 'production level';
Equation
fmkt(f) 'factor market'
cmkt(s) 'commodity market'
profit(s) 'zero profit';
* Factor supply (endowments) equals factor demand:
fmkt(f).. sum(h, e(f,h)) =g= sum(s, FD(f,s)*Y(s));
* Commodity output equals commodity demand:
cmkt(s).. Y(s) =g= sum(h, D(s,h));
* Unit cost equals market price:
profit(s).. COST(s) =g= P(s);
Parameter DL(s,h);
Model jel / fmkt.W, cmkt.P, profit.Y /;
* compute solution for this dimension problem:
W.lo(f) = 0.0001;
P.lo(s) = 0.0001;
W.l(f) = 1;
P.l(s) = 1;
Y.l(s) = 10;
* solve the reference case:
W.fx("labor") = 1;
solve jel using mcp;
$onDotL
dl(s,h) = d(s,h);
display dl;
* apply tax in test problem:
tshr("rich") = 0.4;
tshr("poor") = 1 - tshr("rich");
t("capital","mfrs") = 0.5;
solve jel using mcp;
dl(s,h) = d(s,h);
display dl;