Algoritmos para detecção de anomalias de séries temporais

24

Atualmente, estou usando o AnomalyDetection do Twitter em R: https://github.com/twitter/AnomalyDetection . Esse algoritmo fornece detecção de anomalia de séries temporais para dados com sazonalidade.

Pergunta: existem outros algoritmos semelhantes a este (controlar a sazonalidade não importa)?

Estou tentando pontuar o maior número possível de algoritmos de séries temporais nos meus dados para que eu possa escolher o melhor / conjunto.

Eric Miller
fonte

Respostas:

16

O algoritmo do Twitter é baseado em

Rosner, B., (maio de 1983), "Pontos percentuais para um procedimento generalizado de descargas excessivas de ESD", Technometrics, 25 (2), pp. 165-172

Tenho certeza de que houve muitas técnicas e avanços desde 1983! Eu testei em meus dados internos e a detecção de anomalias do Twitter não identifica discrepâncias óbvias. Eu usaria outras abordagens também para testar outliers em séries temporais. O melhor que me deparei é o procedimento de detecção de outlier de Tsay, implementado no software SAS / SPSS / Autobox e SCA. Todos os quais são sistemas comerciais. Há também um pacote tsoutliers que é ótimo, mas precisa de especificação do arimamodelo para funcionar com eficiência. Eu tive problemas com seu padrão auto.arimano que diz respeito à otimização e seleção de modelos.

O artigo de Tsay é um trabalho seminal na detecção de outlier em séries temporais. Revista líder em pesquisa de previsão O International Journal of Forecasting mencionou que o artigo de Tsay é um dos trabalhos mais citados e mais influentes em um artigo vinculado acima (também veja abaixo). A difusão deste importante trabalho e outros algoritmos de detecção de outlier em software de previsão (especialmente em software de código aberto) é uma raridade.

insira a descrição da imagem aqui

previsor
fonte
14

Aqui estão as opções para a detecção de anomalias no R a partir de 2017.

Pacote de detecção de anomalias do Twitter

  • Funciona usando ESD híbrido sazonal (SH-ESD);
  • Baseia-se no teste ESD generalizado para detectar anomalias;
  • Pode detectar anomalias locais e globais;
  • Empregando decomposição de séries temporais e métricas estatísticas robustas (por exemplo, mediana junto com ESD)
  • Emprega aproximação por partes para longas séries temporais;
  • Também possui um método para quando os carimbos de data e hora não estão disponíveis;
  • Pode especificar a direção das anomalias, a janela de interesse, alternar a aproximação por partes e ter suporte visual.

anomalyDetection Package (diferente do Twitter)

  • várias abordagens, incluindo distância de Mahalanobis, análise fatorial, análise paralela de Horn, inspeção de blocos, análise de componentes principais;
  • Tem método para lidar com os resultados.

pacote tsoutliers

  • Detecta outliers em séries temporais seguindo o procedimento de Chen e Liu ( https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents );
  • Os valores extremos são obtidos com base em estimativas 'menos contaminadas' dos parâmetros do modelo, efeitos extremos estimados usando regressão linear múltipla e estimam os parâmetros e efeitos do modelo em conjunto.
  • Considera outliers inovadores, outliers aditivos, mudanças de nível, mudanças temporárias e mudanças de nível sazonais.

anômalo-acm

  • Trabalha calculando um vetor de recursos em cada série temporal (por exemplo, inclua correlação de defasagem, força de sazonalidade, entropia espectral), aplicando uma decomposição robusta de componentes principais nos recursos e, finalmente, aplicando vários métodos de detecção de outlier bivariados aos dois primeiros componentes principais;
  • Permite que as séries mais incomuns, com base em seus vetores de características, sejam identificadas;
  • O pacote contém conjuntos de dados reais e sintéticos do Yahoo.

pacote arco-íris

  • Usa bagplots e boxplots;
  • Identifica discrepantes com menor profundidade ou densidade.

pacote kmodR

  • Usa uma implementação de k-means proposta por Chawla e Gionis em 2013 ( http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21 );
  • Útil para criar clusters (potencialmente) mais apertados do que os meios k padrão e, simultaneamente, encontrar discrepâncias econômicas no espaço multidimensional.

método washeR

A exibição Tarefa CRAN para Métodos Estatísticos Robustos

  • Uma variedade de abordagens para o uso de métodos estatísticos robustos para detectar discrepâncias.

EDIT 2018

anomalize: Detecção arrumada de anomalias

Cibernético
fonte
Alguma sugestão que eu possa usar para dados de séries temporais, mas sem sazonalidade? Posso usar o pacote do twitter nesse caso?
MikeHuber # 7/17
O pacote do Twitter lida com anomalias locais e globais. Como dizem em seus documentos, "as anomalias globais geralmente se estendem acima ou abaixo da sazonalidade esperada e, portanto, não estão sujeitas à sazonalidade e à tendência subjacente". Portanto, sim, você pode usar o pacote do Twitter para detectar potencialmente anomalias em séries temporais sem sazonalidade. blog.twitter.com/engineering/en_us/a/2015/…
Cybernetic
8

Encontrei algumas fontes que podem ajudá-lo, mas elas não serão tão fáceis / convenientes quanto executar um script R sobre seus dados: - A Numenta possui uma plataforma NuPIC de código aberto , usada para muitas coisas, incluindo detecção de anomalias . - O Projeto Atlas da Netflix lançará em breve uma ferramenta de detecção de anomalias / outlier de código aberto. - O Prelert possui um mecanismo de detecção de anomalias que vem como um aplicativo do lado do servidor. Seu teste oferece uso limitado, o que pode satisfazer suas necessidades.

Como alternativa, minha empresa, Insignum , possui um produto em versão beta que ingere dados de séries temporais e detecta anomalias de forma totalmente automatizada e você simplesmente recebe alertas por e-mail quando são detectadas anomalias. Entre em contato no Twitter ou no Linkedin e ficarei feliz em lhe contar mais.

Andrew Thompson
fonte
3

A Autobox (minha empresa) fornece detecção de outlier. O algoritmo do Twitter obtém os maiores valores discrepantes, mas perde os menores em comparação com o Autobox .

Demora muito tempo para ser executado, mas os resultados são melhores para encontrar os outliers menores e também as mudanças na sazonalidade, que também são outliers. Abaixo está o modelo que encontrou 79 discrepantes usando as primeiras 8.560 observações de 14.398 observações originais. A versão padrão chega ao máximo em 10.000 observações, mas pode ser modificada para mais, mas não há motivo real para ter tantos dados assim mesmo quando você deseja identificar e responder a discrepâncias.

Fomos influenciados pelo trabalho realizado por Tsay em discrepâncias, mudanças de nível e alteração de variância e o trabalho de Chow sobre alterações de parâmetros, juntamente com nosso próprio trabalho em detectar alterações na sazonalidade,

Se você baixar a avaliação de 30 dias e carregar os dados de exemplo do Twitter, especificar a frequência como 60 e salvar 3 arquivos de acionador na pasta de instalação (noparcon.afs, novarcon.afs, notrend.afs) e criar um arquivo chamado stepupde. afs com 100.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Tom Reilly
fonte