Adding Up Equations Satisfied Exactly by Cumulative Results This relates to what happens when you load cumulative results across several years of one run, or you load the cumulative difference results, using the AnalyseGE button in the Results for All/Several Years part of the Results page. This is a topic for experienced GEMPACK users. Others should skip it. What Equations Does This Apply To? It applies to linearised equations obtained by change differentiation from levels equations which have just addition or SUMs on both sides. Examples are equations adding values or quantities and market clearing equations. To see more details, go to the Help file for AnalyseGE (version 2.60 or later). Look for the topic Results Do Add Exactly for Some Equations. You will find that in the first book (or chapter) in that Help file. That topic in the Help file explains why these linearised equations are satisfied exactly for a single simulation with the model. The explanation there is based on loading into AnalyseGE the simulation results (from the Solution file) and the pre-simulation values of the Coefficients (from the SLC file). You should refresh your memory of this by reading that topic again before continuing here. The topic referred to above in the AnalyseGE Help file contains a number of examples of equations in the ORANIG and GTAP models which have this property. It also contains a couple of examples of equations which do not have this property (even though, on first glance, it looks as if they should have the property). Note that, for these equations, the two sides equal each other irrespective of the solution method and number of steps taken, and irrespective of how accurate the solution is. Checking Equations in AnalyseGE To check this for any suitable linearised equation in the TAB file, decompose the equation and select Whole equation as the Part to Decompose choice. You can select either Complete or Intelligent as the Type of Decomposition. When we say add up exactly we mean allowing for the usual rounding errors which occur when you add up lost of numbers on a computer. Below we explain why equations which add up exactly for a single simulation also add up exactly •when you load results accumulated across several years of the same run, or •when you load the cumulative differences results across several years into AnalyseGE (provided that you load appropriate values for the Coefficients). Cumulative Results Across Several Years of One Run Consider a linearised equation of the appropriate type. Then, provided that you have loaded •the results from one run, accumulated over several consecutive years, and •the values of the Coefficients as they were at the start of the first of those years in the relevant run the results shown in AnalyseGE will add up exactly on the two sides. This explains why you load the Coefficient values from the SLC file from the simulation for the first of the consecutive years in this case. [It contains the values of the Coefficients as they were at the start of this year.] The topic referred to above in the AnalyseGE Help file contains a proof that applies to any single multi-step simulation. The argument given in that topic explains what happens as you add up changes across many steps. The same argument also applies when you add up changes across several years in RunDynam, as we indicate below. When RunDynam calculates cumulative results across several consecutive years for percentage-change variables, the cumulative result p_A for percentage change variable p_A is calculated so that AORIG*p_A = change in A across all those years where AORIG is the levels value of A at the start of the first of these consecutive years. [The same calculation is done when ViewSOL calculates and shows cumulative results, when the GEMPACK program ACCUM calculates cumulative spreadsheet files, and when the GEMPACK program CMBHAR produces the cumulative solution RSL files used to load cumulative results across several years into AnalyseGE.] This explains why, if the two sides of a linear equation are always equal in AnalyseGE for one simulation, they should also be equal for cumulative results across several consecutive years provided that the values for the Coefficients are those at the start of the first of these consecutive years. Cumulative Differences Across All Years Suppose that, for any levels variable A, •A0 denotes the value of A at the start of the Policy and Rerun, •p_ARERUN denotes the simulation result for percentage-change variable p_A across all years of the Rerun, •p_APOLICY denotes the corresponding result cumulated across all years of the Policy, •ARERUN denotes the levels value at the end of the last year of the Rerun, and •APOLICY denotes the levels value at the end of the last year of the Rerun. Then ARERUN = A0*[1+p_ARERUN] and APOLICY = A0*[1+p_APOLICY] The cumulative differences result p_ADIFF for a percentage-change linear variable p_A are calculated so that ARERUN*p_ADIFF = APOLICY - ARERUN where ARERUN and APOLICY are the levels values of A at the end of the last year of the Rerun and Policy respectively. [For example, suppose that A has levels value 100 at the start of the first year of the Rerun and Policy. Suppose that A ends up equal to 200 at the end of the last year of the Rerun (that is, ARERUN=200) and that A ends up equal to 210 at the end of the last year of the Policy (that is, APOLICY=210). Then the cumulative difference result for p_A reported by ViewSOL or in the cumulative differences spreadsheet is 5. [This is equal to 100*(APOLICY-ARERUN)/ARERUN = 100*(210-200)/200 = 5.] Note that ARERUN*p_ADIFF = APOLICY - ARERUN = A0*[1+p_APOLICY] - A0*[1+p_ARERUN] = A0*p_APOLICY - A0*p_ARERUN [*] Consider a linearised equation whose results add up exactly in one simulation. Then they add up exactly across all years of the Rerun and the Policy, as explained just above, provided you load in Coefficient values from the database at the start of the first year of the Policy and the Rerun. This is easier to understand if we consider a simple equation of the right form. So consider the levels equation D = E + F and suppose that the percentage-change versions p_D, p_E and p_F are explicitly in the model. Then the linearised equation in question is D*p_D = E*p_E + F*p_F [1] Hence we know that D0*p_DRERUN = E0*p_ERERUN + F0*p_FRERUN D0*p_DPOLICY = E0*p_EPOLICY + F0*p_FPOLICY since this equation adds up exactly for results across the Rerun and across the Policy. If you subtract the first of these from the second, then the left-hand side equals D0*p_DPOLICY - D0*p_DRERUN = DRERUN*p_DDIFF from [*] above. Similarly, using [*] for E and F, the right-hand side equals ERERUN*p_EDIFF + FRERUN*p_FDIFF This shows that DRERUN*p_DDIFF = ERERUN*p_EDIFF + FRERUN*p_FDIFF which shows that the linearised equation [1] is satisfied exactly if you replace the Coefficient values by the values at the end of the Rerun and the variables by their cumulative differences. This is what we set out to prove. It explains why, when RunDynam loads cumulative differences into AnalyseGE, it loads the values of the Coefficients as they are at the end of the Rerun (or, end of the Base if you are not doing the Rerun). These values are taken from the UDC file produced by the simulation for the last year of the Rerun. Why the MONASH Model is Different The argument above assumes that the simulation results reported reflect all changes in the database. That is, the argument assumes that all changes in the data between the pre- and post-simulation databases could be deduced from the simulation results for the associated price and quantity variables. This is not so for the MONASH Model. In that model, there may be some preliminary redistribution of the phantom taxes, and this redistribution is not included in the simulation results. For this reason, linearised equations from MONASH.TAB which would add up exactly in AnalyseGE if this redistribution were not done, usually do not add up exactly. For example, consider the following linearised equations from MONASH.TAB. Equation E_gdpinc # Nominal GDP from income side # GDPIN*gdpinc = AGGLND*lndrev + AGGCAP*caprev + AGGLAB*labrev + AGGOCT*octrev + AGGTAX*taxind; Equation E_taxind # Aggregate value of indirect taxes # AGGTAX*taxind = AGGTAX1*taxrev1 + AGGTAX2*taxrev2 + AGGTAX3*taxrev3 + 100*del_tot_tax4 + 100*del_tot_tax5 +100*del_tot_tax0 + AGGTAXM*taxrevm; Each of these is satisfied exactly if you load the Solution from one year into AnalyseGE using the AnalyseGE button in the Results for Individual Years part of the Results page. But they are not satisfied if you load the cumulative results across several years, or the cumulative differences across several years, via the AnalyseGE button in the Results for All/Several Years part of the Results page. [You can check these assertions with any policy application using the MONASH model.] URL of this topic: www.copsmodels.com/webhelp/rundynam/hc_addupexact.htm Link to full GEMPACK Manual Link to GEMPACK homepage |