SciML / JumpProcesses.jl

Build and simulate jump equations like Gillespie simulations and jump diffusions with constant and state-dependent rates and mix with differential equations and scientific machine learning (SciML)
https://docs.sciml.ai/JumpProcesses/stable/
Other
135 stars 35 forks source link

Remarks about docs [JuliaCon Proceedings review] #365

Closed gdalle closed 6 months ago

gdalle commented 8 months ago

Hey there! I'm reviewing the package and associated paper for the JuliaCon Proceedings, so I'll put some remarks about the documentation here. This issue will be updated as I make my way through the docs.

https://github.com/JuliaCon/proceedings-review/issues/133

Home page

Simple Poisson Processes in JumpProcesses

Continuous-Time Jump Processes and Gillespie Methods

Piecewise Deterministic Markov Processes and Jump Diffusion Equations

Spatial SSAs with JumpProcesses.jl

(nothing)

Mathematical Specification of a problem with jumps

Jump solvers

Small typos

ChrisRackauckas commented 8 months ago

I don't understand the specific roles of the aggregator and the stepper

Everyone likes to talk about the jumps as being a stochastic process. They are not. The stochastic process is only defined by knowing all of the jumps together and choosing some method to aggregate them. The aggregator generates the representation of the stochastic process from the jump descriptions. But then you have to say how you're going to step: do you step directly to the jumps? Constant dt? Etc. This matters more in the context of connecting to ODEs.

isaacsas commented 8 months ago

Thanks for the comments! We will try to make some updates to clarify these questions.

ChrisRackauckas commented 8 months ago

Is there a way to implement the variable rate case of time-dependent infection rate without a global variable H? Same question for other models on the page

Use a parameter.

When it comes to controlling saving behavior, what exactly is saved by the callback mechanism? During the first read it was unclear to me that the saving referred to the solution values.

The state vector.

gzagatti commented 8 months ago

Thanks for your feedback. I will work on the documentation to clarify the issues you raised.

Coming from the point process side, I was also a bit confused about the roles of aggregators and steppers. I think the nomenclature is quite different from what we see in the point process literature. This is in part what our paper tries to do, that is, to bridge the gap between the treatment of jumps in biochemistry and point process in statistics.

Everyone likes to talk about the jumps as being a stochastic process. They are not. The stochastic process is only defined by knowing all of the jumps together and choosing some method to aggregate them. The aggregator generates the representation of the stochastic process from the jump descriptions. [...]

Just to make sure I understand this part. When you say that jumps are not a stochastic process, are you talking about the rates which determine the time of the jumps? In simple terms, my understanding is that the aggregators are algorithms that take a bunch of independent rates (aka the jumps) and outputs the time of the next jump. Is that the gist of the first part of your statement?