# GRO3 Stochastic growth model with recursive preferences and stochastic volatility (SV)

This model is similar to Caldara et al. (2012).

## Model's structure

Response variable Consumption ($C$), Labor ($L$), Marginal utility with respect to consumption ($U_C$), Instantaneous utility ($U$), Production ($Y$), Utility ($V$).

State variable Capital stock ($K$), Log of productivity ($Z$), Log of productivity volatility ($\sigma$).

Shock Innovation to productivity ($\epsilon$), Innovation to productivity volatility ($\omega$).

Parameters Capital depreciation rate ($\delta$), Discount factor ($\beta$), Index of deviation from CRRA utility ($\nu$), Risk-aversion parameter ($\tau$), Capital share ($\alpha$), Share of consumption in utility ($\theta$), Persistence of log-productivity ($\rho_Z$), Persistence of SV ($\rho_{\sigma}$), Unconditional mean of SV ($\bar{\sigma}$), Standard deviation of SV ($\eta$).

Equilibrium equation

$C_{t}: U_{C,t}=\beta\left(\mathrm{E}_{t}\tilde{V}_{t+1}\right)^{\left(\frac{1}{\theta}-1\right)}\mathrm{E}_{t}\left[\tilde{V}_{t+1}^{\frac{\theta-1}{\theta}}U_{C,t+1}\left(1-\delta+ \alpha e^{Z_{t+1}}K_{t+1}^{\alpha-1}L_{t+1}^{\alpha-1}\right)\right].$

$L_t: (1-\theta) C_t = \theta (1-\alpha) Y_t \left(\frac{1}{L_t}-1\right)$

$U_{C,t}: U_{C,t} = \theta \frac{1-\tau}{\nu} \frac{U_t^{1/\nu}}{C_t}$

$U_t: U_t = \left[C_t^{\theta}(1-L_t)^{1-\theta}\right]^{1-\tau}$

$Y_t: Y_t = e^{Z_{t}}K_{t}^{\alpha}L_t^{1-\alpha}$

$V_t: \tilde{V}_t^{\frac{1}{\nu}} = (1-\beta) U_t^{\frac{1}{\nu}} + \beta \mathrm{E}_t \tilde{V}_t^{\frac{1}{\nu}}$

$\tilde{V}_t: \tilde{V}_t=V_t^{1-\tau}$

Transition equations

$K_{t}: K_{t}=+\left(1-\delta\right)K_{t-1}-C_{t-1},$

$Z_{t}: Z_{t}=\rho_Z Z_{t-1}+e^{\sigma_t}\epsilon_{t}.$

$\sigma_t: \sigma_t = (1-\rho_{\sigma})\bar{\sigma}+\rho_{\sigma}\sigma_{t-1}+\eta\omega_t$

## Writing the model

The model is defined in a Yaml file: gro3.yaml.

## Create the model object

model = recsmodel('gro3.yaml',struct('Mu',[0 0],'Sigma',eye(2),'order',5));

Deterministic steady state (different from first guess, max(|delta|)=0.74174)
State variables:
K            Z          Sigma
______    ___________    _______

9.3926    -2.3527e-18    -4.9618

Response variables:
C          L         Uc          U          Y          V         Vt
_______    _______    _______    _______    _______    _______    _______

0.71389    0.32835    0.20716    0.82851    0.89799    0.68644    0.82851

Expectations variables:
EC         EVt
_______    _______

0.20904    0.82851



## Define approximation space using Chebyshev polynomials

smin       = [0.85*model.sss(1) -0.11 log(0.007)*1.15];
smax       = [1.20*model.sss(1)  0.11 log(0.007)*0.85];

[interp,s] = recsinterpinit(4,smin,smax,'cheb');


## Find a first guess through first-order approximation around the steady state

[interp,x] = recsFirstGuess(interp,model,s);


## Define options

options = struct('reemethod','1-step',...
'accuracy' ,1,...
'stat'     ,1);


## Solve for rational expectations

[interp,x,z] = recsSolveREE(interp,model,s,x,options);


## Use simple continuation method to solve for higher values of risk aversion

The procedure to solve for different parameters values has to be packed in a function. This is done in gro3problem.m.

type('gro3problem.m')

function [X,f,exitflag] = gro3problem(X,z)
% GRO3PROBLEM Solves the model GRO3 for different values of risk aversion and IES

[model,interp,s,x,options] = X{:};

tau = z(1);
Psi = z(2);
nu  = (1-tau)/(1-1/Psi);
model.params(1)         = tau;
model.params(end-1:end) = [nu Psi];

[interp,x,~,f,exitflag] = recsSolveREE(interp,model,s,x,options);

X = {model interp s x options};


This function requires as input the cell array X:

X = {model interp s x options};


The function SCP starts from the known solution with a low risk aversion to find in 2 steps the solution with an higher risk aversion:

X = SCP(X,[5 0.5],[0.5 1/0.5],@gro3problem,2);
[model,interp,s,x,options] = X{:};


## Simulate the model

