Shock Statements Especially for the Policy Run The following special forms of shock statement: ashock, tshock, TFinal_Level, AChange, TChange, APercent_Change, TPercent_Change are used almost exclusively in conjunction with the RunDynam program. However, they are legal (but perhaps not useful) in any CMF file. To explain them, a little background is necessary. Recursive-dynamic models are multi-period CGE models in which results are computed one-period-at-a-time. RunDynam is a program, sold separately from the rest of GEMPACK, designed to manage simulations with these recursive-dynamic models. The RunDynam user does not personally create CMF files for each year (as is usual for standard GEMPACK models). Rather RunDynam creates the many CMF files which are needed, using information from the user about closure and shocks in each year. A recursive-dynamic simulation yields raw results which are a sequence of annual percentage (or maybe ordinary) changes. Often there are two such sequences or simulations: •a base, control or business-as-usual run which is a forecast driven by many expected exogenous changes stored in BSH (base shock) files created by the user. The shock values are usually expressed as changes relative to the value in the preceding year. •a policy or perturbed scenario which is the same as the base except that the exogenous changes include some extra shocks of policy interest, such as a tariff change proposed for 2014. The extra shocks are stored in PSH (policy shock) files created by the user. Each simulation produces a sequence of year-on-year changes in all model variables. Results (the effect of the proposed tariff change) are normally reported as cumulative differences (for any particular year) between the two scenarios, eg, as the percent difference between employment in 2019 with the tariff change relative to employment in 2019 without the change. This entails a great deal of tedious calculation, which RunDynam or ViewSOL does behind the scenes. Of course the tariff may have changed in both scenarios. In that case the cumulative difference shows the effect of additional tariff changes implemented for the policy scenario. It is natural and convenient to think of the policy shock in the same way -- as the extra component of tariff change, over and above any tariff change included in the base scenario. Indeed usually the RunDynam user specifies policy shocks in a PSH file with statements like: ashock t0imp = uniform 3; meaning that t0imp experiences a year-on-year increase of 3%, on top of any change in the base scenario. Suppose that in the base scenario for that year t0imp increased uniformly by 2%. Then, in the CMF file that RunDynam would construct for that years policy simulation we would find the statements: shock t0imp = uniform 2; . . . many other statements ashock t0imp = uniform 3; GEMPACK compounds the two shocks, and will actually apply a year-on-year increase of 5.06% (1.02*1.03=1.0506). Usually the result is close to simple addition of the shocks (5=2+3). The ashock statement means additional shock. Similar statement types are AChange and APercent_Change which can be used to impose additional ordinary or percentage changes on levels variables. The point to remember is that policy shock statements in PSH files are included in the CMF after a long list of shocks inherited from the base simulation, which potentially includes shocks to every exogenous variable. Furthermore, you are not allowed in a GEMPACK CMF file to shock the same variable twice using the same type of shock statement. Hence it would be illegal to include in your PSH file a statement like: shock t0imp = uniform 6; to cause t0imp to grow by 6% in the policy scenario , regardless of any change in the base scenario. If you did, RunDynam would construct a CMF file including the statements: shock t0imp = uniform 2; ! shock from base . . . many other statements shock t0imp = uniform 6; ! second shock not allowed causing an error. To achieve that effect (grow 6% in policy whatever happened in base), the PSH file should include the statement: tshock t0imp = uniform 6; so the CMF file includes the statements: shock t0imp = uniform 2; . . . many other statements tshock t0imp = uniform 6; ! ignore previous shock In this case the base shock (2%) is simply ignored. The tshock statement means target shock. Similar statement types are TChange and TPercent_Change which can be used to impose ordinary or percentage changes on levels variables regardless of any base shocks. Likewise the TFinal_Level statement moves a level variable to a particular value regardless of any movement in the base scenario. Continuous growth, step changes, and temporary changes Alway bear in mind that each ashock statement represents one year-on-year change, relative to control. Suppose import prices (p0cif) are exogenous in the policy scenario, and we include in every PSH file the statement: ashock p0cif = uniform 1; The effect is that each year import prices rise another 1% relative to base, so that after 10 years imports are 10.5% higher than in the base scenario (1.01^10=1.1046). So we have continuous growth (relative to base). If on the other hand we included the same statement: ashock p0cif = uniform 1; only in the 2010 PSH file, import prices would rise (relative to base) by 1% in 2010, then level off, remaining 1% above the base path. So we have a step change. If we intend that import prices rise temporarily, eg for 1 year only, we need in the subsequent, 2011 PSH file to include the statement ashock p0cif = uniform -0.9901; to reverse the prior 1% increase (1.1*0.990099=1). URL of this topic: www.copsmodels.com/webhelp/rundynam/hc_shockpol.htm Link to full GEMPACK Manual Link to GEMPACK homepage |