From dd1f7615498f1ac6f6cc5ef78a01a7273511e653 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Tue, 7 Jul 2015 16:37:54 +0200 Subject: [PATCH] adding tests using lmmcp (cherry picked from commit 2ddfcf2f73ace24e5a7d5f76e5f7d651db27b139) --- tests/lmmcp/rbc.mod | 77 ++++++++++++++++++++++++++++++++++++++++++ tests/lmmcp/rbcii.mod | 70 ++++++++++++++++++++++++++++++++++++++ tests/lmmcp/rbciia.mod | 77 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 224 insertions(+) create mode 100644 tests/lmmcp/rbc.mod create mode 100644 tests/lmmcp/rbcii.mod create mode 100644 tests/lmmcp/rbciia.mod diff --git a/tests/lmmcp/rbc.mod b/tests/lmmcp/rbc.mod new file mode 100644 index 000000000..cfb1868d7 --- /dev/null +++ b/tests/lmmcp/rbc.mod @@ -0,0 +1,77 @@ +@#define extended_path_version = 1 + +var Capital, Output, Labour, Consumption, Investment, Efficiency, efficiency, residual, marginal_utility; + +varexo EfficiencyInnovation; + +parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma; + +/* +** Calibration +*/ + +beta = 0.990; +theta = 0.357; +tau = 2.000; +alpha = 0.450; +psi = -0.200; +delta = 0.020; +rho = 0.800; +effstar = 1.000; +sigma = 0.100; + +model; + + efficiency = rho*efficiency(-1) + sigma*EfficiencyInnovation; + + Efficiency = effstar*exp(efficiency); + + (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption - beta*((((Consumption(+1)^theta)*((1-Labour(+1))^(1-theta)))^(1-tau))/Consumption(+1))*(alpha*((Output(+1)/Capital)^(1-psi))+1-delta); + + residual = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption - beta*((((Consumption(+1)^theta)*((1-Labour(+1))^(1-theta)))^(1-tau))/Consumption(+1))*(alpha*((Output(+1)/Capital)^(1-psi))+1-delta); + + ((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi); + + Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi); + + Output = Consumption + Investment; + + Investment = Capital - (1-delta)*Capital(-1); + + marginal_utility = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption; + +end; + +steady_state_model; +Efficiency = effstar; +y_k = (Efficiency^(-psi)*(1/beta-1+delta)/alpha)^(1/(1-psi)); +c_k = y_k - delta; +n_k = (((y_k/Efficiency)^psi-alpha)/(1-alpha))^(1/psi); +y_n = y_k/n_k; +c_n = c_k/n_k; +Labour = y_k*(1-alpha)/(((1-theta)/theta)*c_k*(alpha*n_k^(-psi)+1-alpha)+y_k*(1-alpha)); +Capital = Labour/n_k; +Consumption = c_n*Labour; +Output = Efficiency*(alpha*Capital^psi+(1-alpha)*Labour^psi)^(1/psi); +Investment = delta*Capital; +residual = 0; +marginal_utility = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption; +end; + +steady; + +shocks; +var EfficiencyInnovation; +periods 1; +values -4; +end; + +options_.solve_algo = 10; +options_.mcp = 1; +perfect_foresight_setup(periods=100); + +perfect_foresight_solver(stack_solve_algo=7); + +rplot Investment; + +rplot residual; \ No newline at end of file diff --git a/tests/lmmcp/rbcii.mod b/tests/lmmcp/rbcii.mod new file mode 100644 index 000000000..1df667d08 --- /dev/null +++ b/tests/lmmcp/rbcii.mod @@ -0,0 +1,70 @@ +var Capital, Output, Labour, Consumption, Investment, Efficiency, efficiency; + +varexo EfficiencyInnovation; + +parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma; + +/* +** Calibration +*/ + +beta = 0.990; +theta = 0.357; +tau = 2.000; +alpha = 0.450; +psi = -0.200; +delta = 0.020; +rho = 0.800; +effstar = 1.000; +sigma = 0.100; + +model; + + efficiency = rho*efficiency(-1) + sigma*EfficiencyInnovation; + + Efficiency = effstar*exp(efficiency); + + [mcp = 'Investment > 0'] + -(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption + beta*((((Consumption(+1)^theta)*((1-Labour(+1))^(1-theta)))^(1-tau))/Consumption(+1))*(alpha*((Output(+1)/Capital)^(1-psi))+1-delta); + + ((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi); + + Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi); + + Output = Consumption + Investment; + + Investment = Capital - (1-delta)*Capital(-1); + +end; + +steady_state_model; +Efficiency = effstar; +y_k = (Efficiency^(-psi)*(1/beta-1+delta)/alpha)^(1/(1-psi)); +c_k = y_k - delta; +n_k = (((y_k/Efficiency)^psi-alpha)/(1-alpha))^(1/psi); +y_n = y_k/n_k; +c_n = c_k/n_k; +Labour = y_k*(1-alpha)/(((1-theta)/theta)*c_k*(alpha*n_k^(-psi)+1-alpha)+y_k*(1-alpha)); +Capital = Labour/n_k; +Consumption = c_n*Labour; +Output = Efficiency*(alpha*Capital^psi+(1-alpha)*Labour^psi)^(1/psi); +Investment = delta*Capital; +residual = 0; +marginal_utility = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption; +end; + +steady; + +shocks; +var EfficiencyInnovation; +periods 1; +values -4; +end; + +options_.solve_algo = 10; +options_.mcp = 1; +perfect_foresight_setup(periods=100); + +perfect_foresight_solver(stack_solve_algo=7); + +rplot Investment; diff --git a/tests/lmmcp/rbciia.mod b/tests/lmmcp/rbciia.mod new file mode 100644 index 000000000..bc120bc1d --- /dev/null +++ b/tests/lmmcp/rbciia.mod @@ -0,0 +1,77 @@ +@#define extended_path_version = 1 + +var Capital, Output, Labour, Consumption, Investment, Efficiency, efficiency, residual, marginal_utility; + +varexo EfficiencyInnovation; + +parameters beta, theta, tau, alpha, psi, delta, rho, effstar, sigma; + +/* +** Calibration +*/ + +beta = 0.990; +theta = 0.357; +tau = 2.000; +alpha = 0.450; +psi = -0.200; +delta = 0.020; +rho = 0.800; +effstar = 1.000; +sigma = 0.100; + +model; + + efficiency = rho*efficiency(-1) + sigma*EfficiencyInnovation; + + Efficiency = effstar*exp(efficiency); + + [mcp = 'Investment > 0'] + -(((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption + beta*((((Consumption(+1)^theta)*((1-Labour(+1))^(1-theta)))^(1-tau))/Consumption(+1))*(alpha*((Output(+1)/Capital)^(1-psi))+1-delta); + + residual = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption - beta*((((Consumption(+1)^theta)*((1-Labour(+1))^(1-theta)))^(1-tau))/Consumption(+1))*(alpha*((Output(+1)/Capital)^(1-psi))+1-delta); + + ((1-theta)/theta)*(Consumption/(1-Labour)) - (1-alpha)*(Output/Labour)^(1-psi); + + Output = Efficiency*(alpha*(Capital(-1)^psi)+(1-alpha)*(Labour^psi))^(1/psi); + + Output = Consumption + Investment; + + Investment = Capital - (1-delta)*Capital(-1); + + marginal_utility = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption; +end; + +steady_state_model; +Efficiency = effstar; +y_k = (Efficiency^(-psi)*(1/beta-1+delta)/alpha)^(1/(1-psi)); +c_k = y_k - delta; +n_k = (((y_k/Efficiency)^psi-alpha)/(1-alpha))^(1/psi); +y_n = y_k/n_k; +c_n = c_k/n_k; +Labour = y_k*(1-alpha)/(((1-theta)/theta)*c_k*(alpha*n_k^(-psi)+1-alpha)+y_k*(1-alpha)); +Capital = Labour/n_k; +Consumption = c_n*Labour; +Output = Efficiency*(alpha*Capital^psi+(1-alpha)*Labour^psi)^(1/psi); +Investment = delta*Capital; +residual = 0; +marginal_utility = (((Consumption^theta)*((1-Labour)^(1-theta)))^(1-tau))/Consumption; +end; + +steady; + +shocks; +var EfficiencyInnovation; +periods 1; +values -4; +end; + +options_.solve_algo = 10; +options_.mcp = 1; +perfect_foresight_setup(periods=100); + +perfect_foresight_solver(stack_solve_algo=7); + +rplot Investment; + +rplot residual; \ No newline at end of file