Adjunto una foto de la serie de tiempo de la que estoy hablando. La parte superior es la serie original, la parte inferior es la serie diferenciada.
Cada punto de datos es una lectura promedio de 5 minutos de un medidor de tensión. Este medidor de tensión se coloca en una máquina. Las áreas ruidosas corresponden a las áreas donde se enciende la máquina, las áreas limpias son cuando la máquina se apaga. Si observa el área encerrada en un círculo rojo, hay pasos anómalos en la lectura que me gustaría poder detectar automáticamente.
Estoy completamente perplejo sobre cómo podría hacer esto, ¿alguna idea?
time-series
change-point
mohamedmoussa
fuente
fuente
Respuestas:
Parece que está buscando picos dentro de intervalos de relativa calma . "Relativo" significa en comparación con los valores cercanos típicos, lo que sugiere suavizar la serie. Un liso robusto es deseable precisamente porque no debe estar influenciado por algunos picos locales. "Silencioso" significa que la variación alrededor de esa suavidad es pequeña. Nuevamente, es deseable una estimación robusta de la variación local. Finalmente, un "pico" sería un gran residuo como un múltiplo de la variación local.
Para implementar esta receta , debemos elegir (a) qué tan cerca significa "cerca", (b) una receta para suavizar y (c) una receta para encontrar la variación local. Puede que tenga que experimentar con (a), así que hagámoslo un parámetro fácilmente controlable. Las buenas opciones disponibles para (b) y (c) son Lowess y IQR , respectivamente. Aquí hay una
R
implementación:Como un ejemplo de su uso, considere estos datos simulados donde se agregan dos picos sucesivos a un período de silencio (dos en una fila deberían ser más difíciles de detectar que un pico aislado):
Aquí está el diagrama de diagnóstico:
A pesar de todo el ruido en los datos originales, esta trama detecta maravillosamente los picos (relativamente pequeños) en el centro. Automatice la detección escaneando
f(x)
valores grandes (mayores que aproximadamente 5 en valor absoluto: experimente para ver qué funciona mejor con datos de muestra).La detección espuria en el tiempo 273 fue un valor atípico local aleatorio. Puede refinar la prueba para excluir (la mayoría) tales valores espurios modificando
f
para buscar los valores simultáneamente altas de los diagnósticosr/z
valores y bajos de la RIC en funcionamiento,z
. Sin embargo, aunque el diagnóstico tiene una escala e interpretación universal (sin unidades), el significado de un IQR "bajo" depende de las unidades de los datos y debe determinarse a partir de la experiencia.fuente
Aquí hay una sugerencia de dos centavos.
Denotan la serie diferenciada. Dado y un punto , definaXt Δ>0 t
Por ejemplo, digamos , el valor de caracteriza las zonas de apagado / encendido por valores bajos / altos.Δ=50 a(Δ,t)
Un paso anómalo es un punto donde : deberá realizar algunos ajustes en para detectar lo que desea y evitar falsos positivos cuando la máquina se encienda. Primero lo intentaría con y .t |Xt|>αa(Δ,t) α,Δ Δ=50 α=4
Alternativamente, puede ver los puntos donde para a (por ejemplo, , ), que pueden ayudar el ajuste fino (en ese caso, tomaría un valor menor para ).t a(δ,t)>αa(Δ,t) δ≪Δ δ=10 Δ=100 α
fuente