Sèries temporals per a la predicció d’anomalies

La detecció d’anomalies en processos industrials, com més aviat millor, és un repte complex, especialment si es manifesten de forma contextual, ja que a diferència de les anomalies puntuals, no poden determinar-se amb l’aplicació dels habituals límits de treball.

Una possible aproximació al problema és la utilització del forecast de sèries temporals per a la localització de outliers.

El mètode suposa la realització d’un model predictiu de les observacions històriques per tal d’obtenir una predicció de valors futurs i un interval de confiança dels mateixos.

Les noves observacions és comparen amb aquests valors futurs predits i si es troben fora de l’interval de confiança és consideren anomalies.

L’avantatge d’aquest mètode d’aprenentatge no supervisat és la innecessària existència de dades pre-etiquetades i donada la capacitat de treball en temps real, la possibilitat d’un autoajust automàtic davant qualsevol canvi de format o de rang de treball.

Els reptes però, consisteixen inicialment en escollir un algoritme adequat que interpreti la serie temporal adequadament per tal de proporcionar un forecast el més acurat possible i posteriorment la selecció dels intervals de confiança per evitar falsos positius.

En l’exemple de la sèrie anterior d’un registre de temperatures, utilitzem les dades d’una finestra temporal de 12 dies per entrenar dos models predictius (SNAIVE i PROPHET) que ens proporcionaran un forecast de la temperatura del dia següent.

El model SNAIVE simplement aplica com a pronòstic els valors de l’últim cicle observat.

Aquest model predictiu s’utilitza com a punt de referència de valoració de precisió de models més complexes, però també és apropiat ja que l’objectiu no és tant la predicció sino la detecció d’anomalies basades en la comparació de les dades futures amb les històriques que considerem correctes.

El model PROPHET usat, es una implementació en R, d’un procediment de forecasting desenvolupat per el Core Data Science team de Facebook. (https://facebook.github.io/prophet/). En aquest cas, és combina amb un XGBOOST que prediu els errors residuals de l’anterior model i els afegeix a l’entrenament per assolir la predicció final.

La seva precisió i especialment la seva velocitat de càlcul fan que sigui ideal per aplicacions interactives.

La taula mostra la comparativa de precisió dels dos models. Utilitzant la mètrica MAE (Mean Absolute Error) que ve donada en les mateixes unitats que la variable inicial (ºC), podem comprovar la millor precisió del model PROPHET.

El següent link dona accés a una aplicació web realitzada amb R i el paquet {shiny}, destinat al desenvolupament d’aplicacions interactives de visualització de dades.

En aquesta aplicació podrem escollir de forma dinàmica el tipus de model i el dia d’aplicació del forecast obtingut per comprovar si les dades estan fora de l’interval de confiança i per tant son considerades anomalies:

https://jespluga.shinyapps.io/shiny_temperatura/

Josep Espluga