Prev Up
Go backward to 2.2 The MPSGE Formulation
Go up to 2 The Dataset and Static Model

2.3 The Algebraic Formulation

Compactness of representation leaves fewer opportunities to make mistakes. For this reason alone I prefer to implement equilibrium models with MPSGE. I use algebraic models for teaching, or occasionally I write out a model in full algebraic form in order to introduce functional forms which are unavailable in MPSGE or in order to apply joint maximization as a solution method for large scale models with an imbedded linear program.

I recognize, however, that the tabular MPSGE syntax can be impenetrable for many competent modellers, therefore I conclude my discussion of the core GTAPinGAMS model by going through the implementation in GAMS algebra. I pose the model here as a mixed complementarity problem, but in this formulation all of the market clearance and zero profit conditions will hold with equality, so the model can be solved in GAMS as a nonlinear program (NLP) with a vacuous objective or a constrained nonlinear system (CNS).

In order to write out GTAP in algebraic form it is helpful to introduce some additional benchmark data structures which simplify demand function algebra. The extra parameters include benchmark value shares for all of the nonlinear demand and supply functions in the model. (See Table 12.)

The variables used in the GAMS/MCP model are listed in Table 13, separated by blank lines into four subsets. The first set of variables are unit demand and supply functions, corresponding to the symbols from the algebraic formulation above. (See Table 8.) Demand and supply functions are represented implicitly in the MPSGE model, but for simplicity these are introduced as separate symbols in the algebraic model. The remaining three subsets of variables in the model correspond precisely to the sectors, commodities and consumers in the MPSGE model.

Table 14 presents equations defining the unit demand and supply functions. Using benchmark quantities, prices and value shares, I use the calibrated share form to express demands as a function of input prices. (See Rutherford 1998, Chapter 3). In order to keep track of what is what, I am following Michael Saunders' suggestions for GAMS program style, listing variables and GAMS variables in upper case, parameters and sets in lower case. The three symbols in Table 15 have not yet been defined. eta=2 represents the elasticity of transformation between production for the domestic and export markets, esubdm=4 is the domestic-import Armington elasticity of substitution, and esubmm=8 is the import-import Armington elasticity.

Table 12: Benchmark Share Parameters used in the Algebraic Model

 
PARAMETER
        vad(i,r)        Sectoral value-added,
        tau(i,r,s)      Unit transport cost coefficient
 
        thetaf(f,i,r)   Value added,
        thetad(i,r)     Domestic output,
        thetag(i,r)     Government demand,
        thetap(i,r)     Private demand,
        thetat(i,r)     Transport,
        thetam(d,i,r)   Import value share,
        beta(i,s,r)     Value share of bilateral imports,
        gamma(i,s,r)    Goods share of unit import cost;
 
vad(i,r) = sum(f, vfm(f,i,r)*pf0(f,i,r));
tau(i,r,s)$vxmd(i,r,s) = vtwr(i,r,s) / vxmd(i,r,s);
 
thetam(d,i,r)$va(d,i,r) = vm(d,i,r) / va(d,i,r);
thetaf(f,i,r)$vad(i,r) = pf0(f,i,r) * vfm(f,i,r) / vad(i,r);
thetad(i,r)$vom(i,r) = vdm(i,r) / vom(i,r);
thetag(i,r) = pg0(i,r) * vgm(i,r) / vg(r);
thetap(i,r) = pc0(i,r) * vpm(i,r) / vp(r);
thetat(i,r)$sum((j,s), vst(j,s)) = vst(i,r) / vt;
beta(i,s,r)$vxmd(i,s,r) =
           (vxmd(i,s,r)*pmx0(i,s,r)+vtwr(i,s,r)*pmt0(i,s,r) )  / vim(i,r);
gamma(i,s,r)$vxmd(i,s,r) = vxmd(i,s,r)*pmx0(i,s,r) /
           (vxmd(i,s,r)*pmx0(i,s,r) + vtwr(i,s,r)*pmt0(i,s,r) );
 

