depasquale-lab / StateSpaceDynamics.jl

Julia library for fitting and analyzing state space models. Provides efficient implementations of various SSMs including the canonical Gaussian LDS (Kalman Filter/Smoother), Poisson LDS, HMMs, etc.
GNU General Public License v3.0
10 stars 2 forks source link

Related packages #26

Closed gdalle closed 4 days ago

gdalle commented 2 months ago

Hi and congrats on the new package!

I just wanted to draw your attention to existing alternatives in Julia, at least for discrete-state models:

It might be useful to clarify in the README how your package differentiates itself from those. Or at the very least they might give you some ideas for implementation, or references to test against :)

briandepasquale commented 2 months ago

Hi @gdalle thanks for writing, and also thanks for your wonderful written package. It’s really great! We are slowly stumbling toward a pre-release, but very soon, we plan to write up a doc about the package, including how it relates to others in Julia and Python, and yours will def feature prominently. Long story short, we wanted to build a unified package for hierarchical SSMs that mix discrete and continuous models, with a specific neuroscience target audience, and it made more sense for us to build the whole thing from the ground up. But I do think there is great potential to use your functionality within ours one day (when we get better at package development 🫠) to handle the discrete models, so when we get there, I’d love to reach out to you. Thanks for writing! Brian

briandepasquale commented 2 months ago

Actually, this brings to mind a question, @gdalle. In your package, you note the observations can be quite generic. A common model in neuroscience these days is for the observation model to itself be a SSM (eg a LDS, leading to a "switching" LDS). Would this be an acceptable observation in your package, and have you explored these models with it? Thanks!

gdalle commented 2 months ago

A common model in neuroscience these days is for the observation model to itself be a SSM (eg a LDS, leading to a "switching" LDS). Would this be an acceptable observation in your package, and have you explored these models with it?

I looked at Figure 2 of the paper you linked and no, I don't think my package can handle this type of dependency. In the type of HMMs I implemented, observations have no memory, and they cannot influence the state.

briandepasquale commented 2 months ago

Hi @gdalle Thanks, that is super helpful.

This model class is our true development target, including necessary specialized algorithms for doing learning and inference. There is a lot of interest in this model presently in neuroscience, our target audience.

Your view here is helpful for us to articulate how our package exists within the julia ecosystem, so thanks. As I said, at some point, understanding how we might interface our package with HiddenMarkovModels.jl for purely discrete models, (or models with discrete components) would be something we'd really love to do!

rsenne commented 4 days ago

Closing this as there is newer discussion in #39.