stephane-adjemian.fr/assets/dynare/codes/sw/sw.mod

1044 lines
47 KiB
Modula-2
Executable File

// stephane [DOT] adjemian [AT] ens [DOT] fr
/*
** MACROs
*/
// Add an efficient block (without nominal rigidities), used to define the output gap.
@#define efficient_block = 1
@#define NumberOfShocks = 0
@#define ar_variance_decrease = "1.0"
@#define ExogenousVariables_vnames = ["ProductionEfficiencyGrowth"]
@#define ExogenousVariables_inames = ["EfficiencyGrowthInnovation"]
@#define ExogenousVariables_pnames = ["production_efficiency_growth"]
@#define ExogenousVariables_nblags = [1]
@#define ExogenousVariables_acorr1_mode = [".3919"]
@#define ExogenousVariables_acorr1_std = [".02"]
@#define ExogenousVariables_vtexnames = ["A_T"]
@#define ExogenousVariables_sstexnames = ["\overline A_T"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["ProductionEfficiencyCycle"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["EfficiencyCycleInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["production_efficiency"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".6001"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["A_C"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\overline A_C"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["ConsumptionTax"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["ConsumptionTaxInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["consumption_tax"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".0000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\tau_C"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar \tau_C"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["LabourIncomeTax"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["LabourIncomeTaxInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["labour_income_tax"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".0000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\tau_W"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar \tau_W"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["IncomeTax"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["IncomeTaxInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["income_tax"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".0000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\tau_R"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar \tau_R"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["RiskPremium"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["RiskPremiumInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["risk_premium"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".9090"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_B"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_B"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["LabourSupplyShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["LabourSupplyInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["labour_supply"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".7035"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_L"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\widetilde L"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["InvestmentRelativePrice"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["InvestmentRelativePriceInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["investment_relative_price"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".6223"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["p_I"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar p_I"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["InvestmentEfficiencyShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["InvestmentEfficiencyInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["investment_efficiency"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".6289"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_I"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_I"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["LabourTax"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["LabourTaxInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["labour_tax"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".0000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\tau_L"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\tau_L"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["PriceMarkUpShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["PriceMarkUpInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["price_mark_up"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".8050"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_y"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_y"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["WageMarkUpShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["WageMarkUpInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["wage_mark_up"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".7400"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".05"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_l"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_l"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["InflationTarget"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["InflationTargetInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["inflation_target"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".0000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\bar\pi"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\pi"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["TaylorShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["TaylorInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["taylor"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".6388"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".10"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_R"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_R"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["PublicSpendingShare"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["PublicSpendingShareInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["public_spending"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".7135"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varepsilon_g"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varepsilon_g"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["HabitShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["HabitInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["habit"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".98"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\eta^s"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\eta^s"]
@#define NumberOfShocks = NumberOfShocks + 1
@#define ExogenousVariables_vnames = ExogenousVariables_vnames + ["PreferenceShock"]
@#define ExogenousVariables_inames = ExogenousVariables_inames + ["PreferenceInnovation"]
@#define ExogenousVariables_pnames = ExogenousVariables_pnames + ["preference"]
@#define ExogenousVariables_nblags = ExogenousVariables_nblags + [1]
@#define ExogenousVariables_acorr1_mode = ExogenousVariables_acorr1_mode + [".9000"]
@#define ExogenousVariables_acorr1_std = ExogenousVariables_acorr1_std + [".02"]
@#define ExogenousVariables_vtexnames = ExogenousVariables_vtexnames + ["\varsigma"]
@#define ExogenousVariables_sstexnames = ExogenousVariables_sstexnames + ["\bar\varsigma"]
@#define NumberOfShocks = NumberOfShocks + 1
// AutoregressiveProcesses(i,1) [string] Name of the variable.
// AutoregressiveProcesses(i,2) [string] Generic name of the autoregressive parameters
// AutoregressiveProcesses(i,3) [integer] Number of lags.
global AutoregressiveProcesses; % Needed in the steady state file, where we have to update parameters related to the exogenous variables.
AutoregressiveProcesses = cell(@{NumberOfShocks},3);
@#for shock in 1:NumberOfShocks
AutoregressiveProcesses(@{shock},1) = {'@{ExogenousVariables_vnames[shock]}'} ;
AutoregressiveProcesses(@{shock},2) = {'@{ExogenousVariables_pnames[shock]}'} ;
AutoregressiveProcesses(@{shock},3) = { @{ExogenousVariables_nblags[shock]} } ;
@#endfor
/*
** MOD FILE CORE
*/
/* 84 Endogenous variables (if efficient_block is equal to 1) */
var
/* Households */
Consumption
HouseholdLabourSupply
HouseholdLagrangeMultiplier
Investment
CapitalStock
DepreciationRate
dDepreciationRate
InvestmentCost
dInvestmentCost
CapacityUtilizationFactor
CapitalReturnRate
HouseholdRealWage
TobinQ
/* Prices */
RealGrossWage
LabourDemand
CapitalDemand
RealMarginalCost
OptimalRelativePrice
Z1
Z2
Z3
GDP
FinalGoodLagrangeMultiplier
NonOptimizingFirmsPriceGrowth
AveragedRelativePrices
PriceDistorsion
NablaPrice
InflationFactor
/* Wages */
RealWageGrowthFactor
AveragedRelativeWages
OptimalRelativeRealWage
H1
H2
H3
EmploymentAgencyLagrangeMultiplier
EmploymentAgencyLabourSupply
NonOptimizingUnionsWageGrowth
WageDistorsion
NablaWage
/* Monetary authority and Government */
NominalInterestFactor
OutputGap
PublicSpending
/* Efficient variables (model without nominal rigidities) */
@#if (efficient_block==1)
EfficientConsumption
EfficientHouseholdLabourSupply
EfficientHouseholdLagrangeMultiplier
EfficientInvestment
EfficientCapitalStock
EfficientDepreciationRate
dEfficientDepreciationRate
EfficientInvestmentCost
dEfficientInvestmentCost
EfficientCapacityUtilizationFactor
EfficientCapitalReturnRate
EfficientHouseholdRealWage
EfficientTobinQ
EfficientRealInterestFactor
EfficientLabourDemand
EfficientRealMarginalCost
EfficientGDP
EfficientCapitalDemand
EfficientRealGrossWage
@#endif
/* Shocks */
@#for shock in 1:NumberOfShocks
@{ExogenousVariables_vnames[shock]}
@#endfor
;
/* 15 Exogenous variables */
varexo
@#for shock in 1:NumberOfShocks
@{ExogenousVariables_inames[shock]}
@#endfor
;
parameters
/*
** Household
*/
sigmac $\sigma_c$
sigmal $\sigma_l$
eta $\eta$
beta $\beta$
investment_cost_size $\psi$
capacity_utilization_factor_ss $\bar z$
depreciation_rate_ss $\bar \delta$
first_derivate_depreciation_rate_ss $\bar \delta''$
household_labour_supply_ss $\overline L$
steady_state_investment_ratio $\frac{I}{Y}$
/*
** Prices
*/
alpha $\alpha$
thetaf $\theta_f$
psif $\psi_f$
xip $\xi_p$
price_contract_length $\frac{1}{1-\xi_p}$
gammap $\gamma_p$
steady_state_mark_up_f $\mu_f$
steady_state_labour_share $\frac{wL}{Y}$
kimball_curvature_f $\epsilon_f$
/*
** Wages
*/
psis $\psi_s$
thetas $\theta_s$
xiw $\xi_w$
wage_contract_length $\frac{1}{1-\xi_w}$
gammaw $\gamma_w$
steady_state_mark_up_s $\mu_s$
kimball_curvature_s $\epsilon_f$
/*
** Monetary authority
*/
@#if (efficient_block==0)
ssGDP $\bar Y$
@#endif
steady_state_nominal_interest_factor $\bar R$
steady_state_real_interest_factor $\bar r$
nominal_interest_rate_smoothing $\rho_R$
elasticity_of_nominal_interest_rate_to_inflation $r_{\pi}$
elasticity_of_nominal_interest_rate_to_output_gap $r_y$
elasticity_of_nominal_interest_rate_to_inflation_growth $r_{\Delta \pi}$
elasticity_of_nominal_interest_rate_to_output_gap_growth $r_{\Delta y}$
/*
** Parameters related to exogenous processes
*/
@#for shock in 1:NumberOfShocks
@#if (ExogenousVariables_nblags[shock]>0)
@#for lag in 1:ExogenousVariables_nblags[shock]
@{ExogenousVariables_pnames[shock]}_ar@{lag} $\rho_{@{ExogenousVariables_vtexnames[shock]},@{lag}}$
@{ExogenousVariables_pnames[shock]}_rho@{lag} $\rho_{@{ExogenousVariables_vtexnames[shock]}}(@{lag})$
@#endfor
@#endif
@{ExogenousVariables_pnames[shock]}_i_std
@{ExogenousVariables_pnames[shock]}_std $\sqrt{\mathbb V[@{ExogenousVariables_vtexnames[shock]}]}$
@{ExogenousVariables_pnames[shock]}_ss $ @{ExogenousVariables_sstexnames[shock]} $
@#endfor
Epsilon // This is not a parameter of the model.
;
/*
** ??talonnage des param??tres
*/
beta = 0.9975 ;
sigmac = 0.8514 ;
sigmal = 1.7180 ;
eta = 0.1836 ;
price_contract_length = 1.6824; // quarters
wage_contract_length = 4.6296; // quarters
gammap = 0.2079 ;
gammaw = 0.2757 ;
// Is this parameter needed? --> steady_state_investment_ratio = 0.2094;
steady_state_mark_up_f = 1.1931 ;
steady_state_mark_up_s = 1.2027 ;
production_efficiency_growth_ss = 0.0031 ;
production_efficiency_ss = 1.0000 ;
inflation_target_ss = 1.0050 ;
steady_state_nominal_interest_factor = 1.0100 ;
steady_state_real_interest_factor = steady_state_nominal_interest_factor / inflation_target_ss ;
consumption_tax_ss = 1.0000 ;//1.1106 ;
income_tax_ss = 1.0000 ;//0.8814 ;
labour_income_tax_ss = 1.0000 ;//0.8730 ;
labour_tax_ss = 1.0000 ;
preference_ss = 1.0000 ;
investment_relative_price_ss = 1.0000 ;
investment_efficiency_ss = 1.0000 ;
risk_premium_ss = 1.0000 ;
labour_supply_ss = 1.0000 ;//0.1800 ;
taylor_ss = 1.0000 ;
public_spending_ss = 0.2500 ;//0.2181 ;
wage_mark_up_ss = 1.0000 ;
price_mark_up_ss = 1.0000 ;
investment_cost_size = 0.2361 ;
habit_ss = 1.0000 ;
capacity_utilization_factor_ss = 0.8012 ;
depreciation_rate_ss = 0.0250 ;//0.0200 ;
steady_state_labour_share = (1-0.3030)/(labour_tax_ss*steady_state_mark_up_f);//0.3914 ;
kimball_curvature_f = -(-4.8380)*steady_state_mark_up_f/(steady_state_mark_up_f-1);//10.3333;
kimball_curvature_s = -(-5.5056)*steady_state_mark_up_s/(steady_state_mark_up_s-1);//*10.3333;
household_labour_supply_ss = 0.2712;
nominal_interest_rate_smoothing = 0.5807 ;//0.8400 ;
elasticity_of_nominal_interest_rate_to_inflation = 1.4290 ;//1.5000 ;
elasticity_of_nominal_interest_rate_to_output_gap = 1.7418 ;//0.1400 ;
elasticity_of_nominal_interest_rate_to_inflation_growth = 0.0000 ;
elasticity_of_nominal_interest_rate_to_output_gap_growth = 0.0000 ;
production_efficiency_growth_rho1 = .3919 ;
production_efficiency_rho1 = .6001 ;
consumption_tax_rho1 = .0000 ;
labour_income_tax_rho1 = .0000 ;
income_tax_rho1 = .0000 ;
risk_premium_rho1 = .9090 ;
labour_supply_rho1 = .7035 ;
investment_relative_price_rho1 = .6223 ;
investment_efficiency_rho1 = .6289 ;
labour_tax_rho1 = .0000 ;
price_mark_up_rho1 = .8050 ;
wage_mark_up_rho1 = .7400 ;
inflation_target_rho1 = .0000 ;
taylor_rho1 = .6388 ;
public_spending_rho1 = .7135 ;
habit_rho1 = .9800;
preference_rho1 = .9000;
production_efficiency_growth_std = sqrt(0.0058^2/(1-production_efficiency_growth_rho1^2));
production_efficiency_std = sqrt(0.0209^2/(1-production_efficiency_rho1^2));
risk_premium_std = sqrt(0.0048^2/(1-risk_premium_rho1^2));
consumption_tax_std = 0.0000;
labour_income_tax_std = 0.0000;
income_tax_std = 0.0000;
labour_supply_std = sqrt(0.0077^2/(1-labour_supply_rho1^2));
investment_relative_price_std = sqrt(0.0055^2/(1-investment_relative_price_rho1^2));
investment_efficiency_std = sqrt(0.0061^2/(1-investment_efficiency_rho1^2));
labour_tax_std = 0.0000;
price_mark_up_std = sqrt(0.0042^2/(1-price_mark_up_rho1^2));
wage_mark_up_std = sqrt(0.0040^2/(1-wage_mark_up_rho1^2));
inflation_target_std = sqrt(1.0000^2/(1-inflation_target_rho1^2));
taylor_std = sqrt(0.0049^2/(1-taylor_rho1^2));
public_spending_std = sqrt(0.0055^2/(1-public_spending_rho1^2));
habit_std = sqrt(1.0000^2/(1-habit_rho1^2));
preference_std = sqrt(1.0000^2/(1-preference_rho1^2));
@#for shock in 1:NumberOfShocks
@{ExogenousVariables_pnames[shock]}_i_std = 1.000 ; // Useless. Will be updated in the steady state file!
@#if (ExogenousVariables_nblags[shock]>0)
@#for lag in 1:ExogenousVariables_nblags[shock]
@{ExogenousVariables_pnames[shock]}_ar@{lag} = 0.0000 ; // Useless. Will be updated in the steady state file!
@{ExogenousVariables_pnames[shock]}_rho@{lag} = @{ExogenousVariables_acorr1_mode[shock]}^@{lag};
@#endfor
@#endif
@#endfor
FinalGoodLagrangeMultiplier_ss = 1 ;
AveragedRelativePrices_ss = 1 ;
PriceDistorsion_ss = 1 ;
NablaPrice_ss = 1 ;
OptimalRelativePrice_ss = 1 ;
EmploymentAgencyLagrangeMultiplier_ss = 1 ;
RealWageGrowthFactor_ss = 1;
AveragedRelativeWages_ss = 1 ;
OptimalRelativeRealWage_ss = 1 ;
WageDistorsion_ss = 1 ;
NablaWage_ss = 1 ;
TobinQ_ss = 1;
OutputGap_ss = 1 ;
InvestmentCost_ss = 0;
dInvestmentCost_ss = 0;
EfficientInvestmentCost_ss = 0;
dEfficientInvestmentCost_ss = 0;
RealMarginalCost_ss = 1/steady_state_mark_up_f ;
NonOptimizingFirmsPriceGrowth_ss = inflation_target_ss ;
InflationFactor_ss = inflation_target_ss ;
NonOptimizingUnionsWageGrowth_ss = inflation_target_ss ;
ssratio_HouseholdRealWage_RealGrossWage = 1/steady_state_mark_up_s ;
NominalInterestFactor_ss = steady_state_nominal_interest_factor ;
beta = inflation_target_ss/(risk_premium_ss*NominalInterestFactor_ss)*(1+production_efficiency_growth_ss)^(sigmac);
RealInterestFactor_ss = NominalInterestFactor_ss / inflation_target_ss ;
CapacityUtilizationFactor_ss = capacity_utilization_factor_ss ;
DepreciationRate_ss = depreciation_rate_ss;
CapitalReturnRate_ss = ((1+production_efficiency_growth_ss)^sigmac-beta*(1-depreciation_rate_ss))/(beta*income_tax_ss*capacity_utilization_factor_ss);
dDepreciationRate_ss = CapitalReturnRate_ss*income_tax_ss;
first_derivate_depreciation_rate_ss = dDepreciationRate_ss;
alpha = 1 - labour_tax_ss*steady_state_mark_up_f*steady_state_labour_share;
RealGrossWage_ss = (RealMarginalCost_ss*(alpha/CapitalReturnRate_ss)^alpha)^(1/(1-alpha))*(1-alpha)/labour_tax_ss*production_efficiency_ss;
HouseholdRealWage_ss = ssratio_HouseholdRealWage_RealGrossWage * RealGrossWage_ss;
ssratio_CapitalDemand_HouseholdLabourSupply = labour_tax_ss*RealGrossWage_ss/CapitalReturnRate_ss*alpha/(1-alpha) ;
ssratio_GDP_HouseholdLabourSupply = ssratio_CapitalDemand_HouseholdLabourSupply^alpha * production_efficiency_ss^(1-alpha) ;
ssratio_Investment_GDP = (production_efficiency_growth_ss + depreciation_rate_ss)/capacity_utilization_factor_ss*ssratio_CapitalDemand_HouseholdLabourSupply^(1-alpha)/production_efficiency_ss^(1-alpha) ;
ssratio_Consumption_GDP = 1 - public_spending_ss - ssratio_Investment_GDP;
labour_supply_ss = HouseholdRealWage_ss/(ssratio_Consumption_GDP*ssratio_GDP_HouseholdLabourSupply) * income_tax_ss * labour_income_tax_ss / consumption_tax_ss /(1-eta/(1+production_efficiency_growth_ss));
HouseholdLabourSupply_ss = household_labour_supply_ss;
LabourDemand_ss = HouseholdLabourSupply_ss;
EmploymentAgencyLabourSupply_ss = HouseholdLabourSupply_ss;
GDP_ss = ssratio_GDP_HouseholdLabourSupply * HouseholdLabourSupply_ss ;
Consumption_ss = ssratio_Consumption_GDP * GDP_ss ;
Investment_ss = ssratio_Investment_GDP * GDP_ss ;
HouseholdLagrangeMultiplier_ss = (1/consumption_tax_ss)*(Consumption_ss*(1-eta/(1+production_efficiency_growth_ss)))^(-sigmac) * exp(labour_supply_ss*(sigmac-1)/(1+sigmal));
CapitalDemand_ss = ssratio_CapitalDemand_HouseholdLabourSupply * HouseholdLabourSupply_ss ;
CapitalStock_ss = (1+production_efficiency_growth_ss)/(production_efficiency_growth_ss+depreciation_rate_ss)*Investment_ss ;
psif = - kimball_curvature_f / thetaf ;
psis = - kimball_curvature_s / thetas ;
xip = (price_contract_length - 1)/price_contract_length ;
xiw = (wage_contract_length - 1)/wage_contract_length ;
Z1_ss = RealMarginalCost_ss*HouseholdLagrangeMultiplier_ss*GDP_ss /(1-beta*xip*(1+production_efficiency_growth_ss)^(1-sigmac)) ;
Z2_ss = Z1_ss/RealMarginalCost_ss ;
Z3_ss = Z2_ss ;
H1_ss = HouseholdRealWage_ss*HouseholdLagrangeMultiplier_ss*EmploymentAgencyLabourSupply_ss /(1-beta*xiw*(1+production_efficiency_growth_ss)^(1-sigmac)) ;
H2_ss = H1_ss/ssratio_HouseholdRealWage_RealGrossWage ;
H3_ss = H2_ss ;
ProductionEfficiencyGrowth_ss = (1+production_efficiency_growth_ss) ;
ProductionEfficiencyCycle_ss = production_efficiency_ss ;
ConsumptionTax_ss = consumption_tax_ss ;
LabourIncomeTax_ss = labour_income_tax_ss ;
IncomeTax_ss = income_tax_ss ;
RiskPremium_ss = risk_premium_ss ;
LabourSupplyShock_ss = labour_supply_ss ;
InvestmentRelativePrice_ss = investment_relative_price_ss ;
InvestmentEfficiencyShock_ss = investment_efficiency_ss ;
LabourTax_ss = labour_tax_ss ;
PriceMarkUpShock_ss = price_mark_up_ss ;
WageMarkUpShock_ss = wage_mark_up_ss ;
InflationTarget_ss = inflation_target_ss ;
TaylorShock_ss = taylor_ss ;
PublicSpendingShare_ss = public_spending_ss ;
PublicSpending_ss = GDP_ss * PublicSpendingShare_ss ;
HabitShock_ss = 1.0000;
PreferenceShock_ss = 1.0000;
EfficientConsumption_ss = Consumption_ss ;
EfficientHouseholdLabourSupply_ss = HouseholdLabourSupply_ss ;
EfficientHouseholdLagrangeMultiplier_ss = HouseholdLagrangeMultiplier_ss ;
EfficientInvestment_ss = Investment_ss;
EfficientCapitalStock_ss = CapitalStock_ss;
EfficientDepreciationRate_ss = DepreciationRate_ss;
dEfficientDepreciationRate_ss = dDepreciationRate_ss;
EfficientCapacityUtilizationFactor_ss = CapacityUtilizationFactor_ss;
EfficientCapitalReturnRate_ss = CapitalReturnRate_ss;
EfficientHouseholdRealWage_ss = HouseholdRealWage_ss;
EfficientTobinQ_ss = TobinQ_ss;
EfficientRealInterestFactor_ss = RealInterestFactor_ss;
EfficientLabourDemand_ss = LabourDemand_ss;
EfficientRealMarginalCost_ss = RealMarginalCost_ss;
EfficientGDP_ss = GDP_ss;
EfficientCapitalDemand_ss = CapitalDemand_ss;
EfficientRealGrossWage_ss = RealGrossWage_ss;
model;
/*
** HOUSEHOLDS.
*/
/* Equation:1:: Household Consumption FOC */
(Consumption - eta*HabitShock*Consumption(-1)/ProductionEfficiencyGrowth+log(PreferenceShock))^(-sigmac)
*exp(LabourSupplyShock*(sigmac-1)/(1+sigmal)*(HouseholdLabourSupply/household_labour_supply_ss)^(1+sigmal))
- ConsumptionTax*HouseholdLagrangeMultiplier ;
/* Equation:2:: Household Euler equation */
beta*RiskPremium*NominalInterestFactor*ProductionEfficiencyGrowth(1)^(-sigmac)
*HouseholdLagrangeMultiplier(1)*IncomeTax(1)/InflationFactor(1)
- HouseholdLagrangeMultiplier*IncomeTax;
/* Equation:3:: Household Labour FOC */
(Consumption - eta*HabitShock*Consumption(-1)/ProductionEfficiencyGrowth+log(PreferenceShock))^(1-sigmac)
*(LabourSupplyShock/household_labour_supply_ss)
*exp(LabourSupplyShock*(sigmac-1)/(1+sigmal)*(HouseholdLabourSupply/household_labour_supply_ss)^(1+sigmal))
*(HouseholdLabourSupply/household_labour_supply_ss)^sigmal
-HouseholdLagrangeMultiplier*IncomeTax*LabourIncomeTax*HouseholdRealWage;
/* Equation:4:: Household Investment FOC */
TobinQ*(1-InvestmentCost-Investment/Investment(-1)*ProductionEfficiencyGrowth*dInvestmentCost)
+beta*HouseholdLagrangeMultiplier(1)/HouseholdLagrangeMultiplier
*ProductionEfficiencyGrowth(1)^(-sigmac)*TobinQ(1)*InvestmentEfficiencyShock(1)/InvestmentEfficiencyShock
*(Investment(1)/Investment*ProductionEfficiencyGrowth(1))^2
*dInvestmentCost(1)
-InvestmentRelativePrice/InvestmentEfficiencyShock;
/* Equation:5:: Depreciation rate */
depreciation_rate_ss
*exp((CapacityUtilizationFactor-capacity_utilization_factor_ss)*first_derivate_depreciation_rate_ss/depreciation_rate_ss)
-DepreciationRate;
/* Equation:6:: First derivate of the depreciation rate */
first_derivate_depreciation_rate_ss
*exp((CapacityUtilizationFactor-capacity_utilization_factor_ss)*first_derivate_depreciation_rate_ss/depreciation_rate_ss)
-dDepreciationRate;
/* Equation:7:: Household Capacity utilization rate */
IncomeTax*CapitalReturnRate-TobinQ*dDepreciationRate;
/* Equation:8:: Household Physical capital FOC */
beta*HouseholdLagrangeMultiplier(1)/HouseholdLagrangeMultiplier
*ProductionEfficiencyGrowth(1)^(-sigmac)
*(TobinQ(1)*(1-DepreciationRate(1))+IncomeTax(1)*CapitalReturnRate(1)*CapacityUtilizationFactor(1))
-TobinQ;
/*Equation:9:: Physical capital stock law of motion */
(1-DepreciationRate)*CapitalStock(-1)/ProductionEfficiencyGrowth
+InvestmentEfficiencyShock*(1-InvestmentCost)*Investment-CapitalStock;
/*Equation:10:: Investment cost */
InvestmentCost = .5*investment_cost_size*(1+production_efficiency_growth_ss)*(1+production_efficiency_growth_ss)
*(Investment/Investment(-1)*ProductionEfficiencyGrowth/(1+production_efficiency_growth_ss)-1)^2;
/*Equation:11:: First derivate of the investment cost */
dInvestmentCost = (Investment/Investment(-1)*ProductionEfficiencyGrowth/(1+production_efficiency_growth_ss)-1)
*(1+production_efficiency_growth_ss)*investment_cost_size;
/*
** PRICES.
*/
/*Equation:12:: Price growth factor for non optimizing intermediate firms */
InflationTarget^(1-gammap)
*InflationFactor(-1)^gammap
-NonOptimizingFirmsPriceGrowth;
/*Equation:13:: Factor Price Frontier */
LabourTax*RealGrossWage*LabourDemand/(CapitalReturnRate*CapitalDemand)
- (1-alpha)/alpha;
/*Equation:14:: Marginal cost */
ProductionEfficiencyCycle^(alpha-1)
*(CapitalReturnRate/alpha)^alpha
*(LabourTax*RealGrossWage/(1-alpha))^(1-alpha)
-RealMarginalCost;
/*Equation:15:: Relative price of an optimizing intermediate firm */
thetaf*(1+psif)/(thetaf*(1+psif)-1)*(Z1/Z2)
+psif/(thetaf*(1+psif)-1)*OptimalRelativePrice^(1+(1+psif)*thetaf)*Z3/Z2
-OptimalRelativePrice;
/*Equation:16:: Lagrange multiplier associated to technological constraint of the final good representative firm */
(1-xip)*OptimalRelativePrice^(1-thetaf*(1+psif))
+xip*(NonOptimizingFirmsPriceGrowth/InflationFactor)^(1-thetaf*(1+psif))
*FinalGoodLagrangeMultiplier(-1)^(1-thetaf*(1+psif))
-FinalGoodLagrangeMultiplier^(1-thetaf*(1+psif));
/*Equation:17:: Z1 (relative price equation) */
HouseholdLagrangeMultiplier*RealMarginalCost*FinalGoodLagrangeMultiplier^(thetaf*(1+psif))*GDP
+beta*xip*ProductionEfficiencyGrowth(1)^(1-sigmac)
*(InflationFactor(1)/NonOptimizingFirmsPriceGrowth)^((1+psif)*thetaf)*Z1(1)
-Z1;
/*Equation:18:: Z2 (relative price equation) */
HouseholdLagrangeMultiplier*PriceMarkUpShock*FinalGoodLagrangeMultiplier^(thetaf*(1+psif))*GDP
+beta*xip*ProductionEfficiencyGrowth(1)^(1-sigmac)
*(InflationFactor(1)/NonOptimizingFirmsPriceGrowth)^((1+psif)*thetaf-1)*Z2(1)
-Z2;
/*Equation:19:: Z3 (relative price equation) */
HouseholdLagrangeMultiplier*PriceMarkUpShock*GDP
+beta*xip*ProductionEfficiencyGrowth(1)^(1-sigmac)
*NonOptimizingFirmsPriceGrowth/InflationFactor(1)*Z3(1)
-Z3;
/*Equation:20:: Average of relative prices */
(1-xip)*OptimalRelativePrice
+xip*NonOptimizingFirmsPriceGrowth/InflationFactor*AveragedRelativePrices(-1)
-AveragedRelativePrices;
/*Equation:21:: Agregate price */
psif*AveragedRelativePrices/(1+psif)
+FinalGoodLagrangeMultiplier/(1+psif)
-1;
/*Equation:22:: Price Distorsion */
psif/(1+psif)
+NablaPrice/(1+psif)*FinalGoodLagrangeMultiplier^(thetaf*(1+psif))
-PriceDistorsion;
/*Equation:23:: nabla (recursive latent variable used in price distorsion equation) */
(1-xip)*OptimalRelativePrice^(-(1+psif)*thetaf)
+xip*NablaPrice(-1)*(NonOptimizingFirmsPriceGrowth/InflationFactor)^(-thetaf*(1+psif))
-NablaPrice;
/*
** WAGES.
*/
/*Equation:24:: Wage growth factor of the non optimizing firms */
InflationFactor^gammaw*InflationTarget^(1-gammaw)
-NonOptimizingUnionsWageGrowth;
/*Equation:25:: Real wage inflation factor */
RealGrossWage/RealGrossWage(-1)-RealWageGrowthFactor;
/*Equation:26:: Relative wage of an optimizing union */
thetas*(1+psis)/(thetas*(1+psis)-1)*H1/H2
+psis/(thetas*(1+psis)-1)*OptimalRelativeRealWage^(1+(1+psis)*thetas)*H3/H2
-OptimalRelativeRealWage;
/*Equation:27:: Lagrange multiplier associated to the employment agency */
(1-xiw)*OptimalRelativeRealWage^(1-thetas*(1+psis))
+xiw*(NonOptimizingUnionsWageGrowth/(RealWageGrowthFactor*InflationFactor))^(1-thetas*(1+psis))
*EmploymentAgencyLagrangeMultiplier(-1)^(1-thetas*(1+psis))
-EmploymentAgencyLagrangeMultiplier^(1-thetas*(1+psis));
/*Equation:28:: H1 (relative wage equation) */
HouseholdLagrangeMultiplier*HouseholdRealWage*EmploymentAgencyLagrangeMultiplier^(thetas*(1+psis))*EmploymentAgencyLabourSupply
+beta*xiw*ProductionEfficiencyGrowth(1)^(1-sigmac)
*(RealWageGrowthFactor(1)*InflationFactor(1)/NonOptimizingUnionsWageGrowth)^((1+psis)*thetas)*H1(1)
-H1;
/*Equation:29:: H2 (relative wage equation) */
HouseholdLagrangeMultiplier*WageMarkUpShock*RealGrossWage
*EmploymentAgencyLagrangeMultiplier^(thetas*(1+psis))*EmploymentAgencyLabourSupply
+beta*xiw*ProductionEfficiencyGrowth(1)^(1-sigmac)
*(RealWageGrowthFactor(1)*InflationFactor(1)/NonOptimizingUnionsWageGrowth)^((1+psis)*thetas-1)*H2(1)
-H2;
/*Equation:30:: H3 (relative wage equation) */
HouseholdLagrangeMultiplier*WageMarkUpShock*RealGrossWage*EmploymentAgencyLabourSupply
+beta*xiw*ProductionEfficiencyGrowth(1)^(1-sigmac)
*NonOptimizingUnionsWageGrowth/(InflationFactor(1)*RealWageGrowthFactor(1))*H3(1)
-H3;
/*Equation:31:: Average of relative wages */
(1-xiw)*OptimalRelativeRealWage
+xiw*NonOptimizingUnionsWageGrowth/(RealWageGrowthFactor*InflationFactor)*AveragedRelativeWages(-1)
-AveragedRelativeWages;
/*Equation:32:: Agregate Wage */
psis*AveragedRelativeWages/(1+psis)
+EmploymentAgencyLagrangeMultiplier/(1+psis)
-1;
/*Equation:33:: Wage Distorsion */
psis/(1+psis)
+NablaWage/(1+psis)*EmploymentAgencyLagrangeMultiplier^(thetas*(1+psis))
-WageDistorsion;
/*Equation:34:: nabla (recursive latent variable used in wage distorsion equation) */
(1-xiw)*OptimalRelativeRealWage^(-(1+psis)*thetas)
+xiw*NablaWage(-1)*(NonOptimizingUnionsWageGrowth/(RealWageGrowthFactor*InflationFactor))^(-thetas*(1+psis))
-NablaWage;
/*
** MONETARY AUTHORITY & GOVERNMENT
*/
/*Equation:35:: Taylor rule */
NominalInterestFactor(-1)^nominal_interest_rate_smoothing
*(
steady_state_nominal_interest_factor
*(InflationFactor(-1)/InflationTarget)^elasticity_of_nominal_interest_rate_to_inflation
*OutputGap^elasticity_of_nominal_interest_rate_to_output_gap
*(InflationFactor/InflationTarget*InflationTarget(-1)/InflationFactor(-1))^elasticity_of_nominal_interest_rate_to_inflation_growth
*(OutputGap/OutputGap(-1))^elasticity_of_nominal_interest_rate_to_output_gap_growth
)^(1-nominal_interest_rate_smoothing)
*TaylorShock
- NominalInterestFactor;
/*Equation:36:: Output gap */
@#if (efficient_block==1)
GDP/EfficientGDP
-OutputGap;
@#endif
@#if (efficient_block==0)
GDP/ssGDP
-OutputGap;
@#endif
/*Equation:37:: Public Spending */
PublicSpendingShare * GDP - PublicSpending;
/*
** MARKETS
*/
/*Equation:38:: Physical capital market equilibrium */
CapacityUtilizationFactor*CapitalStock(-1)/ProductionEfficiencyGrowth - CapitalDemand ;
/*Equation:39:: Relation between household labour supply and employment agency labour supply */
HouseholdLabourSupply/WageDistorsion - EmploymentAgencyLabourSupply;
/*Equation:40:: Labour market equilibrium */
EmploymentAgencyLabourSupply - LabourDemand;
/*Equation:41:: Relation between GDP and the sum of produced intermediate goods */
CapitalDemand^alpha * (ProductionEfficiencyCycle*LabourDemand)^(1-alpha) / PriceDistorsion - GDP;
/*Equation:42:: Final good market equilibrium */
PublicSpending + Consumption + InvestmentRelativePrice*Investment
- PriceMarkUpShock*GDP - (1-WageMarkUpShock)*RealGrossWage*LabourDemand;
/*
** EQUATIONS FOR THE SHOCKS (Equations 43 to 57).
*/
@#for shock in 1:NumberOfShocks
exp(@{ExogenousVariables_pnames[shock]}_i_std*@{ExogenousVariables_inames[shock]})
@#if (shock==1)
@#if (ExogenousVariables_nblags[shock]>0)
@#for lag in 1:ExogenousVariables_nblags[shock]
* (@{ExogenousVariables_vnames[shock]}(-@{lag})/(1+@{ExogenousVariables_pnames[shock]}_ss))^@{ExogenousVariables_pnames[shock]}_ar@{lag}
@#endfor
@#endif
@#else
@#if (ExogenousVariables_nblags[shock]>0)
@#for lag in 1:ExogenousVariables_nblags[shock]
* (@{ExogenousVariables_vnames[shock]}(-@{lag})/@{ExogenousVariables_pnames[shock]}_ss)^@{ExogenousVariables_pnames[shock]}_ar@{lag}
@#endfor
@#endif
@#endif
@#if (shock==1)
- @{ExogenousVariables_vnames[shock]}/(1+@{ExogenousVariables_pnames[shock]}_ss)
@#else
- @{ExogenousVariables_vnames[shock]}/@{ExogenousVariables_pnames[shock]}_ss
@#endif
;
@#endfor
@#if (efficient_block==1)
/*
** EQUATIONS FOR THE EFFICIENT VARIABLES.
*/
/* Equation:58:: (Efficient) Household Consumption FOC */
(EfficientConsumption - eta*HabitShock*EfficientConsumption(-1)/ProductionEfficiencyGrowth+log(PreferenceShock))^(-sigmac)
*exp(LabourSupplyShock*(sigmac-1)/(1+sigmal)*(EfficientHouseholdLabourSupply/household_labour_supply_ss)^(1+sigmal))
- ConsumptionTax*EfficientHouseholdLagrangeMultiplier ;
/* Equation:59:: (Efficient) Household Euler equation */
beta*RiskPremium*EfficientRealInterestFactor*ProductionEfficiencyGrowth(1)^(-sigmac)
*EfficientHouseholdLagrangeMultiplier(1)*IncomeTax(1)
- EfficientHouseholdLagrangeMultiplier*IncomeTax;
/* Equation:60:: (Efficient) Household Labour FOC */
(EfficientConsumption - eta*HabitShock*EfficientConsumption(-1)/ProductionEfficiencyGrowth+log(PreferenceShock))^(1-sigmac)
*(LabourSupplyShock/household_labour_supply_ss)
*exp(LabourSupplyShock*(sigmac-1)/(1+sigmal)*(EfficientHouseholdLabourSupply/household_labour_supply_ss)^(1+sigmal))
*(EfficientHouseholdLabourSupply/household_labour_supply_ss)^sigmal
-EfficientHouseholdLagrangeMultiplier*IncomeTax*LabourIncomeTax*EfficientHouseholdRealWage;
/* Equation:61:: (Efficient) Household Investment FOC */
EfficientTobinQ*(1-EfficientInvestmentCost-EfficientInvestment/EfficientInvestment(-1)*ProductionEfficiencyGrowth*dEfficientInvestmentCost)
+beta*EfficientHouseholdLagrangeMultiplier(1)/EfficientHouseholdLagrangeMultiplier
*ProductionEfficiencyGrowth(1)^(-sigmac)*EfficientTobinQ(1)*InvestmentEfficiencyShock(1)/InvestmentEfficiencyShock
*(EfficientInvestment(1)/EfficientInvestment*ProductionEfficiencyGrowth(1))^2
*dEfficientInvestmentCost(1)-InvestmentRelativePrice/InvestmentEfficiencyShock;
/* Equation:62:: (Efficient) Depreciation rate */
depreciation_rate_ss
*exp((EfficientCapacityUtilizationFactor-capacity_utilization_factor_ss)*first_derivate_depreciation_rate_ss/depreciation_rate_ss)
-EfficientDepreciationRate;
/* Equation:63:: (Efficient) First derivate of the depreciation rate */
first_derivate_depreciation_rate_ss
*exp((EfficientCapacityUtilizationFactor-capacity_utilization_factor_ss)*first_derivate_depreciation_rate_ss/depreciation_rate_ss)
-dEfficientDepreciationRate;
/* Equation:64:: (Efficient) Household Capacity utilization rate */
IncomeTax*EfficientCapitalReturnRate-EfficientTobinQ*dEfficientDepreciationRate;
/* Equation:65:: (Efficient) Household Physical capital FOC */
beta*EfficientHouseholdLagrangeMultiplier(1)/EfficientHouseholdLagrangeMultiplier
*ProductionEfficiencyGrowth(1)^(-sigmac)
*(EfficientTobinQ(1)*(1-EfficientDepreciationRate(1))+IncomeTax(1)*EfficientCapitalReturnRate(1)*EfficientCapacityUtilizationFactor(1))
-EfficientTobinQ;
/*Equation:66:: (Efficient) Physical capital stock law of motion */
(1-EfficientDepreciationRate)*EfficientCapitalStock(-1)/ProductionEfficiencyGrowth
+InvestmentEfficiencyShock*(1-EfficientInvestmentCost)*EfficientInvestment
-EfficientCapitalStock;
/*Equation:67:: (Efficient) Factor Price Frontier */
LabourTax*EfficientRealGrossWage*EfficientLabourDemand/(EfficientCapitalReturnRate*EfficientCapitalDemand)
- (1-alpha)/alpha;
/*Equation:68:: (Efficient) Marginal cost */
ProductionEfficiencyCycle^(alpha-1)
*(EfficientCapitalReturnRate/alpha)^alpha
*(LabourTax*EfficientRealGrossWage/(1-alpha))^(1-alpha)
-EfficientRealMarginalCost;
/*Equation:69:: (Efficient) Price decision */
thetaf*(1+psif)/(thetaf*(1+psif)-1)*EfficientRealMarginalCost
+psif/(thetaf*(1+psif)-1)
-1;
/*Equation:70:: (Efficient) Wage decision */
thetas*(1+psis)/(thetas*(1+psis)-1)*EfficientHouseholdRealWage/EfficientRealGrossWage
+psis/(thetas*(1+psis)-1)
-1;
/*Equation:71:: (Efficient) Labour market equilibrium */
EfficientLabourDemand - EfficientHouseholdLabourSupply;
/*Equation:72:: (Efficient) Physical capital market equilibrium */
EfficientCapacityUtilizationFactor*EfficientCapitalStock(-1)/ProductionEfficiencyGrowth - EfficientCapitalDemand ;
/*Equation:73:: (Efficient) Final good market equilibrium */
EfficientConsumption + InvestmentRelativePrice*EfficientInvestment
- (1-PublicSpendingShare)*EfficientGDP;
/*Equation:74:: (Efficient) Relation between GDP and the sum of produced intermediate goods */
EfficientCapitalDemand^alpha * (ProductionEfficiencyCycle*EfficientLabourDemand)^(1-alpha) - EfficientGDP;
/*Equation:75:: (Efficient) Investment cost */
.5*investment_cost_size*(1+production_efficiency_growth_ss)*(1+production_efficiency_growth_ss)
*(EfficientInvestment/EfficientInvestment(-1)*ProductionEfficiencyGrowth/(1+production_efficiency_growth_ss)-1)^2
-EfficientInvestmentCost;
/*Equation:76:: (Efficient) First derivate of the investment cost */
(EfficientInvestment/EfficientInvestment(-1)*ProductionEfficiencyGrowth/(1+production_efficiency_growth_ss)-1)
*(1+production_efficiency_growth_ss)*investment_cost_size
- dEfficientInvestmentCost;
@#endif
end;
initval;
/* Households */
Consumption = Consumption_ss;
HouseholdLabourSupply = HouseholdLabourSupply_ss;
HouseholdLagrangeMultiplier = HouseholdLagrangeMultiplier_ss;
Investment = Investment_ss;
CapitalStock = CapitalStock_ss;
DepreciationRate = DepreciationRate_ss;
dDepreciationRate = dDepreciationRate_ss;
InvestmentCost = InvestmentCost_ss;
dInvestmentCost = dInvestmentCost_ss;
CapacityUtilizationFactor = CapacityUtilizationFactor_ss;
CapitalReturnRate = CapitalReturnRate_ss;
HouseholdRealWage = HouseholdRealWage_ss;
TobinQ = TobinQ_ss;
/* Prices */
RealGrossWage = RealGrossWage_ss;
LabourDemand = LabourDemand_ss;
CapitalDemand = CapitalDemand_ss;
RealMarginalCost = RealMarginalCost_ss;
OptimalRelativePrice = OptimalRelativePrice_ss;
Z1 = Z1_ss;
Z2 = Z2_ss;
Z3 = Z3_ss;
GDP = GDP_ss;
FinalGoodLagrangeMultiplier = FinalGoodLagrangeMultiplier_ss;
NonOptimizingFirmsPriceGrowth = NonOptimizingFirmsPriceGrowth_ss;
AveragedRelativePrices = AveragedRelativePrices_ss;
PriceDistorsion = PriceDistorsion_ss;
NablaPrice = NablaPrice_ss;
InflationFactor = InflationFactor_ss;
/* Wages */
RealWageGrowthFactor = RealWageGrowthFactor_ss;
AveragedRelativeWages = AveragedRelativeWages_ss;
OptimalRelativeRealWage = OptimalRelativeRealWage_ss;
H1 = H1_ss;
H2 = H2_ss;
H3 = H3_ss;
EmploymentAgencyLagrangeMultiplier = EmploymentAgencyLagrangeMultiplier_ss;
EmploymentAgencyLabourSupply = EmploymentAgencyLabourSupply_ss;
NonOptimizingUnionsWageGrowth = NonOptimizingUnionsWageGrowth_ss;
WageDistorsion = WageDistorsion_ss;
NablaWage = NablaWage_ss;
/* Monetary authority and Government */
NominalInterestFactor = NominalInterestFactor_ss;
OutputGap = OutputGap_ss;
PublicSpending = PublicSpending_ss;
/* Efficient variables (model without nominal rigidities) */
@#if (efficient_block==1)
EfficientConsumption = EfficientConsumption_ss;
EfficientHouseholdLabourSupply = EfficientHouseholdLabourSupply_ss;
EfficientHouseholdLagrangeMultiplier = EfficientHouseholdLagrangeMultiplier_ss;
EfficientInvestment = EfficientInvestment_ss;
EfficientCapitalStock = EfficientCapitalStock_ss;
EfficientDepreciationRate = EfficientDepreciationRate_ss;
dEfficientDepreciationRate = dEfficientDepreciationRate_ss;
EfficientInvestmentCost = EfficientInvestmentCost_ss;
dEfficientInvestmentCost = dEfficientInvestmentCost_ss;
EfficientCapacityUtilizationFactor = EfficientCapacityUtilizationFactor_ss;
EfficientCapitalReturnRate = EfficientCapitalReturnRate_ss;
EfficientHouseholdRealWage = EfficientHouseholdRealWage_ss;
EfficientTobinQ = EfficientTobinQ_ss;
EfficientRealInterestFactor = EfficientRealInterestFactor_ss;
EfficientLabourDemand = EfficientLabourDemand_ss;
EfficientRealMarginalCost = EfficientRealMarginalCost_ss;
EfficientGDP = EfficientGDP_ss;
EfficientCapitalDemand = EfficientCapitalDemand_ss;
EfficientRealGrossWage = EfficientRealGrossWage_ss;
@#endif
/* Shocks */
@#for shock in 1:NumberOfShocks
@{ExogenousVariables_inames[shock]} = 0.0;
@#endfor
@{ExogenousVariables_vnames[shock]} = 1+@{ExogenousVariables_pnames[shock]}_ss ;
@#for shock in 2:NumberOfShocks
@{ExogenousVariables_vnames[shock]} = @{ExogenousVariables_pnames[shock]}_ss;
@#endfor
end;
steady;
resid(1);
check;
shocks;
var EfficiencyGrowthInnovation = .001;
var EfficiencyCycleInnovation = .005;
var RiskPremiumInnovation = .003;
/*
var ConsumptionTaxInnovation = .0000001;
var LabourIncomeTaxInnovation = .0000001;
var IncomeTaxInnovation = .0000001;
var LabourSupplyInnovation = .0000001;
var InvestmentRelativePriceInnovation = .0000001;
var InvestmentEfficiencyInnovation = .0000001;
var LabourTaxInnovation = .0000001;
var PriceMarkUpInnovation = .0000001;
var WageMarkUpInnovation = .0000001;
var InflationTargetInnovation = .0000001;
var TaylorInnovation = .0000001;
var PublicSpendingShareInnovation = .0000001;
var HabitInnovation = .0000001;
var PreferenceInnovation = .0000001;
*/
end;
stoch_simul(order=1,irf=0,noprint,periods=2000);
plot(OutputGap);