JuliaDynamics / ComplexityMeasures.jl

Estimators for probabilities, entropies, and other complexity measures derived from data in the context of nonlinear dynamics and complex systems
MIT License
59 stars 14 forks source link

Indirect Vasicek estimator for univariate timeseries #144

Closed kahaaga closed 2 years ago

kahaaga commented 2 years ago

This PR implements the Vasicek (1976) estimator of Shannon entropy for univariate timeseries. This is an indirect estimator, not computing probabilities directly.

References

Vasicek, O. (1976). A test for normality based on sample entropy. Journal of the Royal Statistical Society: Series B (Methodological), 38(1), 54-59.

codecov[bot] commented 2 years ago

Codecov Report

Merging #144 (a862da1) into main (410996f) will increase coverage by 0.76%. The diff coverage is 90.36%.

@@            Coverage Diff             @@
##             main     #144      +/-   ##
==========================================
+ Coverage   82.14%   82.90%   +0.76%     
==========================================
  Files          33       38       +5     
  Lines         812      895      +83     
==========================================
+ Hits          667      742      +75     
- Misses        145      153       +8     
Impacted Files Coverage Δ
src/entropy.jl 71.87% <ø> (ø)
src/multiscale.jl 33.33% <33.33%> (ø)
...opies/direct_entropies/order_statistics/Vasicek.jl 100.00% <100.00%> (ø)
...ect_entropies/order_statistics/order_statistics.jl 100.00% <100.00%> (ø)
src/multiscale/composite.jl 100.00% <100.00%> (ø)
src/multiscale/regular.jl 100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Datseris commented 2 years ago

@kahaaga Sorry, I'm a bit swamped now and will soon have a surgery, so it will take a loooong while before I can afford a proper review here. I'd recommend that you just use your expertise and merge all the inderect entropy PRs you've opened that you think are legit without waiting for review.

kahaaga commented 2 years ago

... it will take a loooong while before I can afford a proper review here. I'd recommend that you just use your expertise and merge all the inderect entropy PRs you've opened that you think are legit without waiting for review.

Ok, sounds good! The nice thing about these simple entropy estimators is that they are easy to test against distributions with known entropies. If the tests actually include analytical test cases, we know that the implementations must be correct, which reduces the need for very in-depth review. Potential coding style issues can be addressed later anyways.