gEcon
is the package of R to model both Dynamic Stochastic General Equilibrium (DSGE) and Static General Equilibrium. Static General Equilibrium is also called Computable General Equilibrium(CGE). The computational solvers of traditional econometric modeling software packages such as GAMS, GEMPACK and Dynare are based on the first order conditions (FOCs) and linearization equations. Different from them, the computational solver of gEcon
is an algorithm for automatic derivation of FOCS with symbolic computations library. gEcon
can handle large-scale (100+ variables) models.
# ############################################################################
# (c) Chancellery of the Prime Minister 2012-2015 #
# #
# Authors: Grzegorz Klima, Karol Podemski, Kaja Retkiewicz-Wijtiwiak #
# ############################################################################
# Stochastic growth model with Epstein-Zin preferences
# ############################################################################
options
{
output logfile = TRUE;
output LaTeX = TRUE;
};
tryreduce
{
pi[], L_s[], K_d[], L_d[];
};
block CONSUMER
{
definitions
{
u[] = (C[]^(1 - eta) - 1) / (1 - eta);
};
controls
{
K_s[], C[], I[];
};
objective
{
U[] = u[] + beta * E[][U[1]^(1 - theta_EZ)]^(1 / (1 - theta_EZ));
};
constraints
{
I[] + C[] = pi[] + r[] * K_s[-1] + W[] * L_s[];
K_s[] = (1 - delta) * K_s[-1] + I[];
};
identities
{
L_s[] = 1;
};
calibration
{
delta = 0.025;
beta = 0.99;
eta = 2;
theta_EZ = 0.05;
};
};
block FIRM
{
controls
{
K_d[], L_d[], Y[];
};
objective
{
pi[] = Y[] - L_d[] * W[] - r[] * K_d[];
};
constraints
{
Y[] = Z[] * K_d[]^alpha * L_d[]^(1 - alpha);
};
calibration
{
r[ss] * K_s[ss] = 0.36 * Y[ss] -> alpha;
};
};
block EQUILIBRIUM
{
identities
{
K_d[] = K_s[-1];
L_d[] = L_s[];
};
};
block EXOG
{
identities
{
Z[] = exp(phi * log(Z[-1]) + epsilon_Z[]);
};
shocks
{
epsilon_Z[];
};
calibration
{
phi = 0.95;
};
};
library(gEcon)
ez = make_model("epstein_zin.gcn")
## model parsed in 0.05s
## model loaded in 0.06s
ez = initval_calibr_par(ez, c(alpha = 0.4))
ez = steady_state(ez)
## Steady state has been FOUND
get_ss_values(ez)
## Steady-state values:
##
## Steady-state value
## q__CONSUMER_1 51.7476
## r 0.0351
## C 2.7543
## I 0.9497
## K_s 37.9893
## U 63.6935
## W 2.3706
## Y 3.7041
## Z 1.0000
get_par_values(ez)
## Model parameters:
##
## Value
## alpha 0.360
## beta 0.990
## delta 0.025
## eta 2.000
## phi 0.950
## theta_EZ 0.050
ez = initval_calibr_par(ez, c(alpha = 0.4))
ez = steady_state(ez, calibration = FALSE)
## Steady state has been FOUND
get_ss_values(ez, to_tex = TRUE)
## Steady-state values:
##
## Steady-state value
## q__CONSUMER_1 58.4346
## r 0.0351
## C 3.6213
## I 1.4427
## K_s 57.7077
## U 72.3856
## W 3.0384
## Y 5.0640
## Z 1.0000
##
##
## results written to: 'C:/Users/Heatfront/Desktop/blibtexfolder/dynarefolder/dynareA001/epstein_zin.results.tex'
get_par_values(ez, to_tex = TRUE)
## Model parameters:
##
## Value
## alpha 0.400
## beta 0.990
## delta 0.025
## eta 2.000
## phi 0.950
## theta_EZ 0.050
##
##
## results written to: 'C:/Users/Heatfront/Desktop/blibtexfolder/dynarefolder/dynareA001/epstein_zin.results.tex'
ez = solve_pert(ez, loglin = TRUE)
## Model has been SOLVED
get_pert_solution(ez, to_tex = TRUE)
##
## Matrix P:
##
## K_s[-1] Z[-1]
## K_s[] 0.9781 0.0578
## Z[] 0.0000 0.9500
##
##
## Matrix Q:
##
## epsilon_Z
## K_s 0.0608
## Z 1.0000
##
##
## Matrix R:
##
## K_s[-1] Z[-1]
## q__CONSUMER_1[] 0.0424 0.0542
## r[] -0.4897 0.7270
## C[] 0.3793 0.2084
## I[] 0.1223 2.3122
## U[] 0.0456 0.0572
## W[] 0.3265 0.8616
## Y[] 0.3061 0.8077
##
##
## Matrix S:
##
## epsilon_Z
## q__CONSUMER_1 0.0570
## r 0.7652
## C 0.2193
## I 2.4339
## U 0.0602
## W 0.9069
## Y 0.8503
##
##
## results written to: 'C:/Users/Heatfront/Desktop/blibtexfolder/dynarefolder/dynareA001/epstein_zin.results.tex'
ez = set_shock_cov_mat(ez, matrix(c(1), 1, 1), shock_order = "epsilon_Z")
ez = compute_model_stats(ez, ref_var="Y")
get_model_stats(model = ez, variables = c("C", "K_s", "W", "I", "r", "Y"),
var_dec = FALSE, to_tex = TRUE)
## Basic statistics:
##
## Steady-state value Std. dev. Variance Loglin
## C 3.6213 0.2991 0.0895 Y
## K_s 57.7077 0.2842 0.0807 Y
## W 3.0384 1.1799 1.3922 Y
## I 1.4427 3.1705 10.0520 Y
## r 0.0351 1.0158 1.0318 Y
## Y 5.0640 1.1062 1.2236 Y
##
## Correlation matrix:
##
## r C I K_s W Y
## r 1 0.875 0.989 0.082 0.977 0.977
## C 1 0.937 0.554 0.958 0.958
## I 1 0.228 0.998 0.998
## K_s 1 0.293 0.293
## W 1 1.000
## Y 1.000
##
## Cross correlations with the reference variable (Y):
##
## Std. dev. rel. to Y Y[-5] Y[-4] Y[-3] Y[-2] Y[-1] Y[] Y[1] Y[2]
## r[] 0.918 0.102 0.222 0.368 0.542 0.745 0.977 0.641 0.366
## C[] 0.270 -0.154 -0.028 0.142 0.359 0.630 0.958 0.769 0.594
## I[] 2.866 0.026 0.152 0.309 0.501 0.730 0.998 0.697 0.445
## K_s[] 0.257 -0.493 -0.439 -0.341 -0.193 0.015 0.293 0.480 0.593
## W[] 1.067 -0.008 0.119 0.280 0.479 0.718 1.000 0.718 0.479
## Y[] 1.000 -0.008 0.119 0.280 0.479 0.718 1.000 0.718 0.479
## Y[3] Y[4] Y[5]
## r[] 0.147 -0.022 -0.147
## C[] 0.436 0.297 0.177
## I[] 0.239 0.075 -0.052
## K_s[] 0.645 0.649 0.619
## W[] 0.280 0.119 -0.008
## Y[] 0.280 0.119 -0.008
##
## Autocorrelations:
##
## Lag 1 Lag 2 Lag 3 Lag 4 Lag 5
## r 0.713 0.470 0.270 0.109 -0.017
## C 0.759 0.544 0.356 0.196 0.063
## I 0.714 0.472 0.272 0.111 -0.016
## K_s 0.960 0.864 0.731 0.577 0.415
## W 0.718 0.479 0.280 0.119 -0.008
## Y 0.718 0.479 0.280 0.119 -0.008
##
##
## results written to: 'C:/Users/Heatfront/Desktop/blibtexfolder/dynarefolder/dynareA001/epstein_zin.results.tex'
plotirf = compute_irf(ez, variables = c("C", "K_s", "W", "I", "r", "Y"))
print(plotirf)
## Impulse response functions
## Simulation horizon: 40
## Variables (6):
## C, K_s, W, I, r, Y
## Shocks (1):
## epsilon_Z
summary(ez)
##
## Steady state:
##
## q__CONSUMER_1 58.434570
## r 0.035101
## C 3.621306
## I 1.442693
## K_s 57.707726
## U 72.385650
## W 3.038399
## Y 5.063999
## Z 1.000000
##
## ----------------------------------------------------------
##
## Parameter values:
##
## alpha 0.400
## beta 0.990
## delta 0.025
## eta 2.000
## phi 0.950
## theta_EZ 0.050
##
## ----------------------------------------------------------
##
## Linearisation:
## x_t = P x_{t-1} + Q epsilon_t
## y_t = R x_{t-1} + S epsilon_t
##
## P:
## K_s[-1] Z[-1]
## K_s[] 0.978058 0.057806
## Z[] 0.000000 0.950000
##
## Q:
## epsilon_Z
## K_s 0.060848
## Z 1.000000
##
## R:
## K_s[-1] Z[-1]
## q__CONSUMER_1[] 0.042383 0.054157
## r[] -0.489749 0.726970
## C[] 0.379305 0.208369
## I[] 0.122324 2.312240
## U[] 0.045615 0.057232
## W[] 0.326499 0.861595
## Y[] 0.306093 0.807745
##
## S:
## epsilon_Z
## q__CONSUMER_1 0.057008
## r 0.765232
## C 0.219335
## I 2.433937
## U 0.060245
## W 0.906942
## Y 0.850258
##
## ----------------------------------------------------------
##
## Shock covariance matrix:
##
## epsilon_Z
## epsilon_Z 1
##
## Basic statistics:
##
## Steady-state value Std. dev. Variance Loglin
## q__CONSUMER_1 58.4346 0.0745 0.0056 Y
## r 0.0351 1.0158 1.0318 Y
## C 3.6213 0.2991 0.0895 Y
## I 1.4427 3.1705 10.052 Y
## K_s 57.7077 0.2842 0.0807 Y
## U 72.3856 0.0788 0.0062 Y
## W 3.0384 1.1799 1.3922 Y
## Y 5.064 1.1062 1.2236 Y
## Z 1 1.3034 1.699 Y
##
## Correlation matrix:
##
## q__CONSUMER_1 r C I K_s U W Y Z
## q__CONSUMER_1 1 0.956 0.979 0.989 0.372 1 0.997 0.997 0.987
## r 1 0.875 0.989 0.082 0.955 0.977 0.977 0.991
## C 1 0.937 0.554 0.979 0.958 0.958 0.933
## I 1 0.228 0.988 0.998 0.998 1
## K_s 1 0.375 0.293 0.293 0.217
## U 1 0.996 0.996 0.986
## W 1 1 0.997
## Y 1 0.997
## Z 1
##
## Autocorrelations:
##
## Lag 1 Lag 2 Lag 3 Lag 4 Lag 5
## q__CONSUMER_1 0.726 0.491 0.295 0.134 0.006
## r 0.713 0.470 0.270 0.109 -0.017
## C 0.759 0.544 0.356 0.196 0.063
## I 0.714 0.472 0.272 0.111 -0.016
## K_s 0.960 0.864 0.731 0.577 0.415
## U 0.726 0.492 0.296 0.135 0.007
## W 0.718 0.479 0.280 0.119 -0.008
## Y 0.718 0.479 0.280 0.119 -0.008
## Z 0.713 0.471 0.271 0.110 -0.016
##
## Cross correlations with reference variable (Y):
##
## Y[-5] Y[-4] Y[-3] Y[-2] Y[-1] Y[] Y[1] Y[2] Y[3]
## q__CONSUMER_1[] -0.051 0.077 0.242 0.448 0.698 0.997 0.739 0.516 0.328
## r[] 0.102 0.222 0.368 0.542 0.745 0.977 0.641 0.366 0.147
## C[] -0.154 -0.028 0.142 0.359 0.630 0.958 0.769 0.594 0.436
## I[] 0.026 0.152 0.309 0.501 0.730 0.998 0.697 0.445 0.239
## K_s[] -0.493 -0.439 -0.341 -0.193 0.015 0.293 0.480 0.593 0.645
## U[] -0.053 0.075 0.240 0.447 0.698 0.996 0.740 0.518 0.329
## W[] -0.008 0.119 0.280 0.479 0.718 1.000 0.718 0.479 0.280
## Y[] -0.008 0.119 0.280 0.479 0.718 1.000 0.718 0.479 0.280
## Z[] 0.032 0.157 0.314 0.504 0.732 0.997 0.694 0.440 0.233
## Y[4] Y[5]
## q__CONSUMER_1[] 0.172 0.046
## r[] -0.022 -0.147
## C[] 0.297 0.177
## I[] 0.075 -0.052
## K_s[] 0.649 0.619
## U[] 0.174 0.048
## W[] 0.119 -0.008
## Y[] 0.119 -0.008
## Z[] 0.068 -0.059
##
## Variance decomposition:
##
## epsilon_Z
## q__CONSUMER_1 1
## r 1
## C 1
## I 1
## K_s 1
## U 1
## W 1
## Y 1
## Z 1