JuliaDynamics / RecurrenceAnalysis.jl

Recurrence Quantification Analysis in Julia
https://juliadynamics.github.io/RecurrenceAnalysis.jl/stable/
MIT License
44 stars 12 forks source link

Calculation of RQA parameters for "white vertical structures" #24

Closed heliosdrm closed 5 years ago

heliosdrm commented 5 years ago

Create the dedicated functions, and extend rqa to support the new related keys.

heliosdrm commented 5 years ago

@pucicu: what parameters should be included?

On the other hand, what estimate to recurrence times do you recommend? (a) distance between starting points of vertical recurrent structures (b) length of vertical "white lines"

Both are easy to calculate and can be provided if necessary, but I wonder whether that would be complicating the interface too much...

EDIT: or we can calculate the average of (a) and (b), as a tradeoff.

pucicu commented 5 years ago

The best would be to use the middle point of the vertical recurrence lines in the RP (see Fig. 1.4 in the book chapter N. Marwan, C. L. Webber, Jr.: Mathematical and Computational Foundations of Recurrence Quantifications, Recurrence Quantification Analysis – Theory and Best Practices, Eds.: C. L. Webber, Jr. and N. Marwan, Springer, Cham, 3–43 (2015). DOI:10.1007/978-3-319-07155-8_1 http://dx.doi.org/10.1007/978-3-319-07155-8_1). This corresponds more or less to an average of (a) and (b) – but it is not really the average, therefore, just averaging of both would not work.

Regarding the other question: I suggest to include Mean recurrence time, Recurrence time entropy, but also the most probable recurrence time.

Thanks for your great work! It is really exciting to see this rapid progress!

Am 03.01.2019 um 03:03 schrieb Helios De Rosario notifications@github.com:

@pucicu https://github.com/pucicu: what parameters should be included?

Mean recurrence time Recurrence time entropy Maximum recurrence time ... other? On the other hand, what estimate to recurrence times do you recommend? (a) distance between starting points of vertical recurrent structures (b) length of vertical "white lines"

Both are easy to calculate and can be provided if necessary, but I wonder whether that would be complicating the interface too much...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JuliaDynamics/RecurrenceAnalysis.jl/issues/24#issuecomment-451039719, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7WkN7Z_fX8x5JMJJPCd9zhWh_CiqAtks5u_WUBgaJpZM4Zld93.

heliosdrm commented 5 years ago

About the most probable recurrence time: what is the criterion when there are ties? (i.e. an histogram of recurrence times with two or more bins equal to the maximum)

pucicu commented 5 years ago

hm, good question. I haven’t thought about this. perhaps just average the both values? would make sense, in my opinion.

Am 05.01.2019 um 19:25 schrieb Helios De Rosario notifications@github.com:

About the most probable recurrence time: what is the criterion when there are ties? (i.e. an histogram of recurrence times with two or more bins equal to the maximum)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JuliaDynamics/RecurrenceAnalysis.jl/issues/24#issuecomment-451679139, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7WkIRzkfM3fJQT_86PmfGR0zMs2Zmtks5vAO4VgaJpZM4Zld93.

heliosdrm commented 5 years ago

Well, I have read Ngamga's paper (DOI: 10.1103/PhysRevE.75.036222), and realized that there is no such ambiguity: it is not the "most probable recurrence time", but the "number of the most probable recurrence time", i.e. the size of the maximum bin in the histogram, not its position. So ties are not an issue anymore.

heliosdrm commented 5 years ago

I'm about finishing this. My main remaining doubt is about the names of the functions to calculate those parameters. Following Julia's style guide I propose this:

The "N" in the last key comes is present in the acronym given in Ngnamga's paper, standing for "number of the most probable recurrence time" (NMPRT), which is a more accurate description. (To be consistent the function name should be something like "number_mostprobable_recurrencetime", but I think that it is just too much...

Yet another doubt is if, to keep consistency between names, we should use mean_recurrencetime instead of meanrecurrencetime, and rqa_entropy instead of rqaentropy (cf. #30). Both "squashed names" are readable, but perhaps it is easer to remember them if the words "entropy" and "recurrencetime" are always separated by an underscore.

Datseris commented 5 years ago

I'd propose to name the function nmprt instead of the current long names. Maybe not very readable, true, but the other names suffer from extreme verbosity. Coupling two words together (or using a 3rd small like is or mean) is the limit I've found from experience. For more than that, it becomes too verbose and lengthy to be beneficial. This also means that I think meanrecurrencetime is okay.

For the entropy, I suggest rt_entropy. And taking the opportunity, maybe it is worth also changing rqaentropy not to rqa_entropy but instead to dl_entropy from "diagonal lengths entropy".

Honestly, the functions offered by RecurrenceAnalysis are so many that I think one should always have a tab of the documentation page open just to be on the safe side :D so I wouldn't be too concerned with this in the end of the day!

pucicu commented 5 years ago

hi,

i agree with george. well done!

best norbert

Am 07.01.2019 um 13:22 schrieb George Datseris notifications@github.com:

I'd propose to name the function nmprt instead of the current long names. Maybe not very readable, true, but the other names suffer from extreme verbosity. Coupling two words together (or using a 3rd small like is or mean) is the limit I've found from experience. For more than that, it becomes too verbose and lengthy to be beneficial. This also means that I think meanrecurrencetime is okay.

For the entropy, I suggest rt_entropy. And taking the opportunity, maybe it is worth also changing rqaentropy not to rqa_entropy but instead to dl_entropy from "diagonal lengths entropy".

Honestly, the functions offered by RecurrenceAnalysis are so many that I think one should always have a tab of the documentation page open just to be on the safe side :D so I wouldn't be too concerned with this in the end of the day!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JuliaDynamics/RecurrenceAnalysis.jl/issues/24#issuecomment-451918193, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7WkLPsGAFPJnk46Gsv7gyPXlx488Umks5vAzwUgaJpZM4Zld93.