Table 13: Variables in the MCP Model

 
VARIABLES
 
        A_G(i,r)        Public sector unit demand
        A_C(i,r)        Private unit demand
        A_F(f,i,r)      Factor unit demand
        A_X(i,r)        Export unit supply
        A_D(i,r)        Domestic unit supply
        A_M(i,r,s)      Import unit demand
 
        C(r)            Private consumption
        G(r)            Public provision
        Y(i,r)          Aggregate Output
        M(i,r)          Import aggregation
        A(d,i,r)        Armington aggregations
        YT              Transport
 
        PC(r)           Private demand
        PG(r)           Public provision
        PD(i,r)         Domestic Output price
        PX(i,r)         Export price
        PM(i,r)         Import price
        PA(d,i,r)       Armington composite price
        PF(f,r)         Factor price
        PT              Transport services
 
        RA(r)           Representative agent income;
 

Table 14: Compensated Unit Demand and Supply Functions

 
DEF_G(i,r)..
 
  A_G(i,r) =E= vgm(i,r) *
        PROD(j, (PA("g",j,r)*(1+tg(j,r))/pg0(j,r))**thetag(j,r)) /
        ( PA("g",i,r)*(1+tg(i,r))/pg0(i,r) );
 
DEF_C(i,r)..
 
  A_C(i,r) =E= vpm(i,r) *
        PROD(j, (PA("c",j,r)*(1+tp(j,r))/pc0(j,r))**thetap(j,r)) /
        ( PA("c",i,r)*(1+tp(i,r))/pc0(i,r) );
 
DEF_F(f,i,r)..
 
  A_F(f,i,r) =E= vfm(f,i,r) *
        PROD(ff, (PF(ff,r)*(1+tf(ff,i,r))/pf0(ff,i,r) )**thetaf(ff,i,r)) /
        ( PF(f,r)*(1+tf(f,i,r)) / pf0(f,i,r) );
 
DEF_X(i,r)..
 
  A_X(i,r) =E=  vxm(i,r) * (PX(i,r) /
        (thetad(i,r)  * PD(i,r)**(1+eta) +
        (1-thetad(i,r)) * PX(i,r)**(1+eta))**(1/(1+eta)) )**eta;
 
DEF_D(i,r)..
 
  A_D(i,r) =E=  vdm(i,r) * (PD(i,r) /
        (thetad(i,r)  * PD(i,r)**(1+eta) +
        (1-thetad(i,r)) * PX(i,r)**(1+eta))**(1/(1+eta)) )**eta;
 
DEF_M(i,r,s)..
 
  A_M(i,r,s) =E= vxmd(i,r,s) * ( PM(i,s) /
        ( gamma(i,r,s)  * PX(i,r)*(1+tx(i,r,s))*(1+tm(i,r,s))/pmx0(i,r,s)
        + (1-gamma(i,r,s)) * PT*(1+tm(i,r,s)) / pmt0(i,r,s) ) )**esubmm;
 
 

Having defined compensated demands, it is then straightforward to write down zero profit equations. For sector Yir this means that the cost of inputs to production (intermediate demand plus primary factors, gross of tax) must equal the value of outputs (domestic sales plus exports, net of tax).

Table 15: Exhaustion of Production Equations in the MCP Formulation

 
*       Production:
 
PRF_Y(i,r)..
 
  SUM(j, vafm(j,i,r) * PA("i",j,r) * (1+ti(j,i,r)) ) +
        SUM(f, A_F(f,i,r) * PF(f,r) * (1 + tf(f,i,r)) )
        =E= (1 - ty(i,r)) * (PD(i,r) * A_D(i,r) + PX(i,r) * A_X(i,r));
 
 
*       Armington aggregation across imports from different countries:
 
PRF_M(i,r)..
 
  SUM(s, (1 + tm(i,s,r)) * A_M(i,s,r) *
        (PX(i,s) * (1 + tx(i,s,r)) + PT * tau(i,s,r))) =E= PM(i,r) * vim(i,r) ;
 
*       Public output:
 
PRF_G(r)..      SUM(i, PA("g",i,r) * (1+tg(i,r)) * A_G(i,r)) =E= PG(r) * vg(r);
 
*       Private consumption:
 
PRF_C(r)..      SUM(i, PA("c",i,r) * (1+tp(i,r)) * A_C(i,r)) =E= PC(r) * vp(r);
 
 
*       Import-domestic aggregation by submarket:
 
PRF_A(d,i,r)..
 
  ((1-thetam(d,i,r)) * PD(i,r)**(1-esubdm) +
        thetam(d,i,r)  * PM(i,r)**(1-esubdm) )**(1/(1-esubdm)) =E= PA(d,i,r);
 
