Skip to content

Releases: tholden/dynareOBC

DynareOBC v2.83.1661

13 Sep 15:26
Compare
Choose a tag to compare

This release introduces two new options:

  • ImportanceSamplingMinConstraintProbability which controls how unlikely hitting the bound in future has to be in some state before it is ignored.
  • SecondOrderConditionalCovariance which tells DynareOBC to use a second order approximation to the conditional covariance. This was the old default, but since it is rather slow, I have made the default the faster, less accurate alternative.

Additionally, in this release I have:

  • Scaled importance sampling weights in a way which should be both more accurate, and more numerically robust. (The first stage integration is used to get an accurate measure of the probability of hitting the bound, and then this probability is used for weighting in the second stage.)
  • Fixed a bug that was creating an infinite loop in installing the Visual C++ redistributables.
  • Increased speed for cubature and importance sampling.
  • Moments can now be generated for the automatically created dynareOBCZeroLowerBounded1 endogenous variables.

DynareOBC v2.82.1643

11 Sep 19:18
Compare
Choose a tag to compare

The most notable change in this release is that importance sampling is now enabled by default. To disable it, run with ImportanceSamplingAccuracy=0.

The increased prominence of importance sampling is justified by some major improvements to its algorithm. The importance weights are now calculated in a much more numerically robust way, and the proposal distribution should now be a better fit to the desired distribution.

The cost is that importance sampling is now slightly slower than it was before. To reduce the cost, set ImportanceSamplingAccuracy to a lower level than its default, 14.

DynareOBC v2.81.1640

10 Sep 18:03
Compare
Choose a tag to compare

This is a minor bug fix release. Previously, the covariance matrix used in the importance sampling proposal distribution was being calculated incorrectly. This release fixes this, along with some general improvements to the robustness of importance sampling.

The release notes for the previous version, released earlier today, follow:


This release contains a major new feature.

Previously, DynareOBC could not handle cases at order>1 where the implied zero lower bounded variable had a positive steady-state, but a negative risky steady-state. This was a common occurrence in Mendoza (2010) type models of sudden stops.

Now, DynareOBC will attempt to handle these cases by approximating around a different steady-state.

Additionally, this release contains a small change to make it easier to detect spurious solutions, which would have helped detect the problems with these Mendoza (2010) type models had it been in place earlier.

This release also updates various dependencies (including fixing issue #8 ) and makes various cosmetic changes.

DynareOBC v2.80.1639

10 Sep 12:08
Compare
Choose a tag to compare

This release contains a major new feature.

Previously, DynareOBC could not handle cases at order>1 where the implied zero lower bounded variable had a positive steady-state, but a negative risky steady-state. This was a common occurrence in Mendoza (2010) type models of sudden stops.

Now, DynareOBC will attempt to handle these cases by approximating around a different steady-state.

Additionally, this release contains a small change to make it easier to detect spurious solutions, which would have helped detect the problems with these Mendoza (2010) type models had it been in place earlier.

This release also updates various dependencies (including fixing issue #8 ) and makes various cosmetic changes.

DynareOBC v2.73.1630

27 Jun 15:32
Compare
Choose a tag to compare

This minor release fixes a minor bug with dependency detection, adds a few additional examples, and updates various dependencies. It includes a work-around for a bug in the MSVC redistributable install package, which may mean you need to restart your computer after you first run this new version of DynareOBC.

DynareOBC v2.72.1620

11 Dec 16:39
Compare
Choose a tag to compare

This is a pure bug fix release. The previous release failed when ran with the sparse option. This release fixes that bug. The release notes from the previous release follow.


This release fixes a bug preventing the use of cubature in models with only a single shock, as well as updating various dependencies.

It also changes how impulse responses are calculated in the presence of correlated shocks. Rather than following Dynare and using the Cholesky decomposition, DynareOBC now takes the matrix square root. In most cases, this is far more sensible. For example, in a symmetric multi-country model, with correlated productivity shocks across countries, taking the matrix square root ensures that the impulse responses are identical in all countries, something that is not true under the Cholesky decomposition.

DynareOBC v2.72.1618

11 Dec 14:36
Compare
Choose a tag to compare

This release fixes a bug preventing the use of cubature in models with only a single shock, as well as updating various dependencies.

It also changes how impulse responses are calculated in the presence of correlated shocks. Rather than following Dynare and using the Cholesky decomposition, DynareOBC now takes the matrix square root. In most cases, this is far more sensible. For example, in a symmetric multi-country model, with correlated productivity shocks across countries, taking the matrix square root ensures that the impulse responses are identical in all countries, something that is not true under the Cholesky decomposition.

DynareOBC v2.71.1615

30 Oct 20:54
Compare
Choose a tag to compare

This is a minor bug fix release.

It fixes two bugs related to the quick check for whether M is a P matrix. Firstly, the code was not double checking determinants on the correct sub matrices, potentially generating spurious success or failure of the quick P matrix check. Secondly, due to the previous bug, the code was occasionally attempting to double check the determinant of an empty matrix, which was an unhandled case, resulting in an error. To fix the latter bug, the general handling of empty matrices within the DoubleDouble class has been improved.

Additionally, this release updates assorted dependencies.

DynareOBC v2.70.1608

14 Oct 16:52
Compare
Choose a tag to compare

This release introduces some significant improvements to cubature and IRF calculation. It also changes some popular options, justifying the bump in the version number. In particular:

  • This release makes performing no cubature the default, so there is no longer any need to use the NoCubature option, which is only left for backwards compatibility. My hope is that this change will make DynareOBC easier for people to get started with.
  • This release replaces the old MaxCubatureDegree option, with the new option GaussianCubatureDegree. Specifying a value for this option turns on Gaussian cubature (the old default).
  • This release introduces a new cubature algorithm based on points from a higher order Sobol sequence, which may be invoked by setting the HigherOrderSobolDegree option.
  • This release introduces a new option ImportanceSampling that increases the efficiency of the other cubature rules via importance sampling. This could potentially lead to large accuracy gains. (Accuracy results with the new option will be available shortly.)
  • This release introduces a new option MedianIRFs for calculating median IRFs, rather than mean IRFs. This is necessary to replicate the results of this paper: https://ideas.repec.org/p/zbw/esprep/168441.html
  • This release removes one point from the cubature rule used with FastCubature. This is a minor performance improvement, which may improve accuracy on some models, and worsen it on others.
  • This release improves the reliability of the CubatureAcceleration option.
  • This release improves the performance of the higher order Sobol integration used within the EST-NLSS sub-module.
  • This release also contains minor performance improvements, coding standards fixes, and updates to sub-modules.

DynareOBC v2.60.1593

05 Sep 17:28
Compare
Choose a tag to compare

Most importantly, this release fixes a critical bug in adaptive cubature introduced in the v2.5x.xxxx releases.

This has a significant version number bump since this is the first release for a long time to have estimation enabled again. However, it is currently in an extremely fragile state, so I make absolutely no guarantees that estimation ever performs reasonably.

This release also introduces one new option, RetryOnOptimizerError which keeps retrying the optimization until it runs without error. This is primarily to help with errors stemming from license servers temporarily being unavailable. It will not help DynareOBC find a solution when none exists.