Statistical correlation between time-series and discrete events with optional LLM narration
Project description
chrono-correlator
A generic statistical engine that correlates time-series data with discrete events using Mann-Whitney U, and narrates results with an LLM only when p < 0.05.
Install
pip install chrono-correlator
Quick start
from datetime import datetime, timedelta
from chrono_correlator import Event, Metric, evaluate, narrate
base = datetime(2024, 1, 1)
events = [
Event(timestamp=base + timedelta(days=d), label="migraine")
for d in [10, 20, 30]
]
timestamps = [base + timedelta(hours=h) for h in range(800)]
values = [55.0] * 800
for day in [10, 20, 30]:
for h in range(48):
idx = day * 24 - 48 + h
if 0 <= idx < 800:
values[idx] = 28.0
hrv = Metric(name="hrv", timestamps=timestamps, values=values)
report = evaluate(events, [hrv])
print(f"Level: {report.level} — {report.active_signals}/{report.total_signals} signals")
if report.level != "green":
report = narrate(report, provider="groq")
print(report.narrative)
How it works
- Statistical core: For each metric, values in the 48 h before each event are compared against a 28-day baseline using Mann-Whitney U. Effect size is computed as rank-biserial correlation.
- Alert level: Active signals (p < 0.05) are counted across all metrics. 1–2 → green, 3–4 → yellow, 5–7 → red.
- LLM narration: Only triggered on yellow or red. The model receives pre-calculated statistics and is constrained to one factual sentence per signal — no diagnosis, no causal inference.
Use cases
- Health monitoring — correlate HRV, deep sleep, or skin temperature drops with migraine or crisis events.
- Infrastructure — detect latency or error-rate anomalies preceding service outages.
- IPTV / streaming — link buffering load spikes to subscriber disconnection events.
- Energy consumption — associate power demand patterns with grid stress or equipment failures.
License
GPL-3.0 — Raúl Gallardo (g3v3r)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chrono_correlator-0.4.0.tar.gz.
File metadata
- Download URL: chrono_correlator-0.4.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4f5a732a2b9f2d905cc64476291d93ecb206868575eb9e7d43156ee0c1073e7
|
|
| MD5 |
d94112ea0853a3f855662bb3aa3b94e2
|
|
| BLAKE2b-256 |
77b7a35e2998e7c3968d9f9330e44a17eef85987268cd604d5595a07203ee106
|
File details
Details for the file chrono_correlator-0.4.0-py3-none-any.whl.
File metadata
- Download URL: chrono_correlator-0.4.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8332fcc9be65f5e5f65e2f4d51b7933a82c75d68d35dbd8012f474b086bc30df
|
|
| MD5 |
eb878d3042743c2c28935b395a0b9dbc
|
|
| BLAKE2b-256 |
8c9acac45bc1e98d63441f547c43cc67f8f62a79c2116b5d87689ce3c44fed1e
|