recsSimul(model,interp,model.sss(ones(100,1),:),200,[],options);
subplot(3,4,1)
xlabel('Capital stock')
ylabel('Frequency')
subplot(3,4,2)
xlabel('Log of productivity')
ylabel('Frequency')
subplot(3,4,3)
xlabel('Log of productivity volatility')
ylabel('Frequency')
subplot(3,4,4)
xlabel('Consumption')
ylabel('Frequency')
subplot(3,4,5)
xlabel('Labor')
ylabel('Frequency')
subplot(3,4,6)
xlabel('Marginal utility wrt consumption')
ylabel('Frequency')
subplot(3,4,7)
xlabel('Instantaneous utility')
ylabel('Frequency')
subplot(3,4,8)
xlabel('Production')
ylabel('Frequency')
subplot(3,4,9)
xlabel('Intertemporal utility')
ylabel('Frequency')
subplot(3,4,10)
xlabel('')
ylabel('Frequency')

Statistics from simulated variables (excluding the first 20 observations):
Moments
Mean        StdDev      Skewness     Kurtosis       Min         Max       pLB    pUB
__________    _________    _________    ________    _________    ________    ___    ___

K            9.3726       0.3448     0.049759    3.1699         8.3612      10.667    NaN    NaN
Z        -0.0010056     0.022278     -0.12717    3.0141      -0.082602    0.072685    NaN    NaN
Sigma       -4.9589      0.13472    -0.079306    2.9814        -5.5057     -4.4161    NaN    NaN
C           0.71284     0.017722    -0.020588    3.0338        0.65859     0.77676      0      0
L           0.32833    0.0035491    -0.086214    3.1091         0.3127     0.34121      0      0
Uc         -0.73063      0.02345     -0.19052    3.0803       -0.80705    -0.65302      0      0
U            4.5172      0.13699      0.17868    3.1564         4.0595       4.959      0      0
Y           0.89685     0.032524     -0.01658     2.985        0.79054      1.0092      0      0
V           0.68632    0.0019234    -0.084775    3.0172        0.68021     0.69296      0      0
Vt           4.5073     0.050563      0.12709    3.0239         4.3367      4.6713      0      0

Correlation
K           Z          Sigma         C            L           Uc           U           Y           V           Vt
________    ________    _________    ________    _________    ________    _________    ________    ________    _________

K               1     0.62478     0.046136     0.93156      0.20961     0.95867     -0.99857     0.73116     0.90316     -0.90282
Z         0.62478           1     0.026014     0.86584      0.89427     0.81844     -0.61567     0.98918     0.89935     -0.89944
Sigma    0.046136    0.026014            1    0.041852    0.0065812    0.043077    -0.046003    0.032588    0.040492    -0.040309
C         0.93156     0.86584     0.041852           1      0.55058     0.99528     -0.92653     0.92909     0.99737     -0.99717
L         0.20961     0.89427    0.0065812     0.55058            1     0.47492     -0.19805     0.82003     0.60862     -0.60875
Uc        0.95867     0.81844     0.043077     0.99528      0.47492           1     -0.95661     0.89201     0.98696     -0.98715
U        -0.99857    -0.61567    -0.046003    -0.92653     -0.19805    -0.95661            1    -0.72241    -0.89796      0.89806
Y         0.73116     0.98918     0.032588     0.92909      0.82003     0.89201     -0.72241           1     0.95285     -0.95267
V         0.90316     0.89935     0.040492     0.99737      0.60862     0.98696     -0.89796     0.95285           1     -0.99995
Vt       -0.90282    -0.89944    -0.040309    -0.99717     -0.60875    -0.98715      0.89806    -0.95267    -0.99995            1

Autocorrelation
T1         T2         T3         T4         T5
_______    _______    _______    _______    _______

K        0.99495    0.98532    0.97156    0.95413    0.93348
Z        0.92544    0.85546    0.78812    0.72396    0.66418
Sigma    0.87737    0.77009    0.67678    0.59627    0.52422
C        0.97313    0.94488    0.91479    0.88323    0.85085
L        0.90432    0.81569    0.73158    0.65263    0.58046
Uc       0.98183    0.96106    0.93766    0.91191     0.8844
U        0.99481    0.98507    0.97118    0.95365    0.93291
Y        0.93633    0.87596    0.81718    0.76052    0.70699
V        0.96592     0.9314    0.89576    0.85936    0.82292
Vt       0.96594    0.93144    0.89583    0.85946    0.82304

Accuracy of the solution
Equilibrium equation error (in log10 units)
Max       Mean
-5.3396   -5.6612
-5.4924   -5.9614
-4.7854   -5.0195
-3.5812   -3.7903
-5.0962   -5.4858
-6.8940   -7.1197
-5.3354   -5.5530



## References

Caldara D.; Fernandez-Villaverdes, J.; Rubio-Ramirez, J. F. & Yao, W. (2012). Computing DSGE models with recursive preferences and stochastic volatility. Review of Economic Dynamics 15(2), 188-206.