Detrás de la detección de anomalías en series temporales

Por azares, me ha tocado lidiar con eso de la detección de anomalías. Que es un problema que tiene que ver con dónde colocar las marcas azules en

anomaly_detection

El anterior es el gráfico construido con los datos de ejemplo del paquete AnomalyDetection. De hecho, así:

Aparentemente, AnomalyDetectionTs hace lo que cabría sospechar. Primero, una descomposición de la serie temporal, tal como

es decir,

anomaly_detection_stl

para luego utilizar alguno de esos procedimientos de detección de outliers sobre los residuos, la gráfica de más abajo). Precisamente, este.

Nota: Se me ha olvidado advertir arriba y prominentemente que esta entrada no iba a ser del gusto de quienes por practitioners se tienen. No voy a criticar a nadie por, siempre que no sea en presencia de niños, hacer ostentación del desinterés por conocer el funcionamiento de las cosas. Me parece tan poco propio del ser humano que, a falta de más detalles, me quedaré con la impresión de que lo intentó y no pudo y pasaré a otra cosa.

Me consuela pensar, no obstante, que si alguno ha llegado hasta donde casi termina la entrada —sea por accidente, inercia o, peor aún, curiosidad— habrá prevalecido el provecho sobre el perjuicio que estas pocas líneas con muchas fotos le puedan haber causado.

3 comentarios sobre “Detrás de la detección de anomalías en series temporales

  1. Davidi 17 noviembre, 2016 13:27

    Buenas,

    servidor se ha ganado los doblones con esto durante un tiempo, a parte de la visión univariante, es posible que esas series no vengan solas, sino que tengan hermanas… si es tu caso, te recomiendo montes un modelo para predecir una a partir de las otras en un determinado momento del tiempo t (un glmnet, un randomForest, un fastlm, … un xgboost) y luego sobre estudias los residuos y aplicas una de esas que propones.

    Por cierto que aparte de detectar anomalias, te servirá para reconstruir la series, otra manera de ganar doblones.

    Mucho ojo con las patentes, te puedes encontrar que en determinados ámbitos alguien ha patentado predecir una variable a partir de otras… para detectar anomalías… por inverosimil que ello parezca.

    Espero te sirva.

    Un saludo

  2. Carlos J. Gil Bellosta 17 noviembre, 2016 14:19

    Añadiría `bsts` a tu lista de modelos para predecir unas series a partir de otras. Es droga dura comparado con los otros procedimientos que propones.

    (Por si quieres que desarrolle lo de droga dura: es un procedimiento específico para predicción de series temporales en función de otras; el resto de las herramientas que propones son genéricas).

    ¡Gracias por el comentario!

  3. José Ramón Cajide 19 noviembre, 2016 13:31

    STL es un gran paquete. Molan mucho los métodos que emplea para descomposición de series, como usando LOES y Moving Average Smoothing es capaz de detectar tendencias, la estacionalidad, etc.

Los comentarios están desabilitados.