Anexei uma foto da série temporal de que estou falando. A parte superior é a série original, a parte inferior é a série diferenciada.
Cada ponto de dados é uma leitura média de 5 minutos de um medidor de tensão. Este extensômetro é colocado em uma máquina. As áreas ruidosas correspondem às áreas em que a máquina está ligada, as áreas limpas são quando a máquina é desligada. Se você olhar para a área circulada em vermelho, há etapas anômalas na leitura que eu gostaria de poder detectar automaticamente.
Estou completamente perplexo sobre como posso fazer isso - alguma idéia?
time-series
change-point
mohamedmoussa
fonte
fonte
Respostas:
Parece que você está procurando picos em intervalos de relativa calma . "Relativo" significa comparado aos valores típicos próximos, o que sugere suavizar a série. Uma suavidade robusta é desejável precisamente porque não deve ser influenciada por alguns picos locais. "Silencioso" significa que a variação em torno desse liso é pequena. Novamente, é desejável uma estimativa robusta da variação local. Finalmente, um "pico" seria um grande residual como um múltiplo da variação local.
Para implementar esta receita , precisamos escolher (a) o quão próximo "próximo" significa, (b) uma receita para suavizar e (c) uma receita para encontrar variações locais. Você pode ter que experimentar com (a), então vamos torná-lo um parâmetro facilmente controlável. As opções boas e prontamente disponíveis para (b) e (c) são Lowess e IQR , respectivamente. Aqui está uma
R
implementação:Como exemplo de seu uso, considere esses dados simulados em que dois picos sucessivos são adicionados a um período silencioso (dois em uma linha devem ser mais difíceis de detectar do que um pico isolado):
Aqui está o gráfico de diagnóstico:
Apesar de todo o ruído nos dados originais, esse gráfico detecta lindamente os picos (relativamente pequenos) no centro. Automatize a detecção varrendo
f(x)
valores largish (maiores que cerca de 5 em valor absoluto: experimente para ver o que funciona melhor com dados de amostra).A detecção espúria no tempo 273 foi um erro local aleatório. Você pode refinar o teste para excluir (a maioria) esses valores espúrios, modificando
f
para procurar simultaneamente valores altos do diagnósticor/z
e valores baixos do IQR em execuçãoz
. No entanto, embora o diagnóstico tenha uma escala e interpretação universal (sem unidade), o significado de um QI "baixo" depende das unidades dos dados e deve ser determinado a partir da experiência.fonte
Aqui está uma sugestão de dois centavos.
Indique a série diferenciada. Dado e um ponto , definaXt Δ>0 t
Vamos dizer que , o valor de caracteriza as zonas off / on por valores baixo / alto.Δ=50 a(Δ,t)
Um passo anômalo é um ponto onde - você precisará fazer alguns ajustes em para detectar o que deseja e evitar falso positivo quando a máquina for ligada. Eu tentaria primeiro com e .t |Xt|>αa(Δ,t) α,Δ Δ=50 α=4
Como alternativa, você pode ver os pontos onde para a (por exemplo, , ), que podem ajudar o ajuste fino (nesse caso, você usaria um valor menor para ).t a(δ,t)>αa(Δ,t) δ≪Δ δ=10 Δ=100 α
fonte