Выделяем аномалии в числовых данных с помощью медианного отклонения

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Эта заметка будет полезна тем, кто занимается анализом числовых данных. В ней вы узнаете, как найти выбросы в данных, не используя среднее и стандартное отклонение. Также мы обойдемся без межквартильного интервала.

Выброс в числовых данных — это значение, которое сильно отличается от большинства других значений в наборе. Выброс может возникнуть из-за ошибки в измерениях, а может фиксировать реальное экстремальное значение. К выбросу можно отнести как очень большое, так и очень маленькое значение.

Так как же найти такой выброс?

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

Пусть камера зафиксировала следующие значения:

5, 6, 4, 1, 1, 8, 8, 6, 12, 2, 5.

На глаз видно, что 12 — это выброс. Но как алгоритмически определить, что число автомобилей, проехавших за минуту, является выбросом?

» Среднее и стандартное отклонение.

В мире, где распределение значений удовлетворяет условию нормальности, выбросы находят при помощи среднего (AVG) и стандартного отклонения (STD). От среднего отнимают или прибавляют станд. откл., умноженное на коэффициент k.

min = AVG - k STD,

max = AVG + k STD.

Обычно k = 3 — это то самое правило трех сигм, о котором многие слышали. (Есть еще правило шести сигм, но о нем как-нибудь потом поговорим.) Все значения, меньшие или большие найденных границ, считаются выбросами.

Для нашей выборки:

AVG = 5,27

STD = 3,32

min = -4,69

max = 15,23

Так как {вся выборка} < max, то этот способ выбросов не зафиксировал.

» Межквартильный размах.

В мире ненормально распределенных значений данных для выявления выбросов используют межквартильный размах (IQR). Он равен разнице между третьим и первым квартилями.

IQR = Q3 - Q1.

Для определения граничных значений межквартильный размах отнимают или прибавляют к медиане (MED), умноженной на коэффициент k. Обычно принимают k = 1,5.

min = MED - k IQR,

max = MED + k IQR.

Тогда для нашей выборки получатся следующие величины:

MED = 5

IQR = 4

min = 0,5

max = 14,5

То есть такой способ тоже выбросов не зафиксировал.

» Медианное отклонение.

В реальном мире, где не работает ни первый, ни второй способ, используют медианное отклонение. Для этого находят медиану (MED), затем из каждой величины вычитают медиану и берут модуль от полученной разницы, затем вновь находят медиану новой выборки.

У нас MED = 5.

Абсолютные значения разницы между медианой и данными следующие:

исходные = 5, 6, 4, 1, 1, 8, 8, 6, 12, 2, 5

минус MED = 0, 1, 1, 4, 4, 3, 3, 1, 7, 3, 0.

Теперь найдем медиану новых данных:

MED1 = 3

Затем умножим ее на специальную константу 1,4826, что даст нам аналог стандартного отклонения:

MED2 = 1,4826 ? 3 = 4,44.

И вот теперь определим граничный диапазон, вне которого находятся выбросы:

min = MED - k MED2,

max = MED + k MED2,

где k = 3.

Для наших данных получим:

min = 0,55

max = 9,44.

И выбросом оказывается число 12. То есть как только камера насчитает 12 автомобилей в минуту, она включит светофор.

Описанный алгоритм применим для непрерывно поступающих значений. В этом случае необходимо учитывать только значения из узкого окна, считая выбросами величины, превосходящие пороговую величину. На рисунке показан пример работы алгоритма на динамически поступающих данных. Он прекрасно зафиксировал как аномально высокие, так и аномально низкие величины.

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

Метод медианного отклонения прекрасно работает и на смещенных выборках. А что делать, если наше распределение является бимодальным — двувершинным? В том случае используют детектор выбросов, основанный на двойном медианном отклонении — doubleMAD outlier detector.

На этом у меня все.


Источник: vk.com

Комментарии: