Point processes model the occurrence of a countable number of random points over some support. They can model diverse phenomena, such as chemical reactions, stock market transactions and social interactions. We show that JumpProcesses.jl is a fast, general-purpose library for simulating point processes. JumpProcesses.jl was first developed for simulating jump processes via stochastic simulation algorithms (SSAs) (including Doob's method, Gillespie's methods, and Kinetic Monte Carlo methods). Historically, jump processes have been developed in the context of dynamical systems to describe dynamics with discrete jumps. In contrast, the development of point processes has been more focused on describing the occurrence of random events. In this paper, we bridge the gap between the treatment of point and jump process simulation. The algorithms previously included in JumpProcesses.jl can be mapped to three general methods developed in statistics for simulating evolutionary point processes. Our comparative exercise revealed that the library initially lacked an efficient algorithm for simulating processes with variable intensity rates. We, therefore, extended JumpProcesses.jl with a new simulation algorithm, Coevolve, that enables the rapid simulation of processes with locally-bounded variable intensity rates. It is now possible to efficiently simulate any point process on the real line with a non-negative, left-continuous, history-adapted and locally bounded intensity rate coupled or not with differential equations. This extension significantly improves the computational performance of JumpProcesses.jl when simulating such processes, enabling it to become one of the few readily available, fast, general-purpose libraries for simulating evolutionary point processes.
翻译:点过程对支撑域上可数个随机点的发生进行建模,可描述化学反应、股票市场交易及社交互动等多种现象。本文证明JumpProcesses.jl是用于模拟点过程的快速通用库。JumpProcesses.jl最初通过随机模拟算法(包括Doob方法、Gillespie方法及动力学蒙特卡洛方法)开发用于模拟跳跃过程。从历史角度而言,跳跃过程在动力系统背景下发展而来,旨在描述具有离散跳跃的动力学行为;而点过程的发展则更侧重于描述随机事件的发生。本文弥合了点过程与跳跃过程模拟之间的处理差异。此前纳入JumpProcesses.jl的算法可映射至统计领域用于模拟进化点过程的三种通用方法。通过对比分析,我们发现该库最初缺乏用于模拟可变强度率过程的高效算法。因此,我们为JumpProcesses.jl扩展了新模拟算法Coevolve,该算法能够快速模拟具有局部有界可变强度率的过程。现在可高效模拟实直线上的任意点过程,其强度函数具有非负、左连续、历史自适应及局部有界特性,且可与常微分方程耦合或不耦合。该扩展显著提升了JumpProcesses.jl在模拟此类过程时的计算性能,使其成为少数现成的、用于模拟进化点过程的快速通用库之一。