-
Notifications
You must be signed in to change notification settings - Fork 2
Description
What I have
Models
Each with the methods: simulate, estimate, intensity, rescale. If I understood correctly, these correspond to Base.rand, StatsAPI.fit, intensity and time_change in PointProcesses.jl, respectively.
- Homogeneous Poisson
- Standard Hawkes processes
- Renewal models
- Two-stage model
-
Additive inhomogeneous Poisson
$$\lambda(t; \mu, \gamma) = \mu + \gamma f(t), ~f ~\text{some fixed function} $$ -
Multiplicative inhomogeneous Poisson
$$\lambda(t; \mu, \gamma) = \mu e^{\gamma f(t)}$$ -
Inhomogeneous Hawkes
$$\lambda(t; \mu, \gamma, \alpha, \beta) = \mu + \gamma f(t) + \sum_{t_i < t} \alpha e^{-\beta(t - t_i)},~ t_i ~ \text{are the events}$$
Statsitics
- KS distance exponential - ecdf of re-scaled interarrivals X cdf of exponential distribution
- KS distance uniform - ecdf of re-scaled events X cdf of uniform distribution
- $L^2$ distance Laplace - empirical Laplace transform of re-scaled interarrivals X Laplace transform of exponential distribution
Goodness-of-fit tests
- Bootstrap-based
- Standard (explanation in the same link above)
- Subsampling (adaptated to only one trial available)
Immediate next steps
- Implement the Standard Hawkes process
- Implement the KS distance exponential statistic
- Implement the Bootstrap-based goodnessof-fit test
Then, having all this well structured and working properly, it should be straightforward to add the other stuff.
Step 1
I will create a src/hawkes folder. For now, there will be no abstract type, just a concrete type Hawkes.
Step 2
The way I did it is to have an abstract Statistic type, with different singleton types KSExponential, KSUniform, LPExponential for the method statistic to dispatch on (can be seen here).
For the file structure. Create a abstract_statistic.jl file in src defining the AbstractStatistic type and a folder src/statistics with the concrete types and corresponding methods?
Step 3
Could use the same design as above, with a AbstractGoFTest type (or something like this) and concrete types Bootstrap, Standard, Subsampling. Maybe it makes more sense then having three different functions, like I did here