Sobes.tech
Middle — Senior
33

Какие методы детекции аномалий специфичны для временных рядов?

Companies where asked
МТСМТС
Северсталь

Answer from AI

sobes.tech AI

Для детекции аномалий во временных рядах используются методы, учитывающие временную зависимость и сезонность данных. Основные специфичные подходы:

  • Модели на основе скользящего окна: анализируют отклонения текущих значений от среднего или медианы в окне времени.
  • Методы на основе сезонно-трендовой декомпозиции (STL, STL decomposition): выделяют тренд и сезонность, аномалии определяются как резкие отклонения от этих компонентов.
  • ARIMA и SARIMA модели: прогнозируют значения, а аномалиями считаются значительные отклонения от прогноза.
  • Методы на основе рекуррентных нейронных сетей (LSTM, GRU): обучаются предсказывать следующий шаг, аномалии — большие ошибки предсказания.
  • Matrix Profile: вычисляет схожесть подпоследовательностей временного ряда, выявляя необычные паттерны.

Пример простого подхода с использованием скользящего среднего:

import numpy as np

def detect_anomalies(series, window=5, threshold=3):
    rolling_mean = np.convolve(series, np.ones(window)/window, mode='valid')
    anomalies = []
    for i in range(window - 1, len(series)):
        if abs(series[i] - rolling_mean[i - window + 1]) > threshold * np.std(series):
            anomalies.append(i)
    return anomalies

Этот код находит индексы точек, которые значительно отклоняются от локального среднего.