Detectando múltiplas anomalias em séries temporais sazonais

Introduction to Anomaly Detection in R

Alastair Rushworth

Data Scientist

Dados mensais de receita

head(msales)
  sales month
1 6.068     1
2 5.966     2
3 6.133     3
4 6.230     4
5 6.407     5
6 6.433     6

Teste de Grubbs não é adequado aqui

  • Pode haver sazonalidade
  • Podem existir várias anomalias
Introduction to Anomaly Detection in R

Visualizando a receita mensal

plot(sales ~ month, data = msales, type = 'o')

Introduction to Anomaly Detection in R

Uso do algoritmo Seasonal-Hybrid ESD

library(AnomalyDetection)
sales_ad <- AnomalyDetectionVec(x = msales$sales, period = 12, 
                                direction = 'both')

Argumentos

  • x: vetor de valores
  • period: período do padrão repetido
  • direction: encontrar anomalias pequenas ('neg'), grandes ('pos') ou ambas ('both')

Pacote disponível em https://github.com/twitter/AnomalyDetection

Introduction to Anomaly Detection in R

Saída do algoritmo Seasonal-Hybrid ESD

sales_ad <- AnomalyDetectionVec(x = msales$sales, period = 12, 
                                direction = 'both')
sales_ad$anoms
  index anoms
1    14 1.561
2   108 2.156
Introduction to Anomaly Detection in R

Gráfico do algoritmo Seasonal-Hybrid ESD

AnomalyDetectionVec(x = msales$sales, period = 12, 
                    direction = 'both', plot = T)

Introduction to Anomaly Detection in R

Vamos praticar!

Introduction to Anomaly Detection in R

Preparing Video For Download...