elephant.spike_train_generation.compound_poisson_process¶
- elephant.spike_train_generation.compound_poisson_process(rate, amplitude_distribution, t_stop, shift=None, t_start=array(0.) * ms)[source]¶
Generate a Compound Poisson Process (CPP; see (Staude et al., 2010)) with a given amplitude_distribution \(A\) and stationary marginal rates rate.
The CPP process is a model for parallel, correlated processes with Poisson spiking statistics at pre-defined firing rates. It is composed of len(A)-1 spike trains with a correlation structure determined by the amplitude distribution \(A\): A[j] is the probability that a spike occurs synchronously in any j spike trains.
The CPP is generated by creating a hidden mother Poisson process, and then copying spikes of the mother process to j of the output spike trains with probability A[j].
Note that this function decorrelates the firing rate of each SpikeTrain from the probability for that SpikeTrain to participate in a synchronous event (which is uniform across SpikeTrains).
- Parameters:
- ratepq.Quantity
- Average rate of each spike train generated. Can be:
a single value, all spike trains will have same rate rate
an array of values (of length len(A)-1), each indicating the firing rate of one process in output
- amplitude_distributionnp.ndarray or list
CPP’s amplitude distribution \(A\). A[j] represents the probability of a synchronous event of size j among the generated spike trains. The sum over all entries of \(A\) must be equal to one.
- t_stoppq.Quantity
The end time of the output spike trains.
- shiftpq.Quantity, optional
If None, the injected synchrony is exact. If shift is a pq.Quantity, all the spike trains are shifted independently by a random amount in the interval [-shift, +shift]. Default: None
- t_startpq.Quantity, optional
The t_start time of the output spike trains. Default: 0 pq.ms
- Returns:
- list of neo.SpikeTrain
A list of len(A) - 1 neo.SpikeTrains with specified firing rates forming the CPP with amplitude distribution \(A\).