Tue. Oct 4th, 2022

Un consejo para encontrar patrones regulares como ondas sinusoidales a partir de la aleatoriedad.

La detección de anomalías en datos de series temporales es una tarea común en la ciencia de datos. Tratamos las anomalías como patrones de datos que no existen como se esperaba. Hoy, concentrémonos en detectar anomalías en una serie de tiempo univariada especial generada por un Proceso estocástico.Los datos deben parecer ruidosos, caóticos y aleatorios en esas series temporales estocásticas. Los cambios inesperados deberían estar ocurriendo todo el tiempo. Si el valor no cambia o cambia con un patrón determinista, algo está mal con los datos. Echemos un vistazo a la siguiente gráfica y verá las secciones sospechosas etiquetadas y comprenderá por qué deben detectarse como anomalías.Cuatro regiones anómalas El gráfico anterior utiliza datos sintéticos generados por el código que mostraré a continuación. Para la privacidad de los clientes, no revelaré el caso de uso real que inspiró este enfoque. Puedo intentar dar un ejemplo: la trayectoria de una columna de humo ascendente puede parecer extraña y aleatoria dependiendo de las condiciones variables del viento. Es muy poco probable que vea patrones repetidos como zigzags o largas líneas rectas a menos que las personas manipulen la atmósfera. Creo que entendió la idea: estamos tratando de encontrar certezas y patrones de un montón de caos y aleatoriedad, luego esas excepciones detectadas se etiquetarán como anomalías

Generar datos sintéticos

Los datos de series temporales anteriores se generan mediante un proceso de recorrido aleatorio. Luego, agrego al azar tres secciones de una onda sinusoidal con ruido gaussiano y un área con un valor constante. Primero, genero la serie temporal. Luego, agrego cuatro regiones anómalas al azar.

Detección de anomalías con entropía espectral

Las secciones de anomalía tienen diferentes longitudes, frecuencias y amplitudes. ¿Podemos encontrar esas secciones fácilmente? La respuesta es sí.Calcular simplemente una entropía espectral móvil será una solución rápida. Como puede ver en la gráfica, la entropía espectral móvil se cerrará a cero para todas las regiones de anomalía. Podemos utilizar la entropía móvil como una puntuación de anomalía continua que indica la probabilidad de anomalía.

¿Por qué funciona la entropía espectral?

La idea es calcular densidad espectral primero, normalizar y finalmente calcular el Entropía de ShannonAquí comparo dos ejemplos de observaciones con la ventana móvil de 200. Arriba hay una ventana en una región anómala y debajo hay una ventana en regiones normales.Densidad espectral de potencia (PSD) de una ventana de anomalíaDensidad espectral de potencia (PSD) de una buena ventana Primero, calcule la densidad espectral para cada ventana y obtenga los resultados que se muestran en el lado derecho. Luego, puede pensar que la frecuencia es una variable discreta con intervalos y tratar la densidad normalizada como la probabilidad para cada valor del intervalo de frecuencia. Debido a que la densidad está normalizada, su suma debe ser igual a 1. Ahora la entropía de Shannon puede entrar en juego.

“La entropía de Shannon de una distribución es la cantidad esperada de información en un evento extraído de esa distribución. Da un límite inferior al número de bits necesarios en promedio para codificar símbolos extraídos de una distribución P”.

En la ventana de anomalía anterior, la señal estará “activa” en el intervalo de frecuencia de 1 Hz únicamente (la probabilidad de 1 Hz es casi 1, otras son casi 0). No hay sorpresas, ni incertidumbres; por lo tanto, la entropía será de alrededor de 0 para este caso. La señal puede estar “activa” en varios intervalos de frecuencia con diferentes probabilidades para la región buena. Tenemos más incertidumbres o información desconocida, por lo que mayor será la entropía.

Tamaño de ventana móvil y tamaño FFT

No siempre se ven las entropías espectrales extremadamente cercanas a cero para esas anomalías similares a las ondas sinusoidales. La razón detrás de esto es cómo calculamos el espectro. Existe la posibilidad de que la frecuencia máxima se extienda a dos contenedores de frecuencia vecinos (fuga espectral debido a la resolución de frecuencia). Entonces, la entropía de Shannon no estará cerca de cero, pero seguirá siendo más pequeña que los casos en una ventana normal. tasa de muestreo y Tamaño FFT determinar los intervalos de frecuencia. Si no se especifica el tamaño de FFT, usaremos el tamaño de la ventana.Arriba está el resultado con un tamaño de FFT de 512 y un tamaño de ventana de 100. Todavía podemos ver la separación usando la entropía espectral móvil; aunque las puntuaciones de las regiones anómalas son más pequeñas, no son 0. Es posible que debamos realizar un procesamiento posterior, como calcular el promedio móvil, para segmentar la serie temporal en las secciones anómala y estándar. Con un tamaño de ventana más pequeño, podemos detectar la anomalía antes. En la aplicación real, debe explorar e investigar la anomalía esperada. Luego, elegirá el tamaño de la ventana móvil o el tamaño de FFT según sus requisitos de detección de anomalías.

Conclusión

La entropía espectral combina la idea de FFT, la densidad espectral y la entropía de Shannon. Podemos usarlo para verificar cuánta información contiene una ventana de datos de series temporales. Una mayor entropía implica incertidumbre y aleatoriedad. Una entropía más baja indica patrones regulares y deterministas. Por lo tanto, podemos detectar patrones a partir de la aleatoriedad utilizando la entropía espectral. Por supuesto, la entropía espectral funciona de manera opuesta: detecta la aleatoriedad de una serie de datos con patrones. Pero el análisis de frecuencia tal vez ya funcione lo suficientemente bien para esos casos. Gracias por leer. Diviértete con tu serie temporal.