Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
dynare
dynare
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 121
    • Issues 121
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 7
    • Merge Requests 7
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Dynare
  • dynaredynare
  • Issues
  • #1404

Closed
Open
Opened Mar 10, 2017 by Johannes Pfeifer @JohannesPfeiferDeveloper

Fix bug in sim1_linear

sim1_linear.m seems to return wrong results. The following mod-file calls different solvers in sequence, using the previous result as the respective starting value.

//Endogenous variables
var piV rV yV rrstarV zV Rshock;

//Exogenous variables
varexo epsFG shock epsR;       

//Parameters
parameters alpha beta eta phipi phiy rho sig lambda; // 

//Initialization of parameter values
beta    =0.99;      //Discount factor (=inverse nominal interest rate)
alpha   =0.033;     //sensivity of inflation to output gap, parameter determining marginal cost, 
eta     =1;         //sensivity of inflation to output gap, parameter determining price rigidity
phipi   =1.5;       //parameter determining monetary reaction to inflation
phiy    =0.125;     //parameter determining monetary reaction to output
rho     =0.9;       //AR(1) natural rate
sig     =1;         //intertemporal rate of substitution


lambda=0.25;        // prob. of new info arrival

//model equations
model;

// z Variable
zV = alpha*(yV-yV(-1))+piV;//(pV-pV(-1));

piV= (lambda*alpha/ (1-lambda)) *yV 
+lambda*EXPECTATION(-1)(zV)
+lambda*(1-lambda)*EXPECTATION(-2)(zV)
+lambda*(1-lambda)^2*EXPECTATION(-3)(zV)
+lambda*(1-lambda)^3*EXPECTATION(-4)(zV)
+lambda*(1-lambda)^4*EXPECTATION(-5)(zV)
+lambda*(1-lambda)^5*EXPECTATION(-6)(zV)
+lambda*(1-lambda)^6*EXPECTATION(-7)(zV)
+lambda*(1-lambda)^7*EXPECTATION(-8)(zV)
+lambda*(1-lambda)^8*EXPECTATION(-9)(zV)
;                      //marginal cost is proportional to gap, gap is driver of inflation

//piV=0.99*piV(+1)+0.033*yV;

//IS curve (Output Euler) from Kiley code
yV = yV(+1)-sig*(rV-piV(+1) - rrstarV);

//monetary policy' reaction function
rV = min((1-shock), phipi*(piV(+1) + phiy*yV + epsFG));
//rV = phipi*piV + phiy*yV+Rshock;

Rshock=0.5*Rshock(-1)+epsR;

//Natural real interest rate
rrstarV = rho*rrstarV(-1);
end;

initval;
rV=0;
yV=0;
rrstarV=0;
piV=0;
zV=0;
end;

steady;
check;

shocks;
var shock;
periods 1:15;
values 1;

var epsFG;
periods 16 ;
values -0.0117;
end;

perfect_foresight_setup(periods=30);

perfect_foresight_solver(solve_algo=0); 
nonlinear=oo_.endo_simul;
options_.linear=1;
perfect_foresight_solver(solve_algo=0); 
linear=oo_.endo_simul;
perfect_foresight_solver(solve_algo=0); 
options_.linear=0;
perfect_foresight_solver(solve_algo=0); 
perfect_foresight_solver(solve_algo=4); 

But the result of the nonlinear solvers has non-zero residuals in the linear solver and vice versa, while the nonlinear solvers seem to have consistent results.

Assignee
Assign to
4.6
Milestone
4.6 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: Dynare/dynare#1404