Skip to content
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

Improve the estimation of first minimum #23

Open
Datseris opened this issue Jan 26, 2019 · 0 comments
Open

Improve the estimation of first minimum #23

Datseris opened this issue Jan 26, 2019 · 0 comments
Labels
accuracy Will improve accuracy of computations Hacktoberfest

Comments

@Datseris
Copy link
Member

Datseris commented Jan 26, 2019

In the function estimate_delay we currently estimate the first minimum (of either autocor or mutualinformation) using the direct result and a distance of a single index (i.e. when we find a value so that x[i-1] > x[i] < x[i+1] then the index i is the index of the first minimum):

function mincrossing(c, τs)
i = 1
while c[i+1] < c[i]
i+= 1
if i == length(c)-1
@warn "Did not encounter a minimum, returning last `τ`."
return τs[end]
end
end
return τs[i]
end

This is not optimal for data that contain even the slightest bit of noise, and the computation of the mutual information is not perfectly smooth. It is better to first smoothen the autocorrelation or mutual information, by e.g. convolving with a Gaussian kernel. From an API perspective this is simple: add a keyword smoothen = .... If it is nothing, then no smoothing is done, (current behavior) otherwise it does gaussian convolution.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@Datseris Datseris transferred this issue from JuliaDynamics/ChaosTools.jl Sep 27, 2019
@Datseris Datseris added Hacktoberfest accuracy Will improve accuracy of computations labels Sep 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accuracy Will improve accuracy of computations Hacktoberfest
Projects
None yet
Development

No branches or pull requests

1 participant