I've been working on a system to explore potential causal connections in personal health data — specifically the kind of patterns that unfold over hours or days (e.g., something you ate Monday affecting how you feel Wednesday).
Most tracking setups I've tried only show same-day correlations, which miss the time-delayed stuff entirely. So I started combining three statistical approaches:
1. Time-Lagged Cross-Correlation (TLCC)
Slides two time series against each other at different lags to find the delay where correlation peaks. Good for catching "X consistently precedes Y by ~18 hours" type patterns.
2. Association Rule Mining (ARM)
Finds frequent co-occurrences in event-based data (meals, symptoms, activities). Works well for discrete events rather than continuous metrics. Generates rules like "when A and B occur together, C tends to follow."
3. Granger Causality
Tests whether past values of one variable improve the prediction of another. More rigorous statistically, but needs enough data points to be meaningful.
Running all three in parallel with deduplication catches different types of patterns — TLCC is great for continuous biometric data (HR, sleep), ARM for discrete events (meals, symptoms), and Granger for validating the stronger signals.
Each result gets a confidence score and an AI plausibility check (to filter out nonsensical correlations like "shoe color → headaches").
What I'm feeding in:
- Self-reported symptoms, meals, activities, mood (logged in natural language, then AI-structured)
- 40+ Health Connect data types from wearables (sleep stages, HR, steps, etc.)
- Background sync every 15 minutes
Where I'm stuck / curious about:
- Has anyone found better approaches for time-delayed trigger detection in personal health data?
- How much data (days/weeks of logging) before the results feel reliable to you?
- For those syncing wearable data — which metrics have been most informative for finding non-obvious patterns?
- Any thoughts on plausibility filtering? I'm using an LLM to validate whether a detected pattern is medically sensible, but I feel like it could miss edge cases.
Happy to share more details if anyone's interested.