Skip to content

Conversation

@zhenyuen
Copy link

@zhenyuen zhenyuen commented Jun 16, 2024

@hpritchett-dstl

Features:

  1. Introduce a new family of transition models that generalise transition models driven by white noise to the Levy process.
  2. Provides support for normal sigma-mean and normal variance-mean mixture processes.
  3. Users can inject the desired driving processes into the selected transition model
  4. Introduce marginalised particle filtering for inferencing the newly-introduced class of models.
  5. Added a tutorial notebook for the new class of models and marginalised particle filter

Refactored:

  1. Improve inference speed for Levy models with known state transition matrices, e.g. LevyLangevin model
  2. Wrote minimal tests to lock down the behaviour of the introduced models. Some of Simon's students will still actively contribute to his work here, and I would require their help to improve the test coverage.
  3. Better separation of concerns/class design than before.

Todo:

  1. Implementation of PDF and log PDF functions, certain Levy distributions have non-trivial PDFs/CDFs, currently looking into inverse FFT methods involving characteristic functions.
  2. Provide support for more models, e.g. Singer
  3. Improve tests.

Additional comments:

I believe the current design is a good compromise between speed and compatibility with the existing stone soup framework to avoid introducing any breaking changes. The newly introduced models decouple the deterministic (transition model) and non-deterministic (noise driver) components. That being said, suggestions are welcome and highly appreciated.

zhenyuen and others added 30 commits May 11, 2024 01:13
Initial commit to introduce Levy (non-Gaussian) transition models
@zhenyuen
Copy link
Author

@hpritchett-dstl
I believe I’ve addressed all your comments and refactored the code accordingly. However, my tests on CircleCI for Python 3.8 seem to be failing due to the KS test from SciPy. I’m not entirely sure what’s causing this, so I’d appreciate it if you could take a look and help troubleshoot.

Additionally, I noticed that some of my formatting changes might have affected other parts of the repository that aren’t mine. I’ll need more time to undo those, but it might be helpful if we had standardized code styles throughout the repository. For example:

  1. Using absolute imports instead of relative imports
  2. Configuring flake8 and black consistently, ideally with a pre-commit hook

Lastly, it would be really helpful to have a local development setup that mirrors the CircleCI test environment. This way, I could run the tests locally and address any issues before pushing changes. A docker image would be great!

@zhenyuen zhenyuen force-pushed the levy-models-slow branch 2 times, most recently from f788491 to 19d9940 Compare November 16, 2024 10:57
Copy link
Contributor

@nperree-dstl nperree-dstl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made some comments on the tutorial that could do with being applied throughout to make the documentation render properly.

There is some guidance here which might be useful: https://sphinx-gallery.github.io/stable/syntax.html - you can also render the docs locally by running python -m sphinx -W docs/source docs/build.

@zhenyuen zhenyuen force-pushed the levy-models-slow branch 2 times, most recently from 12968ab to eb57eab Compare May 11, 2025 22:30
@zhenyuen zhenyuen force-pushed the levy-models-slow branch from eb57eab to 5c77e78 Compare May 11, 2025 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants