elephant.statistics.lvr

elephant.statistics.lvr(time_intervals, R=array(5.) * ms, with_nan=False)[source]

Calculate the measure of revised local variation LvR for a sequence of time intervals between events (Shinomoto et al., 2009).

Given a vector \(I\) containing a sequence of intervals, the LvR is defined as:

\[LvR := \frac{3}{N-1} \sum_{i=1}^{N-1} \left(1-\frac{4 I_i I_{i+1}} {(I_i+I_{i+1})^2}\right) \left(1+\frac{4 R}{I_i+I_{i+1}}\right)\]

The LvR is a revised version of the Lv, with enhanced invariance to firing rate fluctuations by introducing a refractoriness constant R. The LvR with R=5ms was shown to outperform other ISI variability measures in spike trains with firing rate fluctuations and sensory stimuli (Shinomoto et al., 2009).

Parameters:
time_intervalspq.Quantity or np.ndarray or list

Vector of consecutive time intervals. Must have time units, if not unit is passed ms are assumed.

Rpq.Quantity or int or float

Refractoriness constant (R >= 0). If no quantity is passed ms are assumed. Default: 5 ms

with_nanbool, optional

If True, LvR of a spike train with less than two spikes results in a np.NaN value and a warning is raised. If False, a ValueError exception is raised with a spike train with less than two spikes. Default: True

Returns:
float

The LvR of the inter-spike interval of the input sequence.

Raises:
ValueError

If an empty list is specified, or if the sequence has less than two entries and with_nan is False.

If a matrix is passed to the function. Only vector inputs are supported.

Warns:
UserWarning

If with_nan is True and the lvr is calculated for a spike train with less than two spikes, generating a np.NaN. If R is passed without any units attached milliseconds are assumed.

Examples

>>> from elephant import statistics
>>> statistics.lvr([0.3, 4.5, 6.7, 9.3], R=0.005)
0.833907445980624