# 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)
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f4c75c82e375d631a1595d52c1289b302011f712d28754a690c6ceb717bf3c
|
|
| MD5 |
5d66f4184f8dc67551e10209139b198b
|
|
| BLAKE2b-256 |
c8bf723b5d6b87b757d4fb46a8daa3abf428d7ca896791819a230240ac883ce2
|
File details
Details for the file ts_anomaly_guard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ts_anomaly_guard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a962f5a253d8594d1d53b615329815ce3656339f6402eb123b8a74c6b0b7607b
|
|
| MD5 |
573800955a3dd1d33a2426beb2017c3c
|
|
| BLAKE2b-256 |
6ae446c267ffe115e455d2d6ca22b78c2723c73ba14dc2546e935af4e27fb790
|