GRO1 Stochastic growth model
Contents
Model's structure
Response variable Consumption ().
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 equation
Transition equations
Writing the model
The model is defined in a Yaml file: gro1.yaml.
Create the model object
Mean and standard deviation of the shocks
Mu = 0; sigma = 0.007;
You generate the MATLAB model file and pack the model object with the following command
model = recsmodel('gro1.yaml',... struct('Mu',Mu,'Sigma',sigma^2,'order',5));
Deterministic steady state (different from first guess, max(|delta|)=1.75094e-08) State variables: K Z _ _________ 1 3.216e-22 Response variables: C _______ 0.19928 Expectations variables: E ______ 26.505
This command creates a MATLAB file, gro1model.m, containing the definition the model and all its Jacobians from the human readable file gro1.yaml.
Define approximation space using Chebyshev polynomials
Degree of approximation
order = [10 10];
Limits of the state space
smin = [0.85*model.sss(1) min(model.shocks.e)*4]; smax = [1.15*model.sss(1) max(model.shocks.e)*4];
[interp,s] = recsinterpinit(order,smin,smax,'cheb');
Find a first guess through first-order approximation around the steady state
[interp,x] = recsFirstGuess(interp,model,s,model.sss,model.xss);
Define options
With high order Chebyshev polynomials, extrapolation outside the state space should not be allowed to prevent explosive values.
options = struct('reesolver','krylov',... 'extrapolate',0 ,... 'accuracy' ,1);
Solve for rational expectations
interp = recsSolveREE(interp,model,s,x,options);
Newton-Krylov solver Major Residual Minor 1 Relative res. Minor 2 0 1.32E-04 0 1.00E+00 0 (Input point) 1 2.70E-05 1 2.04E-01 0 2 1.88E-05 1 6.97E-01 0 3 2.80E-06 2 1.49E-01 0 4 4.97E-08 3 1.78E-02 0 5 1.12E-09 4 2.26E-02 0
Simulate the model
[~,~,~,stat] = recsSimul(model,interp,model.sss(ones(1000,1),:),200,[],options); subplot(2,2,1) xlabel('Capital stock') ylabel('Frequency') subplot(2,2,2) xlabel('Log of productivity') ylabel('Frequency') subplot(2,2,3) xlabel('Consumption') ylabel('Frequency')
Statistics from simulated variables (excluding the first 20 observations): Moments Mean StdDev Skewness Kurtosis Min Max pLB pUB ___________ _________ _________ ________ _________ ________ ___ ___ K 1.0007 0.026494 0.11057 3.0062 0.89474 1.1053 NaN NaN Z -3.3217e-05 0.015946 0.0022828 2.9987 -0.071637 0.071787 NaN NaN C 0.19934 0.0034279 0.078804 2.989 0.18546 0.21301 0 0 Correlation K Z C _______ _______ _______ K 1 0.52294 0.94816 Z 0.52294 1 0.76667 C 0.94816 0.76667 1 Autocorrelation T1 T2 T3 T4 T5 _______ _______ _______ _______ _______ K 0.99396 0.98004 0.95955 0.93366 0.90339 Z 0.8772 0.7681 0.67239 0.58658 0.51118 C 0.9733 0.94265 0.90909 0.87289 0.83506 Accuracy of the solution Equilibrium equation error (in log10 units) Max Mean -2.9649 -4.9531