Decomposição de séries temporais para detecção de outliers

Detecção de Anomalias em Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Sazonalidade

  • Padrões que se repetem na série temporal
  • Têm frequência fixa:
    • por hora
    • diária
    • semanal
    • mensal, etc.
  • Exemplos:
    • Temperaturas diárias
    • Vendas de sorvete
Detecção de Anomalias em Python

Sazonalidade

Um gráfico de linha dos preços de abertura das ações do Google.

Detecção de Anomalias em Python

seasonal_decompose

from statsmodels.tsa.seasonal import seasonal_decompose

results = seasonal_decompose(google['Open'], period=365)

print(results)
<statsmodels.tsa.seasonal.DecomposeResult object at 0x7f0a67fac820>
Detecção de Anomalias em Python

Plotando a sazonalidade

results.seasonal.plot(color="red", figsize=(12, 4))

Um gráfico da sazonalidade dos preços de abertura das ações do Google

Detecção de Anomalias em Python

Exemplos de sazonalidade

Exemplos de sazonalidade em séries temporais.

Detecção de Anomalias em Python

Gráfico inicial das ações

Um gráfico inicial dos preços de abertura das ações do Google

Detecção de Anomalias em Python

Tendência

results.trend.plot(color="red", figsize=(12, 4))

Detecção de Anomalias em Python

Exemplos de tendência

Exemplos de tendências em séries temporais.

Detecção de Anomalias em Python

Resíduos

results.resid.plot(color="red", figsize=(12, 4))

Um gráfico dos resíduos dos preços de abertura das ações do Google.

Detecção de Anomalias em Python

Decomposição

figure = results.plot()

figure.set_figwidth(12)
figure.set_figheight(8)

As três componentes da série temporal visualizadas.

Detecção de Anomalias em Python

Ajustando um classificador

# Extract and reshape residuals
results = seasonal_decompose(google['Volume'], period=365)
residuals = results.resid
residuals = residuals.values.reshape(-1, 1)


# Fit MAD mad = MAD().fit(residuals)
# Find the outliers is_outlier = mad.labels_ == 1 outliers = google[is_outlier] print(len(outliers))
81
Detecção de Anomalias em Python

Vamos praticar!

Detecção de Anomalias em Python

Preparing Video For Download...