# 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, varargin)

MSobject creates an object to store multiscale entropy parameters.

[Mobj] = MSobject()

Returns a multiscale entropy object (`Mobj`) based on that orignially proposed by Costa et al. (2002) 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, name, 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) entropies:

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

• `'XDistEn'` - Cross-Distribution Entropy

• `'XSpecEn'` - Cross-Spectral Entropy

Multivariate Entropies:

• `'MvSampEn2D'` - Multivariate Sample Entropy

• `'MvFuzzEn2D'` - Multivariate Fuzzy Entropy

• `'MvDispEn2D'` - Multivariate Dispersion Entropy

• `'MvCoSiEn2D'` - Multivariate Cosine Similarity Entropy

• `'MvPermEn2D'` - Multivariate Permutation Entropy

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

The following functions use the multiscale entropy object shown above.

MvMSEn(Data, Mobj, varargin)

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 `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, name, value, …)

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

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

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

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 information on multiscale graining procedures, see the EntropyHub guide

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

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, Mobj, varargin)

cMvMSEn returns the composite and 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 `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 `cMvMSEn` may return negative entropy values if the base multivariate entropy function is `MvSampEn` and `MvFuzzEn`, even for stochastic processes…

[MSx, CI] = cMvMSEn(Data, Mobj, name, value, …)

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

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

Refined:
• Refined-composite MSEn method.

When `Refined == true` and the entropy function specified by `Mobj` is `MvSampEn` or `MvFuzzEn`, `cMvMSEn` returns the refined-composite multivariate nmultiscale 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)

MSobject, MSEn, rMSEn, hMSEn, XMSEn, cXMSEn, SampEn, ApEn,

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.