Ir al contenido principal
Plugins: Anomaly Detector

Detecte valores atípicos en datos de series temporales utilizando métodos estadísticos como Z-score y MAD (Desviación Absoluta Mediana).

Santiago Pachon Robayo avatar
Escrito por Santiago Pachon Robayo
Actualizado hace más de una semana

En el mundo impulsado por datos de hoy, la capacidad de monitorear y analizar datos de series temporales es primordial para las empresas y organizaciones en diversos dominios. Sin embargo, en medio del vasto y continuo flujo de datos, identificar anomalías—esas desviaciones inesperadas de la norma—puede ser una tarea ardua, a menudo similar a encontrar agujas en un pajar.

Ubidots ha reconocido la necesidad crítica de la detección automática de anomalías para empoderar a sus usuarios a identificar rápidamente irregularidades en sus datos de series temporales. Este artículo profundiza en una solución ofrecida por Ubidots: el Plugin de Detección de Anomalías.

Requisitos

1. Comprender las anomalías

En el contexto de la estadística, una anomalía, también conocida como un valor atípico, se refiere a un punto de datos u observación que se desvía significativamente del comportamiento esperado o típico de un conjunto de datos. Las anomalías son valores que son notablemente diferentes de la mayoría de los puntos de datos en un conjunto de datos dado, y pueden ocurrir por diversas razones, incluidas errores en la recopilación de datos, inexactitudes de medición o eventos o fenómenos genuinamente inusuales. Es importante identificar y comprender las anomalías porque pueden tener un impacto significativo en el análisis estadístico y en las conclusiones extraídas de los datos.

2. El poder de los algoritmos: Z-score y MAD

Ubidots ha integrado algoritmos avanzados de detección de anomalías en su plataforma. Z-score y MAD (Desviación Absoluta Mediana)—dos algoritmos notables—destacan por su efectividad en la identificación de anomalías.

Estos algoritmos ofrecen un enfoque estadístico para cuantificar las desviaciones de los patrones de datos esperados. El Z-score mide cuántas desviaciones estándar está un punto de datos de la media, mientras que MAD mide la mediana de las desviaciones absolutas de la mediana.

3. Z-score (puntuación estándar)

El Z-score, también conocido como "puntuación estándar", cuantifica cuántas desviaciones estándar está un punto de datos de la media del conjunto de datos. Se calcula utilizando la fórmula:

Donde:

Z es el Z-score del punto de datos.

X es el punto de datos.

μ es la media (promedio) del conjunto de datos.

σ es la desviación estándar del conjunto de datos.

Un Z-score positivo o negativo alto indica que el punto de datos está lejos de la media, lo que lo convierte en una posible anomalía. Este algoritmo es beneficioso cuando se trata de datos de distribución normal.

4. Umbrales comunes para Z-score

Umbral de ±2 o ±3 desviaciones estándar:

  • Uno de los umbrales más comunes para la detección de anomalías basada en Z-score es considerar puntos de datos con Z-scores mayores a ±2 o ±3 como posibles valores atípicos.

  • Los puntos de datos que caen fuera de este rango se consideran significativamente diferentes de la media y se tratan como anomalías.

  • La elección entre ±2 y ±3 depende del nivel de sensibilidad deseado a los valores atípicos. ±3 es más conservador y puede capturar menos anomalías, mientras que ±2 es menos conservador y puede incluir más posibles valores atípicos.

5. MAD (Desviación Absoluta Mediana)

La Desviación Absoluta Mediana (MAD) es una medida robusta de dispersión estadística que se basa en la mediana en lugar de la media. Cuantifica la mediana de las desviaciones absolutas de los puntos de datos con respecto a la mediana del conjunto de datos. La fórmula para MAD es la siguiente:

Donde:

MAD es la Desviación Absoluta Mediana.

X representa los puntos de datos en el conjunto de datos.

La mediana y el MAD son medidas robustas de tendencia central y dispersión, respectivamente.

6. Umbrales comunes para MAD (Desviación Absoluta Mediana)

Umbral de ±2 o ±3 MADs:

  • Al igual que con el Z-score, un umbral común para la detección de anomalías basada en MAD es considerar puntos de datos con desviaciones de la mediana mayores a ±2 o ±3 MADs como posibles valores atípicos.

  • Los puntos de datos que caen fuera de este rango se consideran anomalías.

  • Al igual que con el Z-score, la elección entre ±2 y ±3 depende del nivel de sensibilidad deseado.

En las siguientes secciones, exploraremos el Plugin de Detección de Anomalías de Ubidots y cómo aprovecha el poder de estos algoritmos para ayudar a los usuarios a descubrir conocimientos ocultos e inteligencia accionable a partir de sus datos de series temporales mediante un ejemplo utilizando precios de energía para detectar anomalías.

7. ¿Qué algoritmo usar?

La elección del algoritmo debe estar guiada por las características de los datos y aquí está la razón por la que es útil:

  • La distribución de los datos importa:

