Hawkes process simulation
They are defined by the intensity:
where
\(D\) is the number of nodes
\(\mu_i(t)\) are the baseline intensities
\(\phi_{ij}\) are the kernels
\(dN_j\) are the processes differentiates
kernels : np.ndarray, shape=(n_nodes, n_nodes)
A 2-dimensional arrays of kernels, also noted \(\phi_{ij}\)
baseline : np.ndarray or list
The baseline of all intensities, also noted \(\mu(t)\). It might be three different types:
np.ndarray, shape=(n_nodes,) : One baseline per node is given. Hence baseline is assumed to be constant, ie. \(\mu_i(t) = \mu_i\)
np.ndarray, shape=(n_nodes, n_intervals) :n_intervalsbaselines are given per node. This assumes parameterperiod_lengthis also given. In this case baseline is piecewise constant on intervals of sizeperiod_length / n_intervalsand periodic.
listoftick.base.TimeFunction, shape=(n_nodes,) : One function is given per node, ie. \(\mu_i(t)\) is explicitely given.
n_nodes : int
The number of nodes of the Hawkes process. If kernels and baseline are None this will create a Hawkes process with n_nodes nodes of zero kernels and with zero baseline
end_time : float, default=None
Time until which this point process will be simulated
period_length : float, default=None
Period of baseline in piecewise constant case.
max_jumps : int, default=None
Simulation will stop if this number of jumps in reached
seed : int, default = None
The seed of the random sampling. If it is None then a random seed (different at each run) will be chosen.
force_simulation : bool, default = False
If force is not set to True, simulation won’t be run if the matrix of the L1 norm of kernels has a spectral radius greater or equal to 1 as it would be unstable
timestamps : list of np.ndarray, size=n_nodes
A list of n_nodes timestamps arrays, each array containing the timestamps of all the jumps for this node
simulation_time : float
Time until which this point process has been simulated
n_total_jumps : int
Total number of jumps simulated
tracked_intensity : list[np.ndarray], size=n_nodes
A record of the intensity with which this point process has been simulated. Note: you must call track_intensity before simulation to record it
intensity_tracked_times : np.ndarray
The times at which intensity has been recorded. Note: you must call track_intensity before simulation to record it
intensity_track_step : float
Step with which the intensity has been recorded
tick.hawkes.SimuHawkes¶