Hi guys,
I have a problem here. I am building a CGE energy model that incorporates with C02 emission (and its tax). However, I have an issue since this emission tax, at initial level, is 0. Thus, I am confused of how to shock this tax, i.e. a 0.5 $/ton CO2.
My equation design to incorporate the emission tax is briefly showed below:
EQUATIONS
eq19(NE)
eq19(NE)… P_ENCOM(NE) * ENCOM(NE)  sum( energyc, (1 + TAXFUEL(energyc, NE) )*
P_Z(energyc) * X(energyc, NE) ) =e= 0;
Note: There a lot of equations that incorporate with the exogenous variable of TAXFUEL; the above is an example case.
TAXFUEL is calibrated from relationship below:
PARAMETER
TAXCO20 = 0;
TAXFUEL0(energyc, A) $ ( X0(energyc, A) > 0 )
= TAXCO20 * CO2FIRM0(energyc, A) / ( P_Z0(energyc) * X0(energyc, A) );
If you see from above, the value of TAXFUEL0 is linked to the TAXCO20. In my model, this TAXCO20 (tax of C02) will be used as the policy instrument. At the initial level, TAXCO20 = 0 since it is not yet being introduced to the economy. So, I want to shock this TAXCO20 let say 0.5 $/ton. How should I implement this shock?
In my model, I created a loop mechanism as follows:
SETS

CASES FOR WHICH A SOLUTION IS TO BE OBTAINED IN THE LOOP
REP “SET OF VARIABLES TO BE REPORTED: BASE, SIMULATION, %CHANGE”
/
BASE “base simulation = initially calibrated values”
SHOCKED “shocked solution”
PCHANGE “% change in the value of the variable = 100*(shockedbase)/base”
DIFF “change in the value of the variable = shockedbase, if base<=0”
/ 
CASES FOR WHICH A SOLUTION IS TO BE OBTAINED IN THE LOOP
SOLU(REP) “SET OF SOLUTIONS: BASE, SIMULATION”
/
BASE “base simulation = calibrated values”
SHOCKED “SHOCKED SOLUTION”
/ 
7.2: PARAMETERS STORING THE SOLUTION VALUES OF THE VARIABLES
PARAMETERS 
VARIABLE VALUES TO BE USED IN SOLUTION FOR BASE & SHOCKED CASES

SPECIFY THE VARIABLE AT THE OUTSET HERE,

E.G. A PARAMETER
CGADJ_SHOCK(REP) 
OR AN EXOGENOUS VARIABLE
P_MW_SHOCK(C, REP)
HAtaxrate_SHOCK(REP)
TAXCO2_SHOCK(REP)
\ 
8: PRPARING TO SOLVE:
* 
8.1: SETTING THE BENCH & SHOCKED CASES ++++++++++++++++
* 
E.G. 10% SHOCK TO GOV EXP CGADJ
CGADJ_SHOCK(‘BASE’) = CGADJ0;
CGADJ_SHOCK(‘SHOCKED’) = 1.0 * CGADJ0;
CGADJ_SHOCK(‘PCHANGE’) = 0; 
OR:

A CHANGE IN IMPORT PRICES, P_MW(C)
P_MW_SHOCK(C, ‘BASE’) = P_MW0(C);
P_MW_SHOCK(C, ‘SHOCKED’) = 1.0 * P_MW0(C);
P_MW_SHOCK(C, ‘PCHANGE’) = 0; 
A CHANGE IN TAX RATE FOR HOUSEHOLDS
HAtaxrate_SHOCK(‘BASE’) = HAtaxrate0;
HAtaxrate_SHOCK(‘SHOCKED’) = 1.0 * HAtaxrate0;
HAtaxrate_SHOCK(‘PCHANGE’) = 0; 
A CHANGE IN ENERGY TAX
TAXCO2_SHOCK(‘BASE’) = TAXCO20;
TAXCO2_SHOCK(‘SHOCKED’) = 0.5 + TAXCO20;
TAXCO2_SHOCK(‘PCHANGE’) = 50;
When I execute this the above shock (red font), it did not generate the shock results (no percentage changes to the endogenous variables); everything is still at the initial values (preshock level).
I then tried another way where I don’t implement the above code, but I directly change the parameter of TAXCO20:
TAXCO20 = 0.5;
The model iterates, but it still does not generate any shock results. Does anybody knows how to implement a shock to a tax which is not existed at initial level like the above case?
Thank you for your helps.
Cheers,
Herbert
\
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.