La distribución subyacente de tus datos puede afectar significativamente el rendimiento de los algoritmos de detección de anomalías. Diferentes algoritmos tienen diferentes suposiciones sobre la distribución de los datos y usar el algoritmo que se alinea con la distribución de tus datos puede llevar a resultados más precisos.

  • Considera las características de los datos (asimetría y curtosis):

Examina la asimetría (una medida de la asimetría) y la curtosis (una medida de la pesadez de las colas) de tus datos. Si tus datos son altamente asimétricos o presentan colas pesadas, MAD puede ser una mejor opción.

7.1. Z-score para datos distribuidos normalmente:

El Z-score es adecuado para datos que siguen una distribución normal (curva en forma de campana) o distribución aproximadamente normal. En una distribución normal, la mayoría de los puntos de datos se agrupan alrededor de la media, y los valores extremos son relativamente raros.

7.2. MAD para datos no distribuidos normalmente:

La Desviación Absoluta Mediana (MAD) es robusta y adecuada para datos que pueden no seguir una distribución normal. Es menos afectada por valores atípicos y extremos y es más apropiada para distribuciones asimétricas o con colas pesadas.

En la práctica, para analizar y detectar efectivamente anomalías en conjuntos de datos, a menudo es beneficioso considerar ambos extremos de la distribución. Aquí es donde entran en juego los conceptos de 'Right MAD' y 'Left MAD'. Estas variaciones del cálculo de MAD nos permiten evaluar la dispersión de los puntos de datos en ambos lados derecho e izquierdo de la medida central, que típicamente es la mediana.

Right MAD: Right MAD se enfoca en los puntos de datos que son mayores o están a la derecha de la mediana. Cuantifica la dispersión en la cola derecha del conjunto de datos, ayudando a identificar valores significativamente mayores que la mediana. En el contexto del plugin de detección de anomalías, el 'Right MAD' corresponde al límite superior para la detección de anomalías, que indica el umbral por encima del cual los puntos de datos se consideran anomalías.

Left MAD: Por el contrario, Left MAD considera puntos de datos que son menores o están a la izquierda de la mediana. Cuantifica la dispersión en la cola izquierda del conjunto de datos, ayudando a identificar valores significativamente menores que la mediana. En el contexto del plugin de detección de anomalías, el 'Left MAD' corresponde al límite inferior para la detección de anomalías, indicando el umbral por debajo del cual los puntos de datos se consideran anomalías.

Al utilizar tanto Right MAD como Left MAD, aseguramos una cobertura integral de la distribución de los datos, permitiéndonos identificar y gestionar anomalías en ambos extremos del espectro. Este enfoque se alinea con los límites superiores e inferiores generados por el plugin, proporcionando una visión holística de las anomalías dentro del conjunto de datos.

8. Instalando el plugin de detección de anomalías

Paso 1. En tu cuenta de Ubidots, ve a la pestaña "Dispositivos", haz clic en "Plugins", luego haz clic en el icono "+" para crear un nuevo Plugin. Busca el Detector de Anomalías, haz clic en él y sigue los pasos en pantalla:

Paso 2. Después de leer las descripciones del plugin, aparecerán las opciones de configuración del plugin de la siguiente manera:

Etiqueta del dispositivo: Etiqueta del dispositivo que contiene la variable de interés para la detección de anomalías.

Etiqueta de la variable: Etiqueta de la variable que contiene la serie temporal de interés para la detección de anomalías.

Conjunto de datos de referencia: Intervalo de tiempo utilizado para los datos históricos, que determina cuántos datos se considerarán para calcular los valores de referencia superior e inferior para determinar qué es una anomalía.

Algoritmo: Opciones, z_score o mad.

Umbral (opcional): Allí puedes ingresar un valor entero o decimal positivo, los umbrales normales son 2 o 3. Se establece por defecto en 2.

Ventana deslizante: Número de puntos a analizar para detectar anomalías.

Guardar anomalías (opcional): Opciones: "sí", "no". Establecido por defecto en "no". Cuando se establece en "sí", el plugin guarda los valores atípicos encontrados durante el entrenamiento en una nueva variable llamada "anomaly_value".

Período de evaluación: Frecuencia con la que se ejecutará un nuevo análisis.

Tu token de Ubidots: Selecciona el token de Ubidots que te gustaría usar para este plugin.

9. Graficar las anomalías detectadas

En este ejemplo, podemos detectar los valores de los precios de energía que pueden considerarse anomalías. Teniendo en cuenta la distribución de los precios de energía durante los últimos 6 meses, podemos usar Z-score o MAD.

Después de instalar el plugin y elegir el algoritmo Z-score con un umbral de 2 desviaciones estándar por encima y por debajo de la media de los datos de los últimos 6 meses, tenemos estas variables adicionales creadas de la siguiente manera.

En un panel, utiliza un widget de gráfico de líneas para trazar tanto la variable original como la variable anomaly_values creada por el plugin. Configurar uno para que se muestre como una línea y las anomalías como puntos ayuda a identificar mejor las anomalías. Además, es posible establecer los umbrales superior e inferior agregando líneas horizontales a tu gráfico.

¿Ha quedado contestada tu pregunta?