Multivariate Multiscale Entropies

Functions for estimating the multivariate multiscale entropy of a multivariate dataset.

Multivariate multiscale entropy can be calculated using any of the Multivariate Entropies: MvCoSiEn, MvDispEn, MvFuzzEn, MvPermEn, MvSampEn.

Important

Multivariate multiscale entropy functions have two positional arguments:

  1. the multivariate dataset, Data, a N (>10) x M (>1) matrix

  2. the multiscale entropy object, Mobj.


MSobject(EnType='SampEn', **kwargs)

MSobject creates an object to store multiscale entropy parameters.

[Mobj] = MSobject() 

Returns a multiscale entropy object (Mobj) based on that originally proposed by Costa et al. using the following default parameters: EnType = ‘SampEn’, embedding dimension = 2, time delay = 1, radius = 0.2*SD(Sig), logarithm = natural

[Mobj] = MSobject(EnType)

Returns a multiscale entropy object using the specified entropy method (EnType) and the default parameters for that entropy method. To see the default parameters for a particular entropy method, type: help(EnType) (e.g. help(SampEn))

[Mobj] = MSobject(EnType, keyword = value, ...)

Returns a multiscale entropy object using the specified entropy method (EnType) and the name/value parameters for that particular method. To see the default parameters for a particular entropy method, type: help(EnType) (e.g. help(SampEn))

EnType can be any of the following (case sensitive) string names:

Base Entropies:
'ApEn':
  • Approximate Entropy

'SampEn':
  • Sample Entropy

'FuzzEn':
  • Fuzzy Entropy

'K2En':
  • Kolmogorov Entropy

'PermEn':
  • Permutation Entropy

'CondEn':
  • Conditional Entropy

'DistEn':
  • Distribution Entropy

'DispEn':
  • Dispersion Entropy

'SpecEn':
  • Spectral Entropy

'SyDyEn':
  • Symbolic Dynamic Entropy

'IncrEn':
  • Increment Entropy

'CoSiEn':
  • Cosine Similarity Entropy

'PhasEn':
  • Phase Entropy

'SlopEn':
  • Slope Entropy

'BubbEn':
  • Bubble Entropy

'GridEn':
  • Grid Distribution Entropy

'EnofEn':
  • Entropy of Entropy

'AttnEn':
  • Attention Entropy

'DivEn':
  • Diversity Entropy

'RangEn':
  • Range Entropy

Cross Entropies:
'XApEn':
  • Cross-Approximate Entropy

'XSampEn':
  • Cross-Sample Entropy

'XFuzzEn':
  • Cross-Fuzzy Entropy

'XK2En':
  • Cross-Kolmogorov Entropy

'XPermEn':
  • Cross-Permutation Entropy

'XCondEn':
  • Cross-Conditional Entropy (corrected)

'XDistEn':
  • Cross-Distribution Entropy

'XSpecEn':
  • Cross-Spectral Entropy

Multivariate Entropies:
'MvSampEn':
  • Multivariate Sample Entropy

'MvFuzzEn':
  • Multivariate Fuzzy Entropy

'MvDispEn':
  • Multivariate Dispersion Entropy

'MvCoSiEn':
  • Multivariate Cosine Similarity Entropy

'MvPermEn':
  • Multivariate Permutation Entropy

See also:

MSEn, MvMSEn, cMSEn, cMvMSEn, rMSEn, hMSEn, XMSEn, rXMSEn, cXMSEn, hXMSEn


The following functions use the multiscale entropy object shown above.


MvMSEn(Data, Mbjx, Scales=3, Methodx='coarse', Plotx=False)

MvMSEn Returns the multivariate multiscale entropy of a multivariate dataset.

MSx,CI = MvMSEn(Data, Mobj) 

Returns a vector of multivariate multiscale entropy values (MSx) and the complexity index (CI) of the data sequences in Data using the parameters specified by the multiscale object (Mobj) over 3 temporal scales with coarse- graining (default).

Caution

By default, the MvSampEn and MvFuzzEn multivariate entropy algorithms estimate entropy values using the “full” method by comparing delay vectors across all possible m+1 expansions of the embedding space as applied in [1]. These methods are not lower-bounded to 0, like most entropy algorithms, so MvMSEn may return negative entropy values if the base multivariate entropy function is MvSampEn and MvFuzzEn, even for stochastic processes…

MSx,CI = MvMSEn(Data, Mobj, keyword = value, ...)

Returns a vector of multivariate multiscale entropy values (MSx) and the complexity index (CI) of the data sequences in Data using the parameters specified by the multiscale object (Mobj) and the following keyword arguments:

Scales:
  • Number of temporal scales, an integer > 1 (default: 3)

Methodx:
  • Graining method, one of the following: [default: 'coarse'] {'coarse', 'modified', 'generalized'}

