EconSieve - Kalman Filter, Unscented Kalman filter, Ensemble Filter and Nonlinear Path-Adjusting Smoother (NPAS)
Apart from the smoother, I literally stole most of the code from these two projects:
* https://github.com/rlabbe/filterpy
* https://github.com/pykalman/pykalman
They deserve most of the merits. I just made everything look way more complicated. Sometimes filterpy
was more efficient, sometimes pykalman
. Unfortunately the pykalman
project is orphaned. I tweaked something here and there:
- treating numerical errors in the UKF covariance matrix by looking for the nearest positive semi-definite matrix
- eliminating identical sigma points (yields speedup assuming that evaluation of each point is costly)
- extracting functions from classes and compile them using the @njit flag (speedup)
- major cleanup
NPAS is build from scratch. I barely did any testing as a standalone filter and just always used it in combination with the 'pydsge', where it works very well.
Some very rudimentary documentation can be found here.
pip
(elegant via git
)
Installation with First install git
. Linux users just use their respective repos.
Windows users probably use anaconda and can do
conda install -c anaconda git
in the conda shell as they kindly tell us here. Otherwise you can probably get it here.
Then you can simply do
pip install git+https://github.com/gboehl/econsieve
If you run it and it complains about missing packages, please let me know so that I can update the setup.py!
pip
(simple)
Installation with First, be sure that you are on Python 3.x. Then:
The simplest way is to clone the repository and then from within the cloned folder run (Windows user from the Anaconda Prompt):
pip install .
Updating
The package is updated very frequently (find the history of latest commits here). I hence recommend pulling and reinstalling whenever something is not working right. Run:
pip install --upgrade git+https://github.com/gboehl/econsieve