Multivariate Point Process Package
0.1
|
Poisson implements the multivariate homogeneous process. More...
#include "include/Poisson.h"
Public Member Functions | |
Poisson (const unsigned &n, const unsigned &num_dims) | |
The constructor. More... | |
virtual void | NegLoglikelihood (double &objvalue, Eigen::VectorXd &Gradient) |
Negative loglikelihood of homogeneous Poisson process. More... | |
virtual double | Intensity (const double &t, const Sequence &data, Eigen::VectorXd &intensity_dim) |
The intensity of each dimension for a homogeneous Poisson process is a constant \(\lambda^0_n\). More... | |
virtual double | IntensityUpperBound (const double &t, const double &L, const Sequence &data, Eigen::VectorXd &intensity_upper_dim) |
Returns the upper bound of the summation of the intensity value on each dimension from time t to t + L given the history of past events in sequence data. Let \({\lambda_d^*(t)}\) be the conditional intensity function on the d-th dimension where \(d=1\dotso D\), and num_dims_ = D. This function returns \begin{align} \lambda_0^D(t) \geq \sum_{d=1}^D\sup_{\tau\in[t, t + \tau(t)]}\lambda^*_d(\tau), \end{align} where the returned value \(\lambda_0^D(t)\) will be used for Ogata's Thinning algorithm. More... | |
virtual double | IntensityIntegral (const double &lower, const double &upper, const Sequence &data) |
Returns the integral of the intensity function \(\int_{a}^b\lambda^*(\tau)d\tau\) where \(a = lower\) and \(b = upper\). More... | |
virtual void | Gradient (const unsigned &k, Eigen::VectorXd &gradient) |
Returns the gradient w.r.t. the model parameters on the k-th sequence. More... | |
virtual double | PredictNextEventTime (const Sequence &data, const unsigned &num_simulations) |
Predict the next event timing by the expectation \(\int_{t_n}^\infty tf^*(t)dt\). Currently, we use the sample average by simulations to approximate the expectation since the conditional density \(f^*(t)\) normally does not have an analytic form. More... | |
void | fit (const std::vector< Sequence > &data) |
Maximum likelihood estimation for the model parameters. More... | |
![]() | |
IProcess (const unsigned &n, const unsigned &num_dims) | |
The constructor. More... | |
const Eigen::VectorXd & | GetParameters () |
Return the column vector of model parameters. More... | |
unsigned | GetNumDims () |
Return the number of dimensions in the process. More... | |
void | SetParameters (const Eigen::VectorXd &v) |
Set the model parameters. More... | |
void | PlotIntensityFunction (const Sequence &data) |
Plots the intensity functions based on the given sequence. It plots the intensity function and the associated event points up of each dimension in the same figure. More... | |
void | PlotIntensityFunction (const Sequence &data, const unsigned &dim_id) |
Plots the intensity function and the associated event points of the dimension dim_id. More... | |
Protected Member Functions | |
void | Initialize (const std::vector< Sequence > &data) |
initialize the temporal features intensity_features_ and intensity_itegral_features_ from the input sequences. More... | |
![]() | |
void | InitializeDimension (const std::vector< Sequence > &data) |
Protected Attributes | |
Eigen::VectorXd | intensity_features_ |
A column vector where each component is the average number of events on each dimension. More... | |
double | intensity_itegral_features_ |
The average observation windown. More... | |
unsigned | num_sequences_ |
total number of observed sequences More... | |
Eigen::VectorXd | observation_window_T_ |
a column vector of length \(C\) which is the total number of sequences. Each component records the observation window in the respective sequence. More... | |
![]() | |
Eigen::VectorXd | parameters_ |
A column vector represents all model parameters of the process. More... | |
unsigned | num_dims_ |
The total number of dimensions of the process. More... | |
std::vector< std::vector< std::vector< double > > > | all_timestamp_per_dimension_ |
all_timestamp_per_dimension_ is a 3-d array where all_timestamp_per_dimension_[c][n][i] records the i-th event on the n-th dimension in the c-th sequence. More... | |
|
inline |
void Poisson::fit | ( | const std::vector< Sequence > & | data | ) |
Maximum likelihood estimation for the model parameters.
[in] | data | vectors of observed sequences. |
Definition at line 92 of file Poisson.cc.
|
virtual |
Returns the gradient w.r.t. the model parameters on the k-th sequence.
[in] | k | sequence index. |
[out] | gradient | the gradient vector w.r.t. the model parameters. |
Implements IProcess.
Definition at line 75 of file Poisson.cc.
|
protected |
initialize the temporal features intensity_features_ and intensity_itegral_features_ from the input sequences.
[in] | data | input collection of sequences |
Definition at line 24 of file Poisson.cc.
|
virtual |
The intensity of each dimension for a homogeneous Poisson process is a constant \(\lambda^0_n\).
[in] | t | the given time. |
[in] | data | the given sequence of the past events until time t. |
[out] | intensity_dim | a column vector of size num_dims_ where each component stores the intensity value of the respetive dimension at time t given the past sequence in data. |
Implements IProcess.
Definition at line 10 of file Poisson.cc.
|
virtual |
Returns the integral of the intensity function \(\int_{a}^b\lambda^*(\tau)d\tau\) where \(a = lower\) and \(b = upper\).
[in] | lower | starting point of the integral. |
[in] | upper | ending point of the integral. |
[in] | data | sequence of past events. |
Implements IProcess.
Definition at line 99 of file Poisson.cc.
|
virtual |
Returns the upper bound of the summation of the intensity value on each dimension from time t to t + L given the history of past events in sequence data. Let \({\lambda_d^*(t)}\) be the conditional intensity function on the d-th dimension where \(d=1\dotso D\), and num_dims_ = D. This function returns
\begin{align} \lambda_0^D(t) \geq \sum_{d=1}^D\sup_{\tau\in[t, t + \tau(t)]}\lambda^*_d(\tau), \end{align}
where the returned value \(\lambda_0^D(t)\) will be used for Ogata's Thinning algorithm.
t | the starting time. |
L | the duration. |
data | the given sequence of the past events until time t. |
intensity_upper_dim | a column vector of size num_dims_ storing the upper bound of the intensity function on each dimension from time t to t + L. |
Implements IProcess.
Definition at line 19 of file Poisson.cc.
|
virtual |
Negative loglikelihood of homogeneous Poisson process.
\begin{align} -\frac{1}{C}\sum_{c=1}^C\bigg\{\sum_{n=1}^D (\sum_{i=1}^{n_c}\log\lambda^0_n - T_c\lambda^0_n) \bigg\} \end{align}
objvalue | negative loglikelihood. |
gradient | gradient of the parameters. |
Implements IProcess.
Definition at line 60 of file Poisson.cc.
|
virtual |
Predict the next event timing by the expectation \(\int_{t_n}^\infty tf^*(t)dt\). Currently, we use the sample average by simulations to approximate the expectation since the conditional density \(f^*(t)\) normally does not have an analytic form.
[in] | data | the sequence of past events. |
[in] | num_simulations | number of simulations we use to calculate the sample average. |
Implements IProcess.
Definition at line 105 of file Poisson.cc.
|
protected |
|
protected |
|
protected |
|
protected |