Source code for neurokit2.complexity.entropy_quadratic

# -*- coding: utf-8 -*-
import numpy as np

from .entropy_sample import entropy_sample

[docs] def entropy_quadratic(signal, delay=1, dimension=2, tolerance="sd", **kwargs): """**Quadratic Sample Entropy (QSE)** Compute the quadratic sample entropy (QSE) of a signal. It is essentially a correction of SampEn introduced by Lake (2005) defined as: .. math:: QSE = SampEn + ln(2 * tolerannce) QSE has been described as a more stable measure of entropy than SampEn (Gylling, 2017). Parameters ---------- signal : Union[list, np.array, pd.Series] The signal (i.e., a time series) in the form of a vector of values. delay : int Time delay (often denoted *Tau* :math:`\\tau`, sometimes referred to as *lag*) in samples. See :func:`complexity_delay` to estimate the optimal value for this parameter. dimension : int Embedding Dimension (*m*, sometimes referred to as *d* or *order*). See :func:`complexity_dimension` to estimate the optimal value for this parameter. tolerance : float Tolerance (often denoted as *r*), distance to consider two data points as similar. If ``"sd"`` (default), will be set to :math:`0.2 * SD_{signal}`. See :func:`complexity_tolerance` to estimate the optimal value for this parameter. **kwargs : optional Other arguments. See Also -------- entropy_sample Returns ---------- qse : float The uadratic sample entropy of the single time series. info : dict A dictionary containing additional information regarding the parameters used to compute sample entropy. Examples ---------- .. ipython:: python import neurokit2 as nk signal = nk.signal_simulate(duration=2, frequency=5) qsa, parameters = nk.entropy_quadratic(signal, delay=1, dimension=2) qsa References ---------- * Huselius Gylling, K. (2017). Quadratic sample entropy as a measure of burstiness: A study in how well Rényi entropy rate and quadratic sample entropy can capture the presence of spikes in time-series data. * Lake, D. E. (2005). Renyi entropy measures of heart rate Gaussianity. IEEE Transactions on Biomedical Engineering, 53(1), 21-27. """ sampen, info = entropy_sample( signal, delay=delay, dimension=dimension, tolerance=tolerance, **kwargs, ) return sampen + np.log(2 * info["Tolerance"]), info