Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of first passage times #22

Open
juanracasti opened this issue Nov 11, 2022 · 0 comments
Open

Implementation of first passage times #22

juanracasti opened this issue Nov 11, 2022 · 0 comments

Comments

@juanracasti
Copy link

First of all, thanks a lot for the package, it's very useful!

I was wondering whether the following application could be a relevant addition for sdeint:
In several fields, including neuroscience and decision making, it's often of interest to calculate the first passage time of (simple) stochastic processes reaching a certain bound or bounds (usually constant for simplicity although it doesn't need to be). You might have heard about the DDM model and variants.

Your functions such as itoSRI2() are very useful to calculate the trajectories of this process, but one still needs to evaluate when the trajectories reach the bound for the first time. To do this, most commonly one integrates trajectories until a fixed maximum (long) time Tmax, and then finds when the trajectories reach the bound. This is not very efficient, as many trajectories will reach the bound much earlier than Tmax. The other alternative is to evaluate the bound crossing at every time step of the trajectory, but since this is outside of the itoSRI2() function, it's also probably not efficient (multiple calls to the function with subsequent overhead, etc.)

I was wondering if it would be worthwhile to implement a method in which you pass already the bound function(s), and it returns directly the first passage time, and which bound was reached first (in case of multiple), all from within the itoSRI2() akin method. I think it would be valuable for a lot of researchers that currently are using the first technique described above, or implementing their own (and likely inefficient) Euler-Maruyama simulations.

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

No branches or pull requests

1 participant