How to simulate from a simple point process

207 Views Asked by At

Define a point process by the conditional intensity function

$$\lambda^*(t) = \mu + \alpha \sum_{t_i < t} e^{-(t-t_i)}$$

where $\mu$ and $\alpha$ are positive parameters.

I would like to simulate times from this process. Is there an explicit procedure for doing this?

1

There are 1 best solutions below

4
On BEST ANSWER

Assume constant timesteps of size $dt$. The increment of a Poisson process $dq\left(t\right)$ with constant rate $\lambda$ is described by $$ dq\left(t\right)=\begin{cases} 1 & \text{with probability }\lambda dt\\ 0 & \text{with probability }1-\lambda dt \end{cases}. $$ It should be obvious that the two events $dq\left(t\right)=1$ and $dq\left(t\right)=0$ are independent (the former corresponds to an increment in the Poisson process occurring over $\left(t,t+dt\right]$). We take $\lambda$ to be a cadlag approximation to $\lambda^{*}$ as demonstrated in the following code (MATLAB):

% T     = End time (start time is assumed to be zero)
% N     = Number of timesteps
% mu    = mu in lambda^*
% alpha = alpha in lambda^*

% List of t_i values, initially empty
t_is = [];

% Timestep size
dt = T / N;

for n = 0:(N-1)
    % Current time
    t = dt * n;

    % Compute lambda(t) = lambda^*(t)
    lambda = mu + alpha * sum( exp(t_is - t) );

    % Did an event occur?
    if rand < lambda * dt
        % It did! Add it to the list
        % This uses the left endpoint, but you could use something else
        t_is = [t_is t];
    end
end