chenery.gms : Substitution and Structural Change

Description

This model follows conventional input-output formulations for production
with nonlinear demand functions, import and export functions and production
functions for direct factor use.

Reference

  • Chenery, H B, and Raduchel, W J, Substitution and Structural Change. In Chenery, H B, Ed, Structural Change and Development Policy. Oxford University Press, New York and Oxford, 1981.

Small Model of Type : NLP


Category : GAMS Model library


Main file : chenery.gms

$Title Substitution and Structural Change  (CHENERY,SEQ=33)

$Ontext

This model follows conventional input-output formulations for production
with nonlinear demand functions, import and export functions and production
functions for direct factor use.


Chenery, H B, and Raduchel, W J, Substitution and Structural Change.
In Chenery, H B, Ed, Structural Change and Development Policy. Oxford
University Press, New York and Oxford, 1979.

$Offtext


 Sets  i     sectors     / light-ind, food+agr, heavy-ind, services /
       t(i)  tradables   / light-ind, food+agr, heavy-ind /

       lmh   possible elasticities / low, medium, high /
       sde   other parameters      / subst, distr, effic /

 Alias (i,j)


 Table  aio(i,i) input coefficients

             light-ind  food+agr  heavy-ind  services
 food+agr       .1
 heavy-ind      .2          .1
 services       .2          .3         .1

***
*  In the next 3 tables data is specified for many different possible
*  hypotheses about the economy. One particular subset is used for any
*  individual model. See assignment statements below.
***

 Table  pdat(lmh,*,sde,i)  production data

                   light-ind  food+agr  heavy-ind  services
 low.a.subst
 low.a.distr          .915       .944       2.60      .80
 low.a.effic         3.83       3.24        4.0      1.8
 low.b.subst
 low.b.distr          .276      1.034       2.60      .77
 low.b.effic         2.551      3.39        4.0      1.77

 medium.a.subst       .11        .29         .2       .05
 medium.a.distr       .326       .443        .991     .00798
 medium.a.effic      3.97       3.33        1.67     1.84
 medium.b.subst       .22        .58         .4       .1
 medium.b.distr       .41        .47         .92      .08
 medium.b.effic      3.99       3.33        1.8      1.89

 high.a.subst         .45       1.15         .4       .2
 high.a.distr         .456       .483        .917     .23
 high.a.effic        4.0        3.33        1.8      1.92
 high.b.subst         .93       1.15         .8       .4
 high.b.distr         .484       .483        .769     .344
 high.b.effic        4.0        3.33        1.96     1.96


 Table ddat(lmh,*,i)  demand parameters

                         light-ind  food+agr  heavy-ind  services
 (low,medium,high).ynot     100       230        220       450
 medium.p-elas             -.674      -.246     -.587     -.352
 high  .p-elas            -1         -1        -1        -1

 Table  tdat(lmh,*,t) trade parameters

                         light-ind  food+agr  heavy-ind

 medium.alp                .005       .001      .01
 high  .alp                .0025      .0005     .00178
 (medium,high).gam        1.0        1.1       1.0
 (medium,high).xsi         .005       .0157     .00178

 Parameter mew(t)  intercept on import cost function
           xsi(t)  slope of import cost function
           gam(t)  intercept on export revenue function
           alp(t)  slope of export revenue function
           ynot(i) demands in base year
           sig(i)  elasticity of substitution capital to labor
           thet(i) price elasticity of demand
           rho(i)  substitution parameter in production functions
           del(i)  distribution parameter in production functions
           efy(i)  efficiency parameter in production functions ;

 Scalar lbar total supply of labor / 750. /
        plab price of labor        /   1. /
        kbar capital stock         / 500  /
        dbar trade deficit         /   0  / ;

 Variables  x(i)     quantity of output
            v(i)     value added per unit output at current prices
            y(i)     final consumption
            p(i)     prices
            l(i)     labor use per unit of output
            k(i)     capital use per unit of output
            e(i)     quantity of exports
            m(i)     quantity of imports
            g(t)     foreign exchange cost of imports
            h(t)     foreign exchange value of exports
            pk       nominal market price of capital
            pi       factor price ratio
            pd       price deflator
            td       total demand
            vv(i)    intermediate result ;

 Positive Variables x,y,e,m,g,h,p,k,l,v ;

 Equations  dty      total demand: definition
            mb(i)    material balance
            tb       trade balance
            dg(t)    definition of imports
            dh(t)    definition of exports
            dem(i)   demand equations
            lc       labor constraint
            kc       capital constraint
            sup(i)   supply equations
            fpr      factor price ratio definition
            dvv(i)   definition of vv
            dl(i)    definition of labor coefficient
            dk(i)    definition of capital coefficient
            dv(i)    value added ;

