Skip to main content
# TS-Anomaly-Guard

**TS-Anomaly-Guard** es un motor estadístico de alto rendimiento, interpretable y ultrarrápido diseñado para la detección de anomalías y cambios estructurales de régimen (*Level Shifts*) en series temporales financieras y corporativas.

Desarrollado para resolver la opacidad y los falsos positivos de los modelos tradicionales de Machine Learning, **TS-Anomaly-Guard** diferencia de forma nativa entre **outliers puntuales** (picos aislados) y **cambios de régimen duraderos** (escalamiento de negocio), permitiendo procesar desde archivos locales de Excel hasta millones de registros agrupados en **PySpark / Databricks**.

---

## Características Clave

* **100% Interpretable:** Basado en métricas robustas ($MAD$, *Modified Z-Score*, distancias cuantílicas) auditables por equipos de riesgo y auditoría.
* **Detección de Level Shift:** Distingue cuándo un negocio cambia de escala o nivel operativo de forma permanente sin generar falsos positivos en los meses posteriores.
* **Agnóstico a la Fuente de Datos:** Soporte nativo para lectura desde pandas DataFrames, archivos Excel (`.xlsx`), CSV y consultas SQL directas (`SQLAlchemy`).
* **Escalabilidad Gradual:** Ejecución en serie, multiprocesamiento paralelo local (`n_jobs`) e integración nativa con clústeres de **PySpark** (`groupBy.applyInPandas`).

---

## Instalación

Instalación estándar:
```bash
pip install ts-anomaly-guard

Instalación con soporte para Big Data (PySpark):

pip install "ts-anomaly-guard[spark]"

Uso Rápido

1. Auditoría Local (Excel / Pandas)

import pandas as pd
from ts_anomaly_guard import AnomalyGuard

# Carga de datos
df = pd.read_excel("contabilidad_fiduciaria.xlsx")

# Inicializar motor con umbrales ajustables
guard = AnomalyGuard(
    date_col="fecha",
    value_col="monto",
    group_col="id_fideicomiso",  # Opcional: para auditar múltiples negocios a la vez
    z_threshold=2.5,
    rolling_window=3
)

# Ejecutar auditoría
results = guard.detect(df)

# Filtrar hallazgos relevantes
alertas = results[results["is_anomaly"]][["id_fideicomiso", "fecha", "monto", "anomaly_type"]]
print(alertas)

2. Escalamiento Masivo en PySpark / Databricks

from ts_anomaly_guard.spark import process_spark_dataset

# DataFrame de PySpark con millones de registros de transacciones
spark_df = spark.table("db_fiduciario.transacciones")

# Ejecución distribuida por nodo
audited_spark_df = process_spark_dataset(
    spark_df=spark_df,
    date_col="fecha",
    value_col="monto",
    group_col="id_negocio",
    z_threshold=2.5
)

audited_spark_df.write.mode("overwrite").saveAsTable("db_fiduciario.anomalias_detectadas")

Clasificación de Alertas

Tipo de Alerta Descripción Criterio Estadístico
NORMAL Variación dentro de los límites operativos esperados. $Modified\ Z\text{-}Score < Umbral$
PUNCTUAL_ANOMALY Pico o caída abrupta aislada de un solo período. $Z\text{-}Score\ Local \ge Umbral$ sin cambio duradero de régimen
LEVEL_SHIFT Ruptura de régimen: el negocio escaló y se estabilizó en una nueva meseta. Discrepancia respecto a la mediana histórica anterior

📄 Licencia

Este proyecto está bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

 English version: [README_EN.md](README_EN.md)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ts_anomaly_guard-0.1.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ts_anomaly_guard-0.1.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file ts_anomaly_guard-0.1.0.tar.gz.

File metadata

  • Download URL: ts_anomaly_guard-0.1.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.3

File hashes

Hashes for ts_anomaly_guard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d7f4c75c82e375d631a1595d52c1289b302011f712d28754a690c6ceb717bf3c
MD5 5d66f4184f8dc67551e10209139b198b
BLAKE2b-256 c8bf723b5d6b87b757d4fb46a8daa3abf428d7ca896791819a230240ac883ce2

See more details on using hashes here.

File details

Details for the file ts_anomaly_guard-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ts_anomaly_guard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a962f5a253d8594d1d53b615329815ce3656339f6402eb123b8a74c6b0b7607b
MD5 573800955a3dd1d33a2426beb2017c3c
BLAKE2b-256 6ae446c267ffe115e455d2d6ca22b78c2723c73ba14dc2546e935af4e27fb790

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page