*       Inter-national transport services (Cobb-Douglas):
 
PRF_YT..        PROD((i,r), PD(i,r)**thetat(i,r)) =E= PT;
 

The zero profit conditions for A(d,i,r), and YT are based on CES and Cobb-Douglas cost functions because the associated unit demand functions are not defined explicitly in the model.22 Market clearance equations are displayed in Table 15. The only tricky equation here is MKT_PA(d,i,r) in which I use three different subsets to equate submarket supply with intermediate, public and private demand. The subsets are declared:

 
        set i_d(d)/i/, c_d(d) /c/, g_d(d) /g/;
 
This notation permits me to define a different right-hand-side expression for each element of set d in the model definition.

Table 16: Market Clearing Equations in the MCP Formulation

 
*       Exports:
 
MKT_PX(i,r)..
 
  YX(i,r)*Y(I,R) =E= SUM(s, A_M(i,r,s)*M(i,s)) + VST(i,r)*YT*(PT/PX(i,r));
 
*       Domestic supply:
 
MKT_PD(i,r)..
 
  YD(i,r) * Y(I,R) =E=
        SUM(d, A(d,i,r) * vd(d,i,r) * ( PA(d,i,r)/PD(i,r) )**esubdm )
        + vi(r)$cgd(i);
 
*       Imports:
 
MKT_PM(i,r)..
 
  vim(i,r) * M(i,r) =E=
        SUM(d, A(d,i,r) * vm(d,i,r) * ( PA(d,i,r)/PM(i,r) )**esubdm );
 
*       International transport:
 
MKT_PT..        YT * vt =E=  sum((i,r,s), A_M(i,r,s) * M(i,s) * tau(i,r,s));
 
*       Armington supply:
 
MKT_PA(d,i,r)..
 
  va(d,i,r) * A(d,i,r) =E= sum(j, vafm(i,j,r) * Y(j,r))$i_d(d)
        + (A_C(i,r) * C(r))$c_d(d) + ( A_G(i,r) *  G(r))$g_d(d);
 
*       Government provision:
 
MKT_PG(r)..     G(r) =E= 1;
 
*       Factor market:
 
MKT_PF(f,r)..   evoa(f,r) =E= sum(i, A_F(f,i,r) * Y(i,r));
 
 
*       Private demand:
 
MKT_PC(r)..     C(r) * vp(r) =E= RA(r) / PC(r) ;
 

The final equation for this model is an expression defining regional income as a function of factor prices, transfers, and tax revenue. The complexity in this equation concerns accounting for revenue from each of seven different tax instruments.23 Not to belabor the point, but the income expression in Table 16 illustrates the usefulness of MPSGE for tax policy analysis.24

Table 17: Income Balance Equations in the MCP Formulation

 
INC_RA(r)..
 
  RA(r) =E= sum(f,   PF(f,r) * evoa(f,r))
        + sum(num, PC(num) * vb(r))
        - sum(cgd, PD(cgd,r) * vdm(cgd,r))
        - PG(r) * vg(r)
 
* Output tax:
 
        +    sum(i, ty(i,r)*(PX(i,r)*A_X(i,r)+PD(i,r)*A_D(i,r))*Y(I,R) )
 
* Tax on intermediate demand:
 
        +    sum((i,j), ti(j,i,r) * PA("i",j,r) * vafm(j,i,r) * Y(i,r) )
 
* Taxes on factor use:
 
        +    sum( (i,f),  tf(f,i,r) * PF(f,r) * A_F(f,i,r) * Y(i,r))
 
* Export tax:
 
        +     sum((i,s), tx(i,r,s) * PX(i,r) * A_M(i,r,s) * M(i,s) )
 
* Import tariff applies to mechandise gross of export tax
* and transport cost:
 
        +    sum((i,s), tm(i,s,r) * A_M(i,s,r) * M(i,r) *
                (  PX(i,s) * (1+tx(i,s,r)) + PT * tau(i,s,r) ) )
 
* Taxes on goverment consumption:
 
        +    sum(i, tg(i,r) * PA("g",i,r) * A_G(i,r) * G(r))
 
* Taxes on private consumption:
 
        +    sum(i, tp(i,r) * PA("c",i,r) * A_C(i,r) * C(r));
 

October 23, 1998

Prev Up