Finding and checking modes

Hi all,

I’ve come across an odd phenomenon when using csminwel to find the posterior mode, vs fminunc or fmincon. I get very different parameter estimates using the former than either of the others. The csminwel results are also very different to the published results (Rabanal-Rubio).

I ran mode_check to see what’s going on, and the only difference is in the posterior of rho_a (see attached files). If I’m interpreting these graphs correctly, it looks like csminwel gives a secondary mode near unity, and I suspect that this is what’s throwing off the estimates (the model becomes non-stationary, or nearly so). Also, the MH acceptance rates are over 70% with csminwel, but only 42% or so with the other mode finders.

Any thoughts? Thanks in advance!

PS




[quote=“psummers”]Hi all,

I’ve come across an odd phenomenon when using csminwel to find the posterior mode, vs fminunc or fmincon. I get very different parameter estimates using the former than either of the others. The csminwel results are also very different to the published results (Rabanal-Rubio).

I ran mode_check to see what’s going on, and the only difference is in the posterior of rho_a (see attached files). If I’m interpreting these graphs correctly, it looks like csminwel gives a secondary mode near unity, and I suspect that this is what’s throwing off the estimates (the model becomes non-stationary, or nearly so). Also, the MH acceptance rates are over 70% with csminwel, but only 42% or so with the other mode finders.

Any thoughts? Thanks in advance!

PS[/quote]

Hello there,
as the posterior modes that you are showing are identical for the two optimizer, I assume that what differs are the posterior mean and more generally the posterior distribution simulated by Metropolis.

My guess that you hit a bug in the last version of Dynare where the penalty for leaving the parameter subspace where there is a unique stable trajectory isn’t done well.

Your finding makes it more urgent to publish a corrected version, but I’m afraid that I won’t be able to do it in the next 10 days.

Best

Michel

thanks Michel. Since my first post I’ve also noticed that Chris Sims has identified a bug in the Matlab version of csminwel (see his web page). I’m not sure if that’s what’s causing my results or not (I’m not familiar with the guts of optimization routines), but it could obviously have implications for Dynare.

I’ll let you know if I make any progress on this…

Chris Sims has now kindly updated the Matlab version of csminwel.m It is now used in the last version of Dynare (3.064)

Best

Michel

Following up my original post, I’ve re-estimated this model with the new version of dynare (with the csminwel bug fixed). The 2 mode-finding methods (mode_compute=1 and 4) now give essentially the same answer (ie, differences within simulation ‘error’).

Thanks to Michel and Chris Sims for sorting this out!

PS