Equilibria with different orders of magnitude

My takeaway:

  • Howards greedy only works for models where V does not take the value -Inf at any point in the state space (is okay for return fn to take -Inf, as long as can avoid choosing these and so V remains finite).
  • Howards iteration can handle that V takes the value -Inf at some parts of the state space.

The design philosophy of VFI Toolkit is to just work; deliver the correct answer to whatever model setup the user has given. Anything that can ‘fail’ —fail meaning to deliver the incorrect answer to what the user has setup— remains in vfoptions as something the user can do, but hopefully will only do if they ‘know’ it is okay for that model setup (e.g., divide-and-conquer can only be used for model where the policy function of next period asset is conditionally monotone, which is true for almost all models, but you can write a model where it is not true so cannot be default behaviour).

So I am going to just change the defaults so that Howards-greedy is never used by default. It will remain something that can be activated via vfoptions. I feel like this is a minor loss given that the sole point of Howards-greedy is anyway to give a speed-up to small models.

[I don’t like to code the ‘use large but finite negative number in place of -Inf’ as I expect there are some model setups in which this would fail to deliver the correct answer. Specifically, if the model actually returns an ‘even larger but finite negative number’ somewhere then this would result in an error when the ‘replacement of -Inf’ is chosen instead.]

Howards-greedy is fairly new to the toolkit, was implemented late last year, and clearly all the tests run at the time were value fns that do not contain -Inf, so had not noticed this behaviour before. Makes sense when you look at Howards greedy which is about solving,

V_{m,\infty}=(\mathbb{I} - \beta T_E)^{-1} F_{a*'}

and so if F_{a*'} contains a -Inf this operation goes wrong. I expect there is a way to modify Howards greedy to correctly handle this, but I am not currently inclined to try. Partly as such a modification may mean killing much of the speed advantage of Howards greedy over Howards iteration in small models, which means killing the whole point of using Howards greedy in the first place.

1 Like