Synchrony Analysis
Synchrony analysis evaluates dependence between two or more entropy streams.
Implemented in openentropy_core::synchrony.
What it is: A cross-stream coupling analysis for shared information and event synchronization.
Use it for: Detecting whether two or more streams are influenced by common causes.
Input shape: Two streams for pair methods; three or more for global event detection.
Use this when
Section titled “Use this when”- You have 2+ streams and want coupling/synchronization evidence.
- You suspect shared external events affecting multiple sources at once.
- Cross-correlation alone is insufficient and you need MI/coherence/event overlap.
Methods
Section titled “Methods”mutual_information: shared-information estimate with normalized MIphase_coherence: binary sign-coherence proxy (not Hilbert phase extraction)cross_sync: lagged cross-correlation and best lagglobal_event_detection: simultaneous outlier events across multiple streamssynchrony_analysis: one-call pairwise orchestrator
Requires 2+ sources:
openentropy analyze clock_jitter sleep_jitter --synchronyPython SDK
Section titled “Python SDK”from openentropy import synchrony_analysis, mutual_information, global_event_detection
pair = synchrony_analysis(data_a, data_b)mi = mutual_information(data_a, data_b)global_events = global_event_detection([data_a, data_b, data_c])Rust SDK
Section titled “Rust SDK”use openentropy_core::{synchrony_analysis, mutual_information, global_event_detection};
let pair = synchrony_analysis(&data_a, &data_b);let mi = mutual_information(&data_a, &data_b);let events = global_event_detection(&[&data_a, &data_b, &data_c]);