// Calibration:10 // Endogenous and exogenous variables // Endogenous Variables var ca da dc di dic did dio dy exr Gc Gd Go GPc GPd GPo pro ia iac iad iao no ni u kac rm kad kao rkc newkc newkd newko lambdax dcl dd do rkd rko m qc qd qo Q logQ rf dtc dtca n z tca uc lambdao ya yac yad exrlev Lc Ld Lo dyc dyd lambdac lambdad thetap phic phid phio phis eq oa e t prc prd tax taos wo wc wd ro rd rc epsilons edd edc; varexo ea ex el et ec; // Parameters parameters a1 b c alpha b_ma beta delta eps f gam Gbar2 Gbar iybar kybar kbar ybar mu Nbar phi lev psi rho tau theta varphi theta0 rholr l k o i tao k1 k0 k2 epsilondd eta mu0 v eqa p r0 ss ; a1 = 0.142857142857143; // Adjustment cost coefficent alpha = 0.345000000000000; // Production function exponent b_ma = 0.000000000000000; // MA coefficient beta = 0.96; // Subjective discount factor theta0 =0.3; // Environmental quality share in utility bundle rho =0.375 ; // Elasticity of substitution between env. quality and consumption Labor market l =0.667; // leisure share k0 =0.025; // oil extraction rate o =0.5; // Elasticity of substitution between capital and oil i =0.06; // Oil share in dirty sector's production function tao =0.4; // Capital share of oil wells production k1 =0.0144; // Temperature-sensitivity of environmental quality k2 =2; // Temperature-sensitivity of environmental quality epsilondd =0.2; // Emissions intensity of dirty sector eta =0.02; // Atmosphere recovery rate mu0 =0; // Average distance of carbon tax to optimal tax v =0.966; // Carbon retention rate eqa =0.1; // Environmental quality levelat pre-industrial temperature level p =3; // Elasticity of substitution between clean and dirty sector output Oil production and input r0 =0.95; // Persistence of carbon tax ss =0.1; //Climate sensitivity to emission delta = 0.005000000000000; // Depreciation rate of capital eps = 100.000000000000000; // Approximation for absolute value f = 1.000000000000000; // Consumption-labor elasticity gam = 10.000000000000000; // Risk aversion mu = 0.022700000000000; // Long run mean of productivity Nbar = 0.333; // Steady state number of hours worked phi = 0.000000000000000; // 1=A_t 0=A_t-1 psi = 2.000000000000000; // Intertemporal elasticity of substitution rholr = 0.981576529873752; // Persistence of long run shock tau = 1.500000000000000; // Adjustment cost exponent theta = (1-1/psi)/(1-gam); // Composite parameter varphi = 0.204786351767522; // Consumption-labor CES weight lev= 2.3; Gbar = 0; // Approx Error Gbar2 = 0; // G steady state kbar = log((alpha/(exp(mu/psi)/beta-1+delta+Gbar2))^(1/(1-alpha)))+mu+log(Nbar/3); ybarc = (mu + log(Nbar/3))*(1-alpha) + kbar*alpha; iybar = log(exp(mu)+delta-1+Gbar2) + kbar - ybar; kybar = kbar - ybar; b = (exp(mu) + delta - 1)^a1; // Adjustment cost coefficent c = -(1/(1/a1-1))*(exp(mu) + delta - 1); // Adjustment cost coefficent // Model model; // Productivity da = mu+ea; // Growth rates dy = ya-ya(-1)+da(-1); dtca = tca-tca(-1); dtc = dtca+da(-1); dc = ca-ca(-1)+da(-1); di = ia-ia(-1)+da(-1); dyc=yac-yac(-1)+da(-1); dyd= yac-yac(-1)+da(-1); dic=iac-iac(-1)+da(-1); did=iad-iad(-1)+da(-1); dio=iao-iao(-1)+da(-1); // Utility and SDF Q = exp((uc(+1)+dtc(+1))*(1-gam)); logQ = log(Q); exp((1-1/psi)*uc) = (1-beta)+beta*(Q^theta); exp(m) = beta*exp(dc*(-1/rho))*exp(dtc*(1/rho-1/psi))*exp((uc+dtc)*(1/psi-gam))/exp(logQ(-1)*(1-theta)); // Consumption-labor aggregators tca = (1-theta0)*ca+theta0*(eq+phi*da); 1-l=exp(Lc)+exp(Ld)+exp(Lo); // Production exp(yac) = exp(alpha*kac)*exp((da+Lc)*(1-alpha)); exp(yad) = exp(alpha*kad)*exp((da+Ld)*(1-alpha)); z=(1-i)*kac+i*o; //Relative price exp(pro)=lambdad*alpha*i*(exp(yad)/(exp((1-1/o)*z+(1/o)*oa))); prc=(yac-ya)*(1/3); prd=(yad-ya)*(1/3); exp(prc)=lambdac; exp(prd)=tax+lambdad+edd*epsilondd; //emission e=(1-eta)*e(-1)+epsilondd*exp(yad); //temperature t=v*t(-1)+ss*e+t*ec; //environmental quality exp(eq)=eqa/(1+k1*t^k2); // Resource contraints exp(ya)=exp(yac)+exp(yad); exp(ya) = exp(ca)+exp(iac)+exp(iad)+exp(iao); exp(ia)=exp(iac)+exp(iad)+exp(iao); //intermediate good sectors exp(phic)=v*exp(m(+1)+phic(+1)+da); exp(phid)=v*exp(m(+1)+phid(+1)+da); ss*exp(phid)=-(1-eta)*exp(m(+1)+edd(+1)+da)+edd; ss*exp(phic)=-(1-eta)*exp(m(+1)+edc(+1)+da)+edc; //wages exp(wc)=lambdac*exp(yac-Lc); exp(wd)=lambdad*exp(yad-Ld); exp(wo)=exp(phio)*(1-tao)*exp(no-Lo); //return on capital exp(rkc)=lambdac*alpha*exp(yac-kac); exp(rkd)=lambdad*alpha*(1-i)*exp(yad-(1-1/o)*z-1/o*kad); exp(rko)=exp(phio)*tao*exp(no-kao); //oil sector exp(u+da(-1))=(1-k0)*exp(u(-1))+exp(no); exp(no)=exp((1-tao)*(Lo)+tao*(kao)); oa=e; exp(e)=k0*exp(u); lambdao=exp(phio); exp(phio)=k0*exp(m(+1)+pro(+1))+(1-k0)*exp(m(+1)+phio(+1)); //tax tax=thetap*taos; taos=exp(epsilons)*epsilondd; exp(eq+phis)=-(1-eta)*exp(m(+1)+epsilons(+1)+da)+epsilons; exp(m(+1)+lambdax(+1)+eq(+1)+da)*(k1*k2*t^(k2-1))/(1+k1*t^k2)=-v*exp(m(+1)+phis(+1)+da)+phis; lambdax=(theta/(1-theta))*exp((eq-ca)*(-1/ro)); thetap=(1-r0)*(1-mu0)+r0*thetap(-1)+et; // Investment exp(kac+da(-1)) = (1-delta + exp(newkc(-1)))*exp(kac(-1)); exp(Gc) = 1 + exp(iac-kac)-(b/(1-a1))*exp((1-a1)*(iac-kac))-c; GPc = 1-b*exp(-a1*(iac-kac)); exp(newkc) = (b/(1-a1))*exp((1-a1)*(iac-kac))+c; exp(kad+da(-1)) = (1-delta + exp(newkd(-1)))*exp(kad(-1)); exp(Gd) = 1 + exp(iad-kad)-(b/(1-a1))*exp((1-a1)*(iad-kad))-c; GPd = 1-b*exp(-a1*(iad-kad)); exp(newkd) = (b/(1-a1))*exp((1-a1)*(iad-kad))+c; exp(kao+da(-1)) = (1-delta + exp(newko(-1)))*exp(kao(-1)); exp(Go) = 1 + exp(iao-kao)-(b/(1-a1))*exp((1-a1)*(iao-kao))-c; GPo = 1-b*exp(-a1*(iao-kao)); exp(newko) = (b/(1-a1))*exp((1-a1)*(iao-kao))+c; // Prices and returns clean sector exp(dcl) = alpha*exp(yac-kac) + (exp(newkc) - delta)*exp(qc) - exp(iac-kac); exp(qc) = 1/(1-GPc); exp(rc) = (exp(qc)+exp(dc))/exp(qc(-1)); 1 = exp(rc(+1)+m(+1)); // Prices and returns dirty sector exp(dd) = alpha*exp(yad-kad) + (exp(newkd) - delta)*exp(qd) - exp(iad-kad); exp(qd) = 1/(1-GPd); 1 = exp(rd(+1)+m(+1)); exp(rd) = (exp(qd)+exp(dd))/exp(qd(-1)); // Prices and returns oil sector exp(do) = alpha*exp(no-kao) + (exp(newko) - delta)*exp(qo) - exp(iao-kao); exp(qo) = 1/(1-GPo); exp(ro) = (exp(qo)+exp(do))/exp(qo(-1)); 1 = exp(ro(+1)+m(+1)); // Prices and returns whole market exp(rm)=exp(kac+qc+rc)+exp(kad+qd+rd)+exp(kao+qo+ro)/(exp(kac+qc)+exp(kad+qd)+exp(kao+qo)); 1 = exp(rm(+1)+m(+1)); 1/exp(rf) = exp(m(+1)); exr = rm-rf(-1); exrlev =lev*(exr)+el; end; // Initital values initval; da = mu; dy = mu; dyc = mu; dyd = mu; dc = mu; dtc = mu; dtca = 0; Lo = log(Nbar/3); Lc =log(Nbar/3); Ld =log(Nbar/3); di = mu; dic=mu; did=mu; dio=mu; uc = log(((1-beta)/(1-beta*exp((1-1/psi)*mu)))^(psi/(psi-1))); m = log(beta)-mu/psi; Q = exp((uc+mu)*(1-gam)); logQ = log(Q); Gc = 0; Gd=0; Go=0; GPc = 0; GPd = 0; GPo=0; taos=0.2; tax=1*taos; kac = kbar; kad = kbar; kao=kbar; iac = log( exp(kac)*(exp(mu)+delta-1) ); iad = log( exp(kad)*(exp(mu)+delta-1) ); iao = log( exp(kao)*(exp(mu)+delta-1) ); ia = log(exp(iac)+exp(iad)+exp(iao)); yac = alpha*kac+(1-alpha)*(mu+log(Nbar/3)); yad = alpha*kad+(1-alpha)*(mu+Ld); ya=log(exp(yac)+exp(yad)); ca = log(exp(ya)-exp(ia)); e=epsilondd*yad/eta; t=ss*e/(1-v); eq=eqa/(1+k1*k2*log(t)); tca = theta0*ca+(1-theta0)*(eq+phi*da); qc = 0; qd = 0; qo =0; dcl = log(alpha*exp(yac-kac)-delta-Gc); dd = log(alpha*exp(yad-kad)-delta-Gd); no=tao*kac+(1-tao)*Lo; do = log(alpha*exp(no-kao)-delta-Go); newkc = iac-kac; newkd = iad-kad; newko = iao-kao; rc = -m; rd = -m; ro = -m; rm = -m; rf = m; exr = 0; exrlev=0; prc=(ya-yac)*(1/3); lambdac=exp(prc); prd=(ya-yad)*(1/3); pro=log(lambdad)+log(alpha)+log(i)+yad-(1-1/o)*z-1/o*kad; rkc=log(alpha)+prc+ya-Lc; rkd=log(lambdad)+log(alpha)+log(1-i)+yad-(1-1/o)*z-1/o*kad; rko=log(tao)+pro+no-kao; phio=log(k0*exp(m)*exp(pro))-log(1-exp(m)+exp(m)*k0); wo=log(1-tao)+phio+no-Lo; wc=prc*(yac-Lc); wd=log(lambdad)+(yad-Ld); lambdad=exp(prd)-tax-edd*epsilondd; lambdao=exp(phio); lambdax=(theta/(1-theta))*exp((-1/ro)*(eq-ca)); phic=0; phid=0; edd=0; edc=0; phis=0; thetap=1; epsilons=log(ss)*phis; taos=epsilondd*exp(epsilons); tax=taos; z=(1-i)*kac+i*o; u=e/log(k0); oa=e; ni=0; end; // Variance-covariance matrix // ea ex vcov=[0.03 0.000000000000000 0 0 0 0.000000000000000 0.003 0 0 0 0 0 0.065 0 0 0 0 0 0.025 0 0 0 0 0 0.0714]; // Approximation Order order = 2.000000000000000;