Skip to main content

WiNDC Core Model

Introduction

The canonical WiNDC model complements the constructed set of regional economic parameters in the core WiNDC database. The model is a calibrated multi-regional, multi-sector computable general equilibrium model that provides a foundational structure for specific empirical applications. The model was introduced in the WiNDC paper.

First the data from the WiNDC core database is loaded, then a single year of data is chosen for calibration; the year index will be subsequently suppressed. The CGE model verifies the consistency of the data for the chosen year: all markets are cleared, excess profit is zero and incomes are balanced. This framework can subsequently be used for counterfactual economic experiments.

Downloads

Details

  1. Declare the sets and parameters that we will load from the WiNDC database. Lists are given in the paper, Table 2 (sets) and Table 4 (parameters).
    set yr   Years of IO data,
        ...
        m     Margins (trade or transport);
    alias(s,g);

    parameter
        ys0_(yr,r,g,s)   Sectoral supply,
        ...
        nd0_(yr,r,g)     Regional demand from national market;
  2. Load data from the WiNDC core database:
    $gdxin 'WiNDCdatabase.gdx'
    $loaddc yr r s m gm
    ...
    $loaddc md0_ nm0_ dm0_
  3. Choose data for one year:
    $if not set year   $set year 2016
    parameter
        ys0(r,g,s)   Sectoral supply,
        ...
        nd0(r,g)     Regional demand from national market;
    ys0(r,g,s) = ys0_('%year%',r,g,s);
    ...
    hhadj(r) = hhadj_('%year%',r);
  4. Define additional parameters:
    parameter
        y_(r,s)   Sectors and regions with positive production,
        x_(r,g)   Disposition by region,
        a_(r,g)   Absorption by region;
    y_(r,s)$(sum(g, ys0(r,s,g))>0) = 1;
    x_(r,g)$s0(r,g) = 1;
    a_(r,g)$(a0(r,g) + rx0(r,g)) = 1;
  5. Formulate the CGE model in MPSGE:
    1. Indicate the beginning of a GAMS comment block containing an MPSGE model.
      $ontext
    2. Define the model name. This name is subsequently used to form the file WINDCMODEL.GEN.
      $model:windcmodel
    3. Define the model variables (see also Table 5 in the paper).
      Activity levels are associated with constant returns to scale production sectors in the economy:
      $sectors:
        Y(r,s)$y_(r,s)   !   Production
        X(r,g)$x_(r,g)   !   Disposition
        A(r,g)$a_(r,g)   !   Absorption
        C(r) !   Aggregate final demand
        MS(r,m) !   Margin supply
      Commodity prices include prices for all final goods, intermediate goods and primary factors of production:
      $commodities:
        PA(r,g)$a0(r,g)   !   Regional market (input)
        PY(r,g)$s0(r,g)   !   Regional market (output)
        PD(r,g)$xd0(r,g) !   Local market price
        PN(g) !   National market
        PL(r) !   Wage rate
        PK(r,s)$kd0(r,s) !   Rental rate of capital
        PM(r,m) !   Margin price
        PC(r) !   Consumer price index
        PFX !   Foreign exchange
      Agents are variables for income levels, one for each “household” in the model, including any government entities. Here we have one representative agent per region:
      $consumer:
        RA(r) !   Representative agent
    4. For each activity level (sector), define a nested CES production function that characterizes technology. The production function is expressed as a production block ($prod), where inputs and outputs are reference prices and reference quantities are parameters from the WiNDC database:
      $prod:Y(r,s)$y_(r,s)   s:0   va:1
          o:PY(r,g)   q:ys0(r,s,g)   a:RA(r)   t:ty0(r,s)   p:(1-ty0(r,s))
          i:PA(r,g)   q:id0(r,g,s)
          i:PL(r) q:ld0(r,s)   va:
          i:PK(r,s)   q:kd0(r,s)   va:
      ...
      $prod:C(r)   s:1
          o:PC(r) q:c0(r)
          i:PA(r,g)   q:cd0(r,g)
    5. For each agent, define a nested CES demand function that characterizes preferences. The demand function is expressed as a demand block ($demand), where endowments and demands are reference prices and reference quantities are parameters from the WiNDC database:
      $demand:RA(r)
          d:PC(r) q:c0(r)
          e:PY(r,g)   q:yh0(r,g)
          e:PFX q:(bopdef0(r) + hhadj(r))
          e:PA(r,g)   q:(-g0(r,g) - i0(r,g))
          e:PL(r) q:(sum(s,ld0(r,s)))
          e:PK(r,s)   q:kd0(r,s)
    6. Indicate the end of the MPSGE model specifictaion and direct the compiler to instruct the preprocessor to compile the model structure to an external file called WINDCMODEL.GEN:
      $offtext
      $sysinclude mpsgeset windcmodel
  6. First set the GAMS option iterlim to zero, so that the level values are passed to the solver unaltered. This has the effect of replicating the benchmark. Then load the external file WINDCMODEL.GEN and solve the model with an MCP solver.
    windcmodel.iterlim = 0;
    $include windcmodel.gen
    solve windcmodel using mcp;
    Check the listing file. The data are micro-consistent and the model is calibrated if all price variables equal one.
  7. Reset the iteration limit to 1000 (the default value) for subsequent counter-factual computations.
    windcmodel.iterlim = 1000;