Skip to content

Generalized interface for multivariate multiscale methods. #139

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kahaaga opened this issue Oct 23, 2022 · 3 comments
Open

Generalized interface for multivariate multiscale methods. #139

kahaaga opened this issue Oct 23, 2022 · 3 comments
Assignees
Labels
enhancement New feature or request that is non-breaking new method

Comments

@kahaaga
Copy link
Member

kahaaga commented Oct 23, 2022

Describe the feature you'd like to have

With #132, we'll have a nice interface for computing any multiscale entropy or complexity measure of a timeseries x, as long as a relevant MultiScaleAlgorithm and corresponding downsample method is defined.

However, we haven't yet implemented methods for multivariate input. This is used for example in Morabito et al. (2012), where the compute the multivariate multiscale permutation entropy.

If possible, sketch out an implementation strategy

Implementing this is probably straight-forward. We just need to define downsample(::MultiScaleAlgorithm, x::AbstractDataset).

I'm just submitting this issue to remember actually doing so.

Cite scientific papers related to the feature/algorithm

Morabito, F. C., Labate, D., Foresta, F. L., Bramanti, A., Morabito, G., & Palamara, I. (2012). Multivariate multi-scale permutation entropy for complexity analysis of Alzheimer’s disease EEG. Entropy, 14(7), 1186-1202.

@kahaaga kahaaga added enhancement New feature or request that is non-breaking new method labels Oct 23, 2022
@kahaaga kahaaga self-assigned this Oct 23, 2022
@Datseris
Copy link
Member

downsample(a::MultiScaleAlgorithm, x::AbstractDataset) = Dataset(map(t -> downsample(a, t), columns(x))...) ?

@kahaaga
Copy link
Member Author

kahaaga commented Oct 23, 2022

downsample(a::MultiScaleAlgorithm, x::AbstractDataset) = Dataset(map(t -> downsample(a, t), columns(x))...) ?

Excellent. This will work generically. I'll add this to #132 straight away.

@kahaaga
Copy link
Member Author

kahaaga commented Oct 26, 2022

Reminder: we have two existing signature for probabilities(x::AbstractVector, est::SymbolicPermutation) and probabilities(x::AbstractDataset, est::SymbolicPermutation). The multivariate permutation approach (ignored the multi-scale aspect for now) conflicts with the latter. We need to decide on what to do about that. Perhaps it is best to replace the latter method with one that interprets each column of x as a timeseries, rather than interpreting the rows of x as pre-embedded state vectors to be symbolized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request that is non-breaking new method
Projects
None yet
Development

No branches or pull requests

2 participants