Katz - Marco de análisis de series temporales
El objetivo de Kats es proporcionar la ventanilla única para el análisis de series temporales, desde la comprensión de las estadísticas clave y la detección de anomalías, hasta la previsión de tendencias, la extracción/incrustación de características, el análisis multivariante, etc.
El análisis de series temporales es un dominio fundamental en la ciencia de datos y el aprendizaje automático, con aplicaciones masivas en diversos sectores como el comercio electrónico, las finanzas, la planificación de capacidades, la gestión de la cadena de suministro, la medicina, la meteorología, la energía, la astronomía y muchos otros.
Análisis de series temporales
El análisis de series temporales, como técnica estadística, se utiliza para examinar y modelizar datos dependientes del tiempo. Algunas características comunes de las herramientas de análisis de series temporales son:
- Descomposición de series temporales: la capacidad de descomponer una serie temporal en sus partes componentes, como la tendencia, la estacionalidad y los residuos.
- Previsión: la capacidad de predecir valores futuros de una serie temporal basándose en datos pasados
- Detección de anomalías: capacidad de identificar comportamientos inusuales o inesperados en una serie temporal
- Análisis multivariante: capacidad de analizar múltiples series temporales simultáneamente, teniendo en cuenta las relaciones entre ellas
- Extracción/incrustación de características: la capacidad de extraer características significativas de los datos de las series temporales o de representar los datos de las series temporales en un espacio de dimensiones inferiores para su posterior análisis.
Estos son sólo algunos ejemplos de los tipos de funcionalidad que puede incluir una herramienta de análisis de series temporales. Veamos lo que Kats puede proporcionarnos.
Kats es una ventanilla única
Kats es un marco ligero, fácil de usar y generalizable para el análisis genérico de series temporales, que incluye la previsión, la detección de anomalías, el análisis multivariante y la extracción/incrustación de características.
Kats es la primera biblioteca completa de Python para el análisis genérico de series temporales, que proporciona técnicas clásicas y avanzadas para modelar datos de series temporales.
Kats conecta varios dominios en el análisis de series temporales, donde los usuarios pueden explorar las características básicas de sus datos de series temporales, predecir los valores futuros, monitorizar las anomalías, e incorporarlas a sus modelos y pipelines ML.
Qué hace
Kats proporciona un conjunto de algoritmos y modelos para cuatro dominios en el análisis de series temporales: previsión, detección, extracción e incrustación de características y análisis multivariante.
Previsión: Kats proporciona un conjunto completo de herramientas para la previsión que incluye más de 10 modelos de previsión individuales, ensamblaje, un modelo de aprendizaje autosupervisado (metaaprendizaje), backtesting, ajuste de hiperparámetros e intervalos de predicción empíricos.
Detección: Kats soporta funcionalidades para detectar varios patrones en datos de series temporales, incluyendo estacionalidades, valores atípicos, puntos de cambio y cambios de tendencia lentos.
Extracción e incrustación de características: El módulo de extracción de características de series temporales (TSFeature) de Kats puede producir 65 características con definiciones estadísticas claras, que pueden incorporarse a la mayoría de los modelos de aprendizaje automático (ML), como la clasificación y la regresión.
Utiles utilidades: Kats también proporciona un conjunto de utilidades útiles, como simuladores de series temporales.
Instalación en Python
Kats está en PyPI, por lo que puede utilizar pip
para instalarlo.
|
|
Ejemplo de previsión
Utilización del modelo Prophet
para pronosticar el conjunto de datos air_passengers
.
|
|
Ejemplos de detección
Con Kats se pueden obtener las siguientes inferencias:
- Detección de anomalías: Detecta un aumento o disminución anómalo dentro de la serie temporal.
- Detección de puntos de cambio: Detecta cambios repentinos en la serie temporal. Existen 3 algoritmos diferentes en Kats para este proceso:
- Detección CUSUM
- Detección Bayesiana en Línea de Puntos de Cambio (BOCPD)
- Detección Stat Sig
- Detección de cambios de tendencia: Detecta los cambios de tendencia de las series temporales utilizando el algoritmo de Detección de Mann-Kendall.
Detección de valores atípicos
Se requiere un mínimo de 24 líneas de datos para la detección de valores atípicos.
|
|
Los valores atípicos detectados con Kats también pueden limpiarse con la ayuda de Kats. Kats ofrece 2 métodos para ello:
- Sin interpolación: Rellena los valores atípicos con NaN sin aplicar la operación de interpolación.
- Con Interpolación: Rellena los valores atípicos aplicando interpolación lineal.
Detección de puntos de cambio
Con Kats es posible detectar los puntos de cambio en las series temporales. Existen 3 algoritmos diferentes en Kats para este proceso:
- CUSUMDetector
- BOCPDetector
- RobustStatDetector
Utilización del algoritmo de detección CUSUM
en un conjunto de datos simulados.
|
|
Detección del cambio de tendencia
También es posible detectar la dirección de la tendencia de una serie con Kats. Kats utiliza el algoritmo MKDetector para este proceso. La base de este algoritmo es la prueba de Mann-Kendall, que es una prueba no paramétrica.
|
|
Enlaces útiles
- Homepage: https://facebookresearch.github.io/Kats/
- Kats Python package: https://pypi.org/project/kats/0.1.0/
- Facebook Engineering: https://engineering.fb.com/2021/06/21/open-source/kats/
- Source code repository: https://github.com/facebookresearch/kats
- Contributing: https://github.com/facebookresearch/Kats/blob/master/CONTRIBUTING.md
- Tutorials: https://github.com/facebookresearch/Kats/tree/master/tutorials
Conclusión
Kats es una herramienta de análisis de series temporales que utiliza un método de metalearning para identificar el modelo más adecuado y los parámetros correspondientes para una serie temporal dada. Para ello, utiliza metadatos obtenidos con TSFeatures y aplica el algoritmo Random Forest para determinar el mejor modelo basándose en estos metadatos. Esta función de Kats permite a los usuarios crear su propia herramienta de aprendizaje automático de máquinas (autoML).