Algoritmos para la detección de anomalías en series temporales

24

Actualmente estoy usando AnomalyDetection de Twitter en R: https://github.com/twitter/AnomalyDetection . Este algoritmo proporciona detección de anomalías de series temporales para datos con estacionalidad.

Pregunta: ¿hay otros algoritmos similares a este (no importa controlar la estacionalidad)?

Estoy tratando de puntuar tantos algoritmos de series temporales como sea posible en mis datos para poder elegir el mejor / conjunto.

Eric Miller
fuente

Respuestas:

16

El algoritmo de Twitter se basa en

Rosner, B., (mayo de 1983), "Puntos porcentuales para un procedimiento generalizado de ESD", Technometrics, 25 (2), pp. 165-172

¡Estoy seguro de que ha habido muchas técnicas y avances desde 1983 !. He probado mis datos internos, y la detección de anomalías de Twitter no identifica valores atípicos obvios. También usaría otros enfoques para probar valores atípicos en series de tiempo. Lo mejor que he encontrado es el procedimiento de detección de valores atípicos de Tsay que se implementa en el software SAS / SPSS / Autobox y SCA. Todos los cuales son sistemas comerciales. También hay un paquete tsoutliers que es excelente pero necesita la especificación del arimamodelo para funcionar de manera eficiente. He tenido problemas con su valor predeterminado auto.arimacon respecto a la optimización y la selección del modelo.

El artículo de Tsay es un trabajo fundamental en la detección de valores atípicos en series de tiempo. Revista líder en investigación de pronósticos International Journal of Forecasting mencionó que el artículo de Tsay es uno de los trabajos más citados y los artículos más influyentes en un artículo vinculado anteriormente (ver también a continuación). La difusión de este importante trabajo y otros algoritmos de detección atípicos en el software de pronóstico (especialmente en el software de código abierto) es una rareza.

ingrese la descripción de la imagen aquí

pronosticador
fuente
14

Estas son las opciones para la detección de anomalías en R a partir de 2017.

Paquete de detección de anomalías de Twitter

  • Funciona mediante el uso de ESD híbrido estacional (SH-ESD);
  • Se basa en la prueba de ESD generalizada para detectar anomalías;
  • Puede detectar anomalías locales y globales;
  • Emplear descomposición de series temporales y métricas estadísticas robustas (p. Ej., Mediana junto con ESD)
  • Emplea aproximación por partes para series de tiempo largas;
  • También tiene un método para cuando las marcas de tiempo no están disponibles;
  • Puede especificar la dirección de las anomalías, la ventana de interés, alternar la aproximación por partes y tiene soporte visual.

Paquete de detección de anomalías (diferente al de Twitter)

  • varios enfoques que incluyen distancia de Mahalanobis, análisis factorial, análisis paralelo de Horn, inspección de bloques, análisis de componentes principales;
  • Tiene un método para lidiar con los resultados.

paquete tsoutliers

  • Detecta valores atípicos en series de tiempo siguiendo el procedimiento Chen y Liu ( https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents );
  • Los valores atípicos se obtienen en base a estimaciones 'menos contaminadas' de los parámetros del modelo, los efectos atípicos estimados utilizando la regresión lineal múltiple y estiman los parámetros y efectos del modelo de manera conjunta.
  • Considera valores atípicos innovadores, valores atípicos aditivos, cambios de nivel, cambios temporales y cambios de nivel estacionales.

acm anómala

  • Funciona calculando un vector de características en cada serie de tiempo (por ejemplo, incluye correlación de retraso, fuerza de estacionalidad, entropía espectral), luego aplica una descomposición robusta del componente principal en las características y finalmente aplica varios métodos de detección de valores atípicos bivariados a los primeros dos componentes principales;
  • Permite identificar las series más inusuales, basadas en sus vectores de características;
  • El paquete contiene conjuntos de datos reales y sintéticos de Yahoo.

paquete arcoiris

  • Utiliza diagramas de bolsas y diagramas de caja;
  • Identifica valores atípicos con menor profundidad o densidad.

paquete kmodR

  • Utiliza una implementación de k-means propuesta por Chawla y Gionis en 2013 ( http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21 );
  • Útil para crear (potencialmente) grupos más estrechos que los medios k estándar y al mismo tiempo encontrar valores atípicos de bajo costo en el espacio multidimensional.

método de lavado

La vista de tareas CRAN para métodos estadísticos robustos

  • Una variedad de enfoques para usar métodos estadísticos robustos para detectar valores atípicos.

EDITAR 2018

Anomalía: detección de anomalías ordenadas

Cibernético
fuente
¿Alguna sugerencia sobre cuál puedo usar para datos de series temporales, pero sin estacionalidad? ¿Puedo usar el paquete de Twitter en ese caso?
MikeHuber
El paquete de Twitter maneja anomalías locales y globales. Como dicen en sus documentos, "las anomalías globales generalmente se extienden por encima o por debajo de la estacionalidad esperada y, por lo tanto, no están sujetas a la estacionalidad ni a la tendencia subyacente". Entonces, sí, puede usar el paquete de Twitter para detectar potencialmente anomalías en series de tiempo sin estacionalidad. blog.twitter.com/engineering/en_us/a/2015/…
Cibernético
8

He encontrado algunas fuentes que pueden ayudarlo, pero no serán tan fáciles / convenientes como ejecutar un script R sobre sus datos: - Numenta tiene una plataforma NuPIC de código abierto que se utiliza para muchas cosas, incluida la detección de anomalías . - Atlas Project de Netflix pronto lanzará una herramienta de detección de anomalías / valores atípicos de código abierto. - Prelert tiene un motor de detección de anomalías que viene como una aplicación del lado del servidor. Su versión de prueba ofrece un uso limitado que puede satisfacer sus necesidades.

Alternativamente, mi empresa, Insignum , tiene un producto en versión beta que ingiere datos de series temporales y detecta anomalías de forma totalmente automatizada y simplemente recibe alertas por correo electrónico cuando se detectan anomalías. Póngase en contacto con Twitter o Linkedin y me complacerá contarle más.

Andrew Thompson
fuente
3

Autobox (mi compañía) proporciona detección de valores atípicos. El algoritmo de Twitter obtiene los grandes valores atípicos, pero pierde los más pequeños en comparación con Autobox .

Lleva mucho tiempo correr, pero los resultados son mejores para encontrar valores atípicos más pequeños y también cambios en la estacionalidad que también son valores atípicos. A continuación se muestra el modelo que encontró 79 valores atípicos utilizando las primeras 8.560 observaciones de 14.398 observaciones originales. La versión estándar tiene un máximo de 10,000 observaciones, pero podría modificarse para obtener más, pero de todos modos no hay una razón real para tener esa cantidad de datos cuando se desea identificar y responder a los valores atípicos.

Fuimos influenciados por el trabajo realizado por Tsay sobre valores atípicos, cambios de nivel y cambio de varianza y el trabajo de Chow sobre cambios de parámetros junto con nuestro propio trabajo para detectar cambios en la estacionalidad,

Si descarga la versión de prueba de 30 días y carga los datos de ejemplo de Twitter y especifica la frecuencia como 60, guarda 3 archivos de activación en la carpeta de instalación (noparcon.afs, novarcon.afs, notrend.afs) y crea un archivo llamado stepupde. afs con 100.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Tom Reilly
fuente