Page 1 of 1

Steady state existence

PostPosted: Mon Sep 29, 2014 7:06 am
by macroresearch123
Hi Johannes!

A quick question that shouldn't take you more than 3 minutes: attached is a mod file and a file with the parameters (you can also copy the text below into a matlab file and execute from there if you put everything in the same folder) -- the residuals on the steady state are extremely small, but it is not computing. I just wanted to clarify whether I am doing something wrong, or if it's just not a very stable solution. I wanted to get a feel of the solution from Dynare before coding my only solution. If my setup looks fine, then I will experiment with my own coded solution.

As always, thank you for your time and insight!

------------
clear all; close all; clc;
P = parameters; %make sure these are updated
beta=P.beta; chipp=P.chipp; chifw=P.chifw; psipp=P.psipp; psifw=P.psifw;
xi=P.xi; gamma=P.gamma; pi=P.pi; se_h=P.se_h; rho_h=P.rho_h;
eta=P.eta; tau_c=P.tau_c; tau_i=P.tau_i; tau_n=P.tau_n; tau_k=P.tau_k; tau_marg=P.tau_marg; delta=P.delta;
iota=P.iota; alpha=P.alpha;

save parameterfile beta chipp chifw psipp psifw xi alpha gamma pi eta iota se_h rho_h delta tau_c tau_i tau_n tau_k tau_marg;
dynare hkgrowth.mod; %addpath C:\dynare\4.4.2\matlab

Re: Steady state existence

PostPosted: Mon Sep 29, 2014 1:17 pm
by jpfeifer
I don't understand the problem. Dynare does find the steady state without any apparent problems. The error message comes from the Blanchard-Kahn conditions not being satsfied.

Re: Steady state existence

PostPosted: Mon Sep 29, 2014 2:33 pm
by macroresearch123
I didn't realize that I uploaded that parameterization (was changing the parameters back and forth), but the problem arises from the fact that very small changes in a few parameters leads to no steady state -- so the solution is not at all robust even if BK conditions weren't violated.

Nonetheless, I just wanted to check that I wasn't doing something wrong in the Dynare setup. This might be a problem where perturbation methods perform poorly.

Re: Steady state existence

PostPosted: Mon Sep 29, 2014 2:47 pm
by jpfeifer
It is possible that the steady state equations are highly non-linear in the parameters and no steady state exists. But usually the steady state values are continuous in the parameters and small variations should not affect the results in a big way. Have you tried increasing maxit?

Re: Steady state existence

PostPosted: Mon Sep 29, 2014 3:07 pm
by macroresearch123
Indeed, I was reading your reply in another thread, so I increased maxit "steady(solve_algo=2,maxit=5000);". Solving a simple model with human capital turns out to be much harder than expected, at least under this new formulation of human capital! The nonlinearity comes from the fact that there are two intertemporal Eulers - one on consumption, one on labor - and under the simple setup in this file, no intratemporal Euler.

Thank you again for your reply and promptness!

Re: Steady state existence

PostPosted: Sun Nov 09, 2014 6:00 pm
by macroresearch123
Hey Johannes,

I returned to trying to solve this in dynare after making solving it in another software and trying to use its implied initial conditions. I was reading a thread about supplying an external steady state file (viewtopic.php?f=1&t=1834) and followed the methodology, but it seems to not work. The error that comes up is:
??? Error using ==> print_info at 37
The generalized Schur (QZ) decomposition failed. For more information, see the
documentation for Lapack function dgges: info=11, n=9. You can also run model_diagnostics
to get more information on what may cause this problem.


Note the model diagnostics says that the shock equations are collinear -- those are the last four equations in the dynare file that specify the process and then take exp(shock).

If you have a minute, could you check the external steady state file? I use homotopy to solve a simpler version of the steady state. It works outside of dynare -- it's what I use for my steady state computations. To get the Dynare file to run, just run this in a separate script:

clear all; close all; clc;
cd '[where you saved the parameter file]'
P = parameters; %make sure these are updated
beta=P.beta; chipp=P.chipp; chifw=P.chifw; psipp=P.psipp; psifw=P.psifw;
xi=P.xi; gamma=P.gamma; pipp=P.pipp; se_h=P.se_h; se_pp=P.se_pp; rho_h=P.rho_h; rho_pp=P.rho_pp;
eta=P.eta; tau_c=P.tau_c; tau_i=P.tau_i; tau_n=P.tau_n; tau_k=P.tau_k; tau_marg=P.tau_marg; delta=P.delta;
iota=P.iota; alpha=P.alpha;

cd '[where you saved the dynare files]
save parameterfile beta chipp chifw psipp psifw xi alpha gamma pipp eta iota se_h se_pp rho_h rho_pp delta tau_c tau_i tau_n tau_k tau_marg;
dynare hkgrowth.mod; %addpath C:\dynare\4.4.2\matlab

Re: Steady state existence

PostPosted: Mon Nov 10, 2014 8:03 pm
by jpfeifer
It tells me that ss_bmark is missing.

Re: Steady state existence

PostPosted: Tue Nov 11, 2014 12:11 am
by macroresearch123
My fault, I should have posted that too.

Re: Steady state existence

PostPosted: Wed Nov 12, 2014 8:03 pm
by jpfeifer
The problematic equations are
Code: Select all
z_h=rho_h*z_h(-1)+se_h*eps_h;
A_h=exp(z_h);
z_pp=rho_pp*z_pp(-1)+se_pp*eps_pp;
A_h=exp(z_pp);

The first three equations define exogenous processes for z_h, A_h and z_pp. Now you add a fourth equation redefining A_h to simultaneously be a function of the exogenous process z_pp. Essentially you are saying that
Code: Select all
exp(z_pp)=exp(z_h)

But this cannot be as both z_pp and z_h are driven by independent stochastic shocks. Hence, these four equations simultaneously holding is a zero probability event.
As you have four equations determining three variables, there must be another equation missing.

Re: Steady state existence

PostPosted: Wed Nov 12, 2014 8:27 pm
by macroresearch123
Wow, you're amazing -- as usual -- good catch, that was an error on my part. Really appreciate your genuine interest in solving these sorts of problems!