***
*  the naming convention followed below is -
*  endogenous variables have 1 or 2 character names
*  exogenous parameters have 3 or more characters
***

 dty..  td =e= sum(i, y(i))  ;

 mb(i).. x(i) =g= y(i) + sum(j, aio(i,j)*x(j)) + ( e(i) - m(i) )$t(i) ;

 tb.. sum(t, g(t)*m(t) - h(t)*e(t)) =l= dbar ;

 dg(t)..  g(t) =e= mew(t) + xsi(t)*m(t) ;

 dh(t)..  h(t) =e= gam(t) - alp(t)*e(t) ;

 dem(i).. y(i) =e= ynot(i)*(pd*p(i))**thet(i) ;

 lc..  sum(i, l(i)*x(i)) =l= lbar ;

 kc..  sum(i, k(i)*x(i)) =e= kbar ;

 sup(i).. p(i) =e= sum(j, aio(j,i)*p(j)) + v(i) ;

 fpr.. pi =e= pk/plab ;

 dvv(i)$(sig(i) ne 0)..  vv(i) =e= (pi*(1-del(i))/del(i))**(-rho(i)/(1+rho(i))) ;

 dl(i)..  l(i)*efy(i) =e= ((del(i)/vv(i) + (1-del(i)))**(1/rho(i)) )$(sig(i) ne 0) + 1$(sig(i) eq 0) ;

 dk(i)..  k(i)*efy(i) =e= ((del(i) + (1-del(i))*vv(i))**(1/rho(i)) )$(sig(i) ne 0) + del(i)$(sig(i) eq 0) ;

 dv(i)..  v(i) =e= pk*k(i) + plab*l(i) ;

 Model chenrad chenery raduchel model / all / ;

*  bounds for variables

 y.up(i) = 2000 ; x.up(i) = 2000 ; e.up(t) = 400 ; m.up(t) = 400 ;

 g.up(t) =    4 ; h.up(t) =    4 ; p.up(i) = 100 ;
                                   p.lo(i) = 0.1 ;

 l.up(i) =    1 ; k.up(i) =    1 ;

 pk.lo   = 0.25 ; pk.up   =    4 ;
 pi.lo   = 0.25 ; pi.up   =    4 ;

 v.up(i) = 100 ;

 vv.lo(i) = 0.001 ;

***
*  select coefficient values for this run
***

 mew(t)  = 1.0 ;
 xsi(t) = tdat("medium","xsi",t) ;
 gam(t) = tdat("medium","gam",t) ;
 alp(t) = tdat("medium","alp",t) ;

 ynot(i)= ddat("medium","ynot",i) ;
 thet(i)= ddat("medium","p-elas",i) ;

 sig(i) = pdat("medium","a","subst",i) ;
 del(i) = pdat("medium","a","distr",i) ;
 efy(i) = pdat("medium","a","effic",i) ;
 rho(i)$(sig(i) ne 0) = 1./sig(i) - 1. ;


* initial values for variables

 y.l(i) = 250 ; x.l(i) = 200 ;
 e.l(t) =   0 ; m.l(t) =   0 ;

 g.l(t) = mew(t) + xsi(t)*m.l(t) ;
 h.l(t) = gam(t) - alp(t)*e.l(t) ;

 pd.l = 0.3 ; p.l(i) = 3 ;

 pk.l = 3.5 ;
 pi.l = pk.l/plab ;

 vv.l(i)$sig(i) = (pi.l*(1-del(i))/del(i))**(-rho(i)/(1+rho(i))) ;

 l.l(i) = (((del(i)/vv.l(i) + (1-del(i)))**(1/rho(i)) )$(sig(i) ne 0)
          + 1$(sig(i) eq 0))/efy(i) ;

 k.l(i) = (((del(i) + (1-del(i))*vv.l(i))**(1/rho(i)) )$(sig(i) ne 0)
          + del(i)$(sig(i) eq 0))/efy(i) ;

 v.l(i) = pk.l*k.l(i) + plab*l.l(i) ;

* add bounds to avoid function evaluation errors

 pd.lo = 0.01; p.lo(i) = 0.1;


 Solve chenrad using nlp maximizing td ;

 Scalar  cva  total value added at current prices
         rva  real value added
         fve  foreign exchange value of exports
         emp  total employment
         cli  cost of living index      ;

        cva = sum(i,v.l(i)*x.l(i)) ;
        fve = sum(t,e.l(t)*h.l(t)) ;
        emp = sum(i, l.l(i)*x.l(i)) ;
        cli = sum(i, p.l(i)*ynot(i))/sum(i, ynot(i)) ;
        rva = cva/cli ;

 Display cli,cva,rva,fve,emp ;