Введение

В этой статье мы рассмотрим, как определить аномальное поведение с помощью очень простого статистического метода.

Аномалии (выбросы, редкие события) - это данные, которые не соответствуют тому, что ожидается от данных с точки зрения нормального поведения. Можно сказать, что такое поведение вызвано факторами, которые отсутствуют при нормальном поведении данных. Подумайте, в каком контексте это может применяться.

Подумайте о сценарии мошенничества с кредитными картами, когда компании, выпускающей кредитные карты, необходимо определить, является ли совершенная покупка мошенничеством. Поскольку у компании есть история законных данных о продажах, можно сказать, что у этих данных есть функция генерации, которая генерирует распределение данных. Аномальное поведение можно определить, сравнив расхождение этого примера с существующим распределением.

В рамках дисциплины обнаружения аномалий существует широкий спектр методов, которые используют различные средства для моделирования способов выявления аномальных данных. Существуют методы, направленные на выявление одномерных и многомерных аномалий. Когда дело доходит до одномерного анализа, вы можете визуально идентифицировать необычное поведение, но как насчет анализа сотен, если не тысяч характеристик? В этом случае необходимо прибегнуть к методам работы с многомерными данными.

Здесь мы собираемся использовать статистику Hoetling T2, чтобы определить это поведение.

Статистика T2 - это многомерное распределение вероятностей, которое тесно связано с F -распределением и наиболее примечательно тем, что возникает как распределение набора выборочных статистик, которые являются естественными обобщениями статистика, лежащая в основе t -распределения студентов.

Цель этой статьи - не углубляться в методику T2, а, скорее, представить ее как инструмент для обнаружения аномалий.

Если вы хотите узнать больше, в Интернете можно найти огромное количество материалов.

Сначала давайте сгенерируем синтетические данные, которые помогут нам понять и уточнить метод.

Как видите, 700 точек данных были сгенерированы с использованием нормального распределения с разными средствами.

Идея состоит в том, чтобы присвоить каждой точке данных время x_t во времени, в этом гипотетическом случае вы можете думать, что каждые 1 минуту 10 датчиков собирают и отправляют информацию на C&C (Control and Command).

Теперь, обладая этой исторической информацией, мы разделим данные на три этапа. В период от 0 до 500 минут это нормальное поведение, и с этими данными мы будем моделировать детекторную систему.

Для периода от 501 до 600 минут это тоже нормальное поведение, но мы будем использовать его для тестирования.

И, наконец, период с 601 по 700 минут, это аварийная ситуация.

Для моделирования отказа в двух датчиках был создан гауссов шум.

Поведение датчиков можно увидеть на временной шкале, когда в момент времени 601 начинается сбор данных, указывающий на что-то не так.

Модель

Для начала давайте стандартизируем данные, оставив их центрированными со средним значением 0 и стандартным отклонением, равным 0.

Давайте вычислим ковариационную матрицу для вычисления SVD, а затем преобразуем исходные данные, получив первые два компонента собственных векторов, сделав преобразование в новом пространстве.

Как видите, цель состоит в том, чтобы смоделировать то, что считается нормальным поведением, а затем сделать выводы по всем остальным моментам в будущем.

Следовательно, расчет ковариации и svd-разложения выполняется только на данных, которые считаются неаномальными (1–500 минут).

Статистика Т2 Хотеллинга

Теперь, чтобы вычислить статистику T2, просто преобразуйте каждый пример.

Мы вычисляем SVD-разложение ковариационной матрицы, и с его помощью мы можем использовать приведенное ниже уравнение для вычисления z_score для каждого примера в нашем наборе данных.

И, наконец, мы можем использовать приведенное ниже приближение для вычисления порога для T2, указывая, что любой пример выше этого порога можно рассматривать как аномальное поведение.

Как можно заметить, с 600-й минуты все регистры расположены выше порогового значения, что указывает на поведение, отличное от нормального, и в качестве отправной точки можно использовать статистику T2 для помощи в диагностике в многомерных средах для автоматизировать обнаружение аномального поведения.