GRO2 Stochastic growth model with irreversible investment
This is an implementation of the model in Christiano and Fisher (2000).
Contents
Model's structure
Response variable Consumption (), Investment (
), Lagrange multiplier (
).
State variable Capital stock (), Log of productivity (
).
Shock Innovation to productivity ().
Parameters Capital depreciation rate (), Discount factor (
), Elasticity of intertemporal substitution (
), Capital share (
), Scale parameter (
).
Equilibrium equations
Transition equations
Writing the model
The model is defined in a Yaml file: gro2.yaml.
Create the model object
Mean and standard deviation of the shocks
Mu = 0; sigma = 0.04;
model = recsmodel('gro2.yaml',... struct('Mu',Mu,'Sigma',sigma^2,'order',7));
Deterministic steady state (different from first guess, max(|delta|)=4.52137) State variables: K Z _ ___________ 1 -3.5818e-19 Response variables: C I Mu _______ ______ _______ 0.22117 0.0196 -4.5214 Expectations variables: E ______ 4.7593
This command creates a MATLAB file, gro2model.m, containing the definition the model and all its Jacobians from the human readable file gro2.yaml.
Define approximation space
Degree of approximation
order = 24;
Limits of the state space
smin = [0.47*model.sss(1) min(model.shocks.e)*3.5]; smax = [1.72*model.sss(1) max(model.shocks.e)*3.5];
[interp,s] = recsinterpinit(order,smin,smax);
Define options
options = struct('fgmethod','perturbation',... 'reesolver','mixed');
Find a first guess through first-order approximation around the steady state
[interp,x] = recsFirstGuess(interp,model,s,model.sss,model.xss,options);
Solve for rational expectations
interp = recsSolveREE(interp,model,s,x,options);
Successive approximation Major Minor Lipschitz Residual 0 0 2.83E+00 (Input point) 1 1 0.5633 1.55E+00 2 1 0.2903 1.26E+00 3 1 0.2548 1.07E+00 4 1 0.2091 9.38E-01 5 1 0.1813 8.32E-01 6 1 0.1673 7.39E-01 7 1 0.1639 6.52E-01 8 1 0.1603 5.67E-01 9 1 0.1698 4.84E-01 10 1 0.1718 4.08E-01 Too many iterations Newton-Krylov solver Major Residual Minor 1 Relative res. Minor 2 0 4.08E-01 0 1.00E+00 0 (Input point) 1 2.00E-01 1 4.91E-01 0 2 5.21E-02 1 2.60E-01 0 3 1.61E-02 2 3.09E-01 0 4 1.97E-03 3 1.22E-01 0 5 1.74E-05 11 8.87E-03 0 6 3.94E-09 10 2.26E-04 0
Simulate the model
[~,~,~,stat] = recsSimul(model,interp,model.sss(ones(1000,1),:),200); subplot(2,3,1) xlabel('Capital stock') ylabel('Frequency') subplot(2,3,2) xlabel('Log of productivity') ylabel('Frequency') subplot(2,3,3) xlabel('Consumption') ylabel('Frequency') subplot(2,3,4) xlabel('Investment') ylabel('Frequency') subplot(2,3,5) xlabel('Lagrange multiplier') ylabel('Frequency')
Statistics from simulated variables (excluding the first 20 observations): Moments Mean StdDev Skewness Kurtosis Min Max pLB pUB ___________ ________ ________ ________ ________ ________ ______ ___ K 1.0134 0.12252 0.40204 3.247 0.62059 1.6243 NaN NaN Z -0.00018851 0.091124 0.002673 2.9985 -0.40935 0.41021 NaN NaN C 0.22292 0.021423 0.31764 3.1586 0.14486 0.32353 0 0 I 0.019893 0.011407 0.44382 3.1573 0 0.089075 1.8717 0 Mu -4.5226 0.42991 -0.23494 3.0625 -6.6269 -3.0908 0 0 Correlation K Z C I Mu _______ _______ _______ _______ _______ K 1 0.61079 0.95318 0.17578 0.95006 Z 0.61079 1 0.81869 0.87473 0.80603 C 0.95318 0.81869 1 0.45494 0.98932 I 0.17578 0.87473 0.45494 1 0.43491 Mu 0.95006 0.80603 0.98932 0.43491 1 Autocorrelation T1 T2 T3 T4 T5 _______ _______ _______ _______ _______ K 0.99221 0.97359 0.9463 0.91223 0.87296 Z 0.87718 0.76803 0.67235 0.58657 0.51116 C 0.97464 0.94237 0.90489 0.8632 0.81874 I 0.81983 0.66701 0.53849 0.42835 0.33572 Mu 0.97783 0.94799 0.91239 0.87211 0.82869