Plotx:
  • When Plotx == True, returns a plot of the entropy value at each time scale (i.e. the multiscale entropy curve) [default: False]

For further info on these graining procedures see the EntropyHub guide.

See also:

MSobject, cMvMSEn, MvFuzzEn, MvSampEn, MvPermEn, MvCoSiEn, MvDispEn

References:
[1] Ahmed Mosabber Uddin, Danilo P. Mandic

“Multivariate multiscale entropy analysis.” IEEE signal processing letters 19.2 (2011): 91-94.

[2] Madalena Costa, Ary Goldberger, and C-K. Peng,

“Multiscale entropy analysis of complex physiologic time series.” Physical review letters 89.6 (2002): 068102.

[3] Vadim V. Nikulin, and Tom Brismar,

“Comment on “Multiscale entropy analysis of complex physiologic time series”.” Physical Review Letters 92.8 (2004): 089803.

[4] Madalena Costa, Ary L. Goldberger, and C-K. Peng.

“Costa, Goldberger, and Peng reply.” Physical Review Letters 92.8 (2004): 089804.

[5] Madalena Costa, Ary L. Goldberger and C-K. Peng,

“Multiscale entropy analysis of biological signals.” Physical review E 71.2 (2005): 021906.

[6] Ranjit A. Thuraisingham and Georg A. Gottwald,

“On multiscale entropy analysis for physiological data.” Physica A: Statistical Mechanics and its Applications 366 (2006): 323-332.

[7] Ahmed Mosabber Uddin, Danilo P. Mandic

“Multivariate multiscale entropy: A tool for complexity analysis of multichannel data.” Physical Review E 84.6 (2011): 061918.

cMvMSEn(Data, Mbjx, Scales=3, Refined=False, Plotx=False)

cMvMSEn Returns the composite + refined-composite multivariate multiscale entropy of a multivariate dataset.

MSx,CI = cMvMSEn(Data, Mobj) 

Returns a vector of composite multivariate multiscale entropy values (MSx) and the complexity index (CI) of the data sequences in Data using the parameters specified by the multiscale object (Mobj) over 3 temporal scales with coarse- graining (default).

Caution

By default, the MvSampEn and MvFuzzEn multivariate entropy algorithms estimate entropy values using the “full” method by comparing delay vectors across all possible m+1 expansions of the embedding space as applied in [1]. These methods are not lower-bounded to 0, like most entropy algorithms, so MvMSEn may return negative entropy values if the base multivariate entropy function is MvSampEn and MvFuzzEn, even for stochastic processes…

MSx, CI = cMvMSEn(Data, Mobj, Refined = True) 

Returns a vector of refined-composite multiscale entropy values (MSx) for the data sequences in (Data) using the parameters specified by the multiscale object (Mobj) using the refined-composite multivariate multiscale entropy method (rcMSE) over 3 temporal scales. When Refined == True, the base entropy method must be MvSampEn or MvFuzzEn. If the entropy method is MvSampEn, cMvMSEn employs the method described in [1]. If the entropy method is MvFuzzEn, cMvMSEn employs the method described in [5].

MSx,CI = cMvMSEn(Data, Mobj, keyword = value, ...)

Returns a vector of composite multivariate multiscale entropy values (MSx) and the complexity index (CI) of the data sequences in Data using the parameters specified by the multiscale object (Mobj) and the following keyword arguments:

Scales:
  • Number of temporal scales, an integer > 1 (default: 3)

Refined:
  • Refined-composite MvMSEn method. When Refined == True and the entropy function specified by Mobj is MvSampEn or MvFuzzEn, cMvMSEn returns the refined-composite multivariate multiscale entropy (rcMSEn) [default: False]

Plotx:
  • When Plotx == True, returns a plot of the entropy value at each time scale (i.e. the multiscale entropy curve) [default: False]

For further info on these graining procedures see the EntropyHub guide.

See also:

MSobject, MvMSEn, MvFuzzEn, MvSampEn, MvPermEn, MvCoSiEn, MvDispEn

References:
[1] Shuen-De Wu, et al.,

“Time series analysis using composite multiscale entropy.” Entropy 15.3 (2013): 1069-1084.

[2] Shuen-De Wu, et al.,

“Analysis of complex time series using refined composite multiscale entropy.” Physics Letters A 378.20 (2014): 1369-1374.

[3] Ahmed Mosabber Uddin, Danilo P. Mandic

“Multivariate multiscale entropy: A tool for complexity analysis of multichannel data.” Physical Review E 84.6 (2011): 061918.

[4] Ahmed Mosabber Uddin, Danilo P. Mandic

“Multivariate multiscale entropy analysis.” IEEE signal processing letters 19.2 (2011): 91-94.

[5] Azami, Alberto Fernández, Javier Escudero.

“Refined multiscale fuzzy entropy based on standard deviation for biomedical signal analysis.” Medical & biological engineering & computing 55 (2017): 2037-2052.