-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Following PR #51, multivariate processes are represented as marked processes with i.i.d. integer marks, each mark representing one marginal process. This is fine for Poisson processes, since the marks do not influence the intensity of the process.
For Hawkes processes, however, marks may influence the intensity, so a univariate Hawkes process with integer marks is not equivalent to a multivariate Hawkes process. Currently I am treating any integer marks as really meaning the marginal process an event occurs, but I think this is not great.
This was shortly discussed in #43. I am not currently considering processes with vector-valued marks, so the options I see are:
-
Define that this package deals only with univariate processes, but because of the structure of the Poisson process, we can interpret this univariate process as a multivariate one.
-
Fields
timesandmarksofHistoryhold vectors of vectors, instead of vectors. -
Add another field that holds a vector containing the marginal process corresponding to each event. If this field contains a vector filled with
nothing, than it is a univariate process. -
Have multiple subtypes of
History, which may or may not have the fieldsmarksandmarginal_process(or whatever name).
I would not consider (1), since I started working on mutually exciting Hawkes processes. Between (2) and (3), I guess (2) is a more straightforward way to represent multivariate processes, but (3) has the benefit that the event times are already ordered, which is needed for pretty much every method related with multivariate Hawkes processes. (4) is possibly the most efficient (?), but a similar functionality can be obtained using aliases.
Thoughts? Other alternatives?