Description
Miller-Spencer - economic effects of UK membership.
Large Model of Types : MPSGE mcp
Category : GAMS Model library
Main file : shovmge.gms
$title Miller-Spencer - Economic Effects of UK Membership (SHOVMGE,SEQ=153)
$onText
Miller-Spencer - economic effects of UK membership.
Miller, M H, and Spencer, J E, The Static Economic Effects of the UK
joining the EEC: A General Equilibrium Approach. R.E.Stud, 1975.
Keywords: mixed complementarity problem, general equilibrium model, european
economic community, economic effects, GAMS - MPSGE framework
$offText
Set
R 'regions' / UK, EC, CW, RW /
F 'primary factors' / K, L /
G 'goods' / X, Z /
SC 'scenarios' / BENCH 'Benchmark replication'
POST_NT 'Integration without transfer'
POST_T 'Integration with tariff transfer'
GFT 'Global free trade' /
NON_EC(R) 'regions which are not the EC' / UK, CW, RW /;
Alias (R,RR), (R,RT);
Table ESUB(R,*) 'elasticities (top level and by aggregate)'
Top X Z
UK 0.1 3.0 3.0
EC 0.1 3.0 3.0
CW 0.1 3.0 3.0
RW 0.1 3.0 3.0;
Table LSHR(R,G) 'labor value shares (table I of MS)'
X Z
UK 0.64 0.35
EC 0.64 0.45
CW 0.60 0.32
RW 0.65 0.41;
Parameter FSHR(G,R,F) 'factor value shares in production';
FSHR(G,R,"L") = LSHR(R,G);
FSHR(G,R,"K") = 1 - LSHR(R,G);
Table CREF(G,R,R) 'reference consumption levels (tables VIIa and VIIb of MS)'
UK EC CW RW
X.UK 26.9811 1.5601 0.5619 5.9015
X.EC 0.8046 80.9840 0.1577 9.6285
X.CW 0.0461 0.0127 5.8316 0.3753
X.RW 2.3914 6.9002 0.7337 190.1027
Z.UK 0.5354 0.0367 0.0028 0.0829
Z.EC 0.0494 1.9401 0.0008 0.1221
Z.CW 0.1782 0.1586 0.1856 0.3932
Z.RW 0.5156 1.2882 0.0311 1.9737;
Table PREF(R,*) 'reference prices (table III of MS)'
X Z K L
UK 0.3301 0.6117 0.2730 0.2135
EC 0.5661 2.0740 0.5165 0.3850
CW 0.7064 0.6436 0.3340 0.3950
RW 0.6367 1.0020 0.4685 0.8438;
Table TREF(G,R,R) 'reference tariff rates (table II of MS.)'
UK EC CW RW
X.UK 0.150 0.050 0.125
X.EC 0.150 0.200 0.125
X.CW 0.150 0.125
X.RW 0.150 0.150 0.200
Z.UK 0.200 0.200
Z.EC 0.200
Z.CW 0.200 0.200
Z.RW 0.200 ;
Table T_NT(G,R,R) 'tariff rates - no transfer (table II of MS.)'
UK EC CW RW
X.UK 0.200 0.125
X.EC 0.200 0.125
X.CW 0.150 0.150 0.125
X.RW 0.150 0.150 0.200
Z.UK 0.200
Z.EC 0.200
Z.CW 0.200 0.200 0.200
Z.RW 0.200 0.200 ;
Table T_TR(G,R,R,R) 'tariff rates with transfers (table II of MS.)'
UK.UK UK.EC EC.EC CW.CW RW.RW
X.UK 0.200 0.125
X.EC 0.200 0.125
X.CW 0.105 0.045 0.150 0.125
X.RW 0.105 0.045 0.150 0.200
Z.UK 0.200
Z.EC 0.200
Z.CW 0.020 0.180 0.200 0.200
Z.RW 0.020 0.180 0.200 ;
Parameter T(G,R,R,R,SC) 'tariff rates by scenario';
T(G,R,RR,RR,"BENCH") = TREF(G,R,RR);
T(G,R,RR,RR,"POST_NT") = T_NT(G,R,RR);
T(G,R,RR,RT,"POST_T") = T_TR(G,R,RR,RT);
T(G,R,RR,RT,"GFT") = 0;
Parameter
SREF(G,R,R) 'benchmark subsidies' / Z.UK.UK 0.20, Z.EC.UK 0.20 /
PCREF(G,R,RR) 'benchmark consumption price index';
PCREF(G,R,RR) = PREF(R,G)*(1 + TREF(G,R,RR))*(1 - SREF(G,R,RR));
Parameter TBAL(*,R) 'trade balance check';
TBAL(G,R) = sum(RR, PREF(R,G) *CREF(G,R,RR)*(1 - SREF(G,R,RR)))
- sum(RR, PREF(RR,G)*CREF(G,RR,R)*(1 - SREF(G,RR,R)));
TBAL("TOTAL",R) = sum(G, TBAL(G,R));
display TBAL;
Parameter S(G,R,RR,SC) 'subsidy rates by scenario';
S(G,R,RR,"BENCH") = SREF(G,R,RR);
Parameter
E(F,R) 'factor endowments'
FD(F,G,R) 'reference factor demand'
YREF(G,R) 'reference output level'
DREF(G,R) 'reference demand';
DREF(G,R) = sum(RR, PCREF(G,RR,R)*CREF(G,RR,R));
YREF(G,R) = sum(RR, CREF(G,R,RR));
FD(F,G,R) = FSHR(G,R,F)*YREF(G,R)*PREF(R,G)/PREF(R,F);
E(F,R) = sum(G, FD(F,G,R));
$onText
$MODEL:MILLER
$SECTORS:
U(R) Y(G,R) D(G,R)
$COMMODITIES:
PU(R) PC(G,R) W(F,R) P(G,R)
$CONSUMERS:
RA(R)
$PROD:Y(G,R) s:1.0
O:P(G,R) Q:YREF(G,R)
I:W(F,R) Q:FD(F,G,R) P:PREF(R,F)
$PROD:D(G,R) s:ESUB(R,G)
O:PC(G,R) Q:DREF(G,R)
I:P(G,RR) Q:CREF(G,RR,R) P:PCREF(G,RR,R)
+ A:RA(RR) T:(-S(G,RR,R,SC))
+ A:RA(R) T:(T(G,RR,R,R,SC)*(1 - S(G,RR,R,SC)))
+ A:RA("EC") T:(T(G,RR,R,"EC",SC)*(1 - S(G,RR,R,SC)))$NON_EC(R)
$PROD:U(R) s:1
O:PU(R) Q:(SUM(G, DREF(G,R)))
I:PC(G,R) Q:DREF(G,R)
$DEMAND:RA(R) s:1
E:W(F,R) Q:E(F,R)
D:PU(R)
$offText
Parameter EV(R,SC) 'equivalent variation (%)';
$sysInclude mpsgeset MILLER
W.l(F,R) = PREF(R,F);
P.l(G,R) = PREF(R,G);
loop(SC,
$ include MILLER.GEN
solve MILLER using mcp;
EV(R,SC) = 100*(U.l(R) - 1);
);
display EV;