Как найти выбросы в статистике


Загрузить PDF


Загрузить PDF

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

Шаги

  1. Изображение с названием Calculate Outliers Step 1

    1

    Научитесь распознавать потенциальный выброс. Перед тем, как исключать выделяющиеся значения из набора данных, следует определить потенциальные выбросы. Выбросы являются значениями, которые сильно отличаются от большинства значений в наборе данных; другими словами, выбросы лежат вне тренда большинства значений. Это легко обнаружить в таблицах значений или (особенно) на графиках.[2]
    Если значения в наборе данных нанести на график, то выбросы будут лежать далеко от большинства других значений. Если, например, большинство значений ложатся на прямую, то выбросы лежат по обе стороны от такой прямой.

    • Например, рассмотрим набор данных, представляющий температуры 12 различных объектов в комнате. Если 11 объектов имеют температуру примерно 70 градусов, но двенадцатый объект (возможно, печь) имеет температуру 300 градусов, то быстрый просмотр значений может показать, что печь является вероятным выбросом.
  2. Изображение с названием Calculate Outliers Step 2

    2

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

    • Продолжая приведенный выше пример, рассмотрим следующий набор данных, представляющий температуры нескольких объектов: {71, 70, 73, 70, 70, 69, 70, 72, 71, 300, 71, 69}. Этот набор должен быть упорядочен следующим образом: {69, 69, 70, 70, 70, 70, 71, 71, 71, 72, 73, 300}.
  3. Изображение с названием Calculate Outliers Step 3

    3

    Вычислите медиану набора данных. Медиана набора данных — это величина, находящаяся в середине набора данных.[3]
    Если набор данных содержит нечетное количество значений, то медиана — это значение, до которого и после которого расположено одинаковое количество значений в наборе данных. Но если набор данных содержит четное число значений, то нужно найти среднее арифметическое двух средних значений. Обратите внимание, что при вычислении выбросов медиана, как правило, обозначается как Q2, так как она лежит между Q1 и Q3 — нижним и верхним квартилями, которые мы определим позже.

    • Не бойтесь работать с наборами данных, количество значений в которых четное. Средним арифметическим двух средних значений будет число, которого нет в наборе данных; это нормально. Но если два средних значения — это одно и то же число, то среднее арифметическое равно этому числу; это тоже в порядке вещей.
    • В приведенном выше примере средние 2 значения — это 70 и 71, так что медиана равна ((70+71)/2) = 70,5.
  4. Изображение с названием Calculate Outliers Step 4

    4

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

    • В нашем примере 6 значений расположены после медианы и 6 значений — до нее. Это означает, что для вычисления нижнего квартиля нам нужно найти среднее арифметическое двух средних значений из шести значений, лежащих до медианы. Здесь средние значения равны 70 и 70. Таким образом, Q1 = ((70 + 70)/2) = 70.
  5. Изображение с названием Calculate Outliers Step 5

    5

    Вычислите верхний квартиль. Эта величина, обозначаемая как Q3, выше которой лежит 25% значений из набора данных. Процесс вычисления Q3 аналогичен процессу вычисления Q1, но здесь рассматриваются значения, расположенные после медианы.

    • В приведенном выше примере два средних значения из шести значений, лежащих после медианы, равны 71 и 72. Таким образом, Q3 = ((71 + 72)/2) = 71,5.
  6. Изображение с названием Calculate Outliers Step 6

    6

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

    • В нашем примере Q1 = 70, а Q3 = 71,5. Межквартильный диапазон равен 71,5 — 70 = 1,5.
    • Обратите внимание, что это применимо и к отрицательным значениям Q1 и Q3. Например, если Q1 = -70, то межквартильный диапазон равен 71,5 — (-70) = 141,5.
  7. Изображение с названием Calculate Outliers Step 7

    7

    Найдите «внутренние границы» значений в наборе данных. Выбросы определяются через анализ значений — попадают ли они или нет в пределы так называемых «внутренних границ» и «внешних границ».[4]
    Значение, лежащее вне «внутренних границ», классифицируется как «незначительный выброс», в то время как значение, находящееся за «внешними границами», классифицируется как «значительный выброс». Чтобы найти внутренние границы, необходимо умножить межквартильный диапазон на 1,5; результат нужно прибавить к Q3 и вычесть из Q1. Два найденных числа являются внутренними границами набора данных.

    • В нашем примере межквартильный диапазон равен (71,5 — 70) = 1,5. Далее: 1,5 * 1,5 = 2,25. Это число нужно прибавить к Q3 и вычесть его из Q1, чтобы найти внутренние границы:
      • 71,5 + 2,25 = 73,75
      • 70 — 2,25 = 67,75
      • Таким образом, внутренние границы равны 67,75 и 73,75.
    • В нашем примере только температура печи — 300 градусов — лежит вне этих границ и может считаться незначительным выбросом. Но не спешите с выводами —нам предстоит определить, является ли эта температура значительным выбросом.

      Изображение с названием Calculate Outliers Step 7Bullet2

  8. Изображение с названием Calculate Outliers Step 8

    8

    Найдите «внешние границы» набора данных. Это делается таким же образом, как для внутренних границ, за исключением того, что межквартильный диапазон умножается на 3, а не на 1,5. Результат нужно прибавить к Q3 и вычесть из Q1. Два найденных числа являются внешними границами набора данных.

    • В нашем примере умножьте межквартильный диапазон на 3: 1,5 * 3 = 4,5. Вычислите внешние границы:
      • 71,5 + 4,5 = 76
      • 70 — 4,5 = 65,5
      • Таким образом, внешние границы равны 65,5 и 76.
    • Любые значения, которые лежат за пределами внешних границ, считаются значительными выбросами. В нашем примере температура печи — 300 градусов — считается значительным выбросом.

      Изображение с названием Calculate Outliers Step 8Bullet2

  9. Изображение с названием Calculate Outliers Step 9

    9

    Воспользуйтесь качественной оценкой для определения того, нужно ли исключать выбросы из набора данных. Метод, описанный выше, позволяет определить, являются ли некоторые значения выбросами (незначительными или значительными). Тем не менее, не ошибитесь — значение, классифицируемое в качестве выброса, является только «кандидатом» на исключение, то есть вы не обязаны его исключать. Причина возникновения выброса — это основной фактор, влияющий на решение об исключении выброса. Как правило, выбросы, которые возникают из-за ошибки (в измерениях, записях и так далее), исключаются.[5]
    С другой стороны, выбросы, связанные не с ошибками, а с новой информацией или тенденцией, как правило, оставляют в наборе данных.

    • Не менее важно оценить влияние выбросов на среднее арифметическое значение набора данных (искажают ли они его или нет). Это особенно важно в том случае, когда вы делаете выводы на основе среднего значения набора данных.
    • В нашем примере крайне маловероятно, что печь нагреется до температуры 300 градусов (если только не учитывать природные аномалии). Поэтому можно заключить (с высокой долей уверенности), что такая температура — это ошибка измерений, которую нужно исключить из набора данных. Более того, если вы не исключите выброс, среднее значение набора данных будет равно (69 + 69 + 70 + 70 + 70 + 70 + 71 + 71 + 71 + 72 + 73 + 300)/12 = 89,67 градусов, но если вы исключите выброс, среднее значение составит (69 + 69 + 70 + 70 + 70 + 70 + 71 + 71 + 71 + 72 + 73)/11 = 70,55 градусов.
      • Выбросы — это, как правило, результат человеческих ошибок, поэтому выбросы необходимо исключать из наборов данных.
  10. Изображение с названием Calculate Outliers Step 10

    10

    Уясните важность (иногда) выбросов, оставляемых в наборе данных. Некоторые выбросы должны быть исключены из набора данных, так как их причинами являются ошибки и технические неполадки; другие выбросы необходимо оставить в наборе данных. Если, например, выброс не является результатом ошибки и/или дает новое понимание тестируемого явления, то его нужно оставить в наборе данных. Научные эксперименты особенно чувствительны к выбросам — исключив выброс по ошибке, вы можете пропустить некоторую новую тенденцию или открытие.

    • Например, мы разрабатываем новый препарат для увеличения размера рыб в рыбном хозяйстве. Мы будем использовать старый набор данных ({71, 70, 73, 70, 70, 69, 70, 72, 71, 300, 71, 69}), но на этот раз каждое значение будет представлять массу рыбы (в граммах) после приема экспериментального препарата. Другими словами, первый препарат приводит к увеличению массы рыбы до 71 г, второй препарат — до 70 г и так далее. В этой ситуации 300 — это значительный выброс, но мы не должны исключать его; если предположить, что не было ошибок измерения, то такой выброс — это значительный успех в эксперименте. Препарат, который увеличил вес рыбы до 300 граммов, действует значительно лучше других препаратов; таким образом, 300 — это самое важное значение в наборе данных.

    Реклама

Советы

  • Когда выбросы найдены, попытайтесь объяснить их наличие до того, как исключить их из набора данных. Они могут указывать на ошибки измерения или аномалии в распределении.

Реклама

Что вам понадобится

  • Калькулятор

Об этой статье

Эту страницу просматривали 59 680 раз.

Была ли эта статья полезной?

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

Почему важно находить выбросы в статистике?

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

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

Выбросы также могут выявить несоответствия в методах исследования и сбора данных и помочь вам уточнить ваши процедуры.

Вот пять способов найти выбросы в вашем наборе данных:

1. Сортируйте данные

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

Например, если у вас есть эти числа в порядке возрастания: 3, 6, 7, 10 и 54, вы можете увидеть, что 54 намного больше, чем остальные точки данных. Статистики сочли бы 54 выбросом.

Подробнее: Как сортировать данные в Excel (с пошаговыми инструкциями)

2. График ваших данных

Вы также можете использовать графики, такие как диаграммы рассеяния или гистограммы, чтобы найти выбросы. Графики представляют ваши данные визуально, что позволяет легко увидеть, когда часть данных отличается от остального набора данных. Точечная диаграмма отображает ваши точки данных в виде точек на графике, основанном на двух переменных, нанесенных на оси x и y. Диаграммы рассеивания полезны для визуализации выбросов, потому что вы можете видеть, когда одна точка находится далеко от других точек, которые обычно сгруппированы вместе. Следовательно, точка данных, которая находится далеко от группы, является выбросом.

Гистограмма отображает данные в группах, называемых «ячейками». Гистограммы обычно группируют данные в диапазонах, что отличает гистограммы от гистограмм. Ваш диапазон данных обычно представляет собой ось X, а другая ваша переменная обычно представляет собой ось Y. Это может помочь определить необычные точки данных. Например, если большинство ваших точек данных находятся на правой стороне графика, а один бин данных находится на левой стороне графика, вы можете сделать вывод, что крайний левый бин является выбросом.

3. Рассчитайте z-значение

Z-оценка, или стандартная оценка, показывает, насколько далеко точка данных находится от среднего значения данных. Чтобы рассчитать z-оценку, вы вычитаете среднее значение из исходного измерения и делите его на стандартное отклонение.

Уравнение для расчета z-показателя:

Z = (X−µ) ÷ σ

куда:

X = необработанное измерение

µ = среднее значение

σ = стандартное отклонение

Чем дальше z-оценка от 0, тем более необычна точка данных. Например, если z-оценки для ваших точек данных: -0,35, -0,26, -0,021, -0,18 и 4,7, вы можете сказать, что точка данных с z-оценкой 4,7 находится дальше всего от 0 и является выбросом.

Подробнее: Как рассчитать Z-оценку

4. Рассчитайте межквартильный размах

Межквартильный диапазон (IQR) измеряет дисперсию точек данных между отметками первого и третьего квартилей. Общее правило его использования для расчета выбросов заключается в том, что точка данных является выбросом, если она более чем в 1,5 раза превышает IQR ниже первого квартиля или в 1,5 раза превышает IQR выше третьего квартиля.

Для расчета IQR необходимо знать процентиль первого и третьего квартилей. Медиана верхней половины набора данных является процентилем для третьего квартиля, а медиана нижней половины набора данных является процентилем для первого квартиля.

Чтобы найти IQR, вы вычитаете первый квартиль из третьего квартиля:

IQR = Q3 − Q1

куда:

Q3 = третий квартиль = медиана верхней половины набора данных

Q1 = первый квартиль = медиана нижней половины набора данных

Затем вы можете использовать IQR, чтобы найти любые выбросы в вашем наборе данных. Уравнения для расчета низких или высоких выбросов с помощью диапазона IQR:

Высокий выброс ≥ Q3 + (1,5 x IQR)

Низкий выброс ≤ Q1 − (1,5 x IQR)

Подробнее: Как найти медиану набора данных в статистике

5. Используйте проверку гипотез

Если вы хотите попробовать более продвинутые варианты поиска выбросов, рассмотрите возможность проверки гипотез, таких как тест Граббса, обобщенный ESD или критерий Пирса. Тесты гипотез включают обработку данных с помощью уравнений, чтобы увидеть, соответствуют ли они предсказанным результатам. Критерий Граббса можно использовать, когда вы подозреваете только один выброс в нормально распределенном наборе данных.

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

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

Как найти выбросы, используя межквартильный диапазон

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


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

Один из распространенных способов найти выбросы в наборе данных — использовать межквартильный диапазон .

Межквартильный диапазон, часто сокращенно IQR, представляет собой разницу между 25-м процентилем (Q1) и 75-м процентилем (Q3) в наборе данных. Он измеряет разброс средних 50% значений.

Один из популярных методов состоит в том, чтобы объявить наблюдение выбросом, если его значение в 1,5 раза больше, чем IQR, или в 1,5 раза меньше, чем IQR.

Найдите выбросы с помощью IQR

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

Шаг 1: Создайте данные

Предположим, у нас есть следующий набор данных:

Шаг 2: Определите первый и третий квартиль

Первая квартиль оказывается равной 5 , а третья квартиль оказывается равной 20,75 .

Таким образом, межквартильный размах оказывается равным 20,75 -5 = 15,75 .

Шаг 3: Найдите нижний и верхний пределы

Нижний предел рассчитывается как:

Нижний предел = Q1 – 1,5*IQR = 5 – 1,5*15,75 = -18,625

И верхний предел рассчитывается как:

Верхний предел = Q3 + 1,5 * IQR = 20,75 + 1,5 * 15,75 = 44,375

Найдите выбросы с помощью метода IQR

Шаг 4: Определите выбросы

Единственное наблюдение в наборе данных со значением меньше нижнего предела или больше верхнего предела — 46.Таким образом, это единственный выброс в этом наборе данных.

Пример обнаружения выбросов с межквартильным диапазоном

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

Как найти выбросы на практике

В следующих руководствах объясняется, как найти выбросы, используя межквартильный диапазон в различных статистических программах:

Как найти выбросы в Excel
Как найти выбросы в R
Как найти выбросы в Python
Как найти выбросы в SPSS

Отдельным вопросом работы с количественными данными являются выбросы (outliers), которые существенно влияют на многие статистические показатели, мешают масштабировать данные и ухудшают качество моделей машинного обучения.

Для визуализации некоторых результатов потребуется обновить sklearn и перезапустить среду выполнения.

Выбросы — это данные, которые сильно отличаются от общего распределения. При этом можно выделить:

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

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

[185.0, 179.0, 186.0, 195.0, 178.0, 178.0, 196.0, 188.0, 175.0, 185.0, 175.0, 175.0, 182.0, 161.0, 163.0, 174.0, 170.0, 183.0, 171.0, 166.0, 195.0, 178.0, 181.0, 166.0, 175.0, 181.0, 168.0, 184.0, 174.0, 177.0, 174.0, 199.0, 180.0, 169.0, 188.0, 168.0, 182.0, 160.0, 167.0, 182.0, 187.0, 182.0, 179.0, 177.0, 165.0, 173.0, 175.0, 191.0, 183.0, 162.0, 183.0, 176.0, 173.0, 186.0, 190.0, 189.0, 172.0, 177.0, 183.0, 190.0, 175.0, 178.0, 169.0, 168.0, 188.0, 194.0, 179.0, 190.0, 184.0, 174.0, 184.0, 195.0, 180.0, 196.0, 154.0, 188.0, 181.0, 177.0, 181.0, 160.0, 178.0, 184.0, 195.0, 175.0, 172.0, 175.0, 189.0, 183.0, 175.0, 185.0, 181.0, 190.0, 173.0, 177.0, 176.0, 165.0, 183.0, 183.0, 180.0, 178.0, 166.0, 176.0, 177.0, 172.0, 178.0, 184.0, 199.0, 182.0, 183.0, 179.0, 161.0, 180.0, 181.0, 205.0, 178.0, 183.0, 180.0, 168.0, 191.0, 188.0, 188.0, 171.0, 194.0, 166.0, 186.0, 202.0, 170.0, 174.0, 181.0, 175.0, 164.0, 181.0, 169.0, 185.0, 171.0, 195.0, 172.0, 177.0, 188.0, 168.0, 182.0, 193.0, 164.0, 182.0, 183.0, 188.0, 168.0, 167.0, 185.0, 183.0, 183.0, 183.0, 173.0, 182.0, 183.0, 173.0, 199.0, 185.0, 168.0, 187.0, 170.0, 188.0, 192.0, 172.0, 190.0, 184.0, 188.0, 199.0, 178.0, 172.0, 171.0, 172.0, 179.0, 183.0, 183.0, 188.0, 180.0, 195.0, 177.0, 207.0, 186.0, 171.0, 169.0, 185.0, 178.0, 187.0, 185.0, 179.0, 172.0, 165.0, 176.0, 189.0, 182.0, 168.0, 182.0, 184.0, 171.0, 182.0, 181.0, 169.0, 184.0, 186.0, 191.0, 191.0, 166.0, 171.0, 185.0, 185.0, 185.0, 219.0, 186.0, 191.0, 190.0, 187.0, 177.0, 188.0, 172.0, 178.0, 175.0, 181.0, 203.0, 161.0, 187.0, 164.0, 175.0, 191.0, 181.0, 169.0, 173.0, 187.0, 173.0, 182.0, 180.0, 173.0, 201.0, 186.0, 160.0, 182.0, 173.0, 189.0, 172.0, 179.0, 185.0, 189.0, 168.0, 177.0, 175.0, 173.0, 198.0, 184.0, 167.0, 189.0, 201.0, 190.0, 165.0, 175.0, 193.0, 173.0, 184.0, 188.0, 171.0, 179.0, 148.0, 170.0, 177.0, 168.0, 196.0, 166.0, 176.0, 181.0, 194.0, 166.0, 192.0, 180.0, 170.0, 185.0, 182.0, 174.0, 181.0, 176.0, 181.0, 187.0, 196.0, 168.0, 201.0, 160.0, 178.0, 186.0, 183.0, 174.0, 178.0, 175.0, 174.0, 188.0, 184.0, 173.0, 189.0, 183.0, 188.0, 186.0, 172.0, 174.0, 187.0, 186.0, 180.0, 181.0, 193.0, 174.0, 185.0, 178.0, 178.0, 191.0, 188.0, 188.0, 193.0, 180.0, 187.0, 177.0, 183.0, 179.0, 181.0, 186.0, 172.0, 201.0, 170.0, 168.0, 192.0, 188.0, 186.0, 186.0, 180.0, 171.0, 181.0, 173.0, 190.0, 179.0, 172.0, 177.0, 184.0, 174.0, 172.0, 182.0, 182.0, 175.0, 175.0, 182.0, 166.0, 166.0, 173.0, 178.0, 183.0, 195.0, 189.0, 178.0, 180.0, 170.0, 180.0, 177.0, 183.0, 172.0, 185.0, 195.0, 179.0, 184.0, 187.0, 176.0, 182.0, 180.0, 181.0, 172.0, 180.0, 185.0, 195.0, 190.0, 202.0, 172.0, 189.0, 182.0, 202.0, 172.0, 172.0, 174.0, 159.0, 175.0, 172.0, 182.0, 183.0, 199.0, 190.0, 174.0, 171.0, 185.0, 167.0, 198.0, 192.0, 175.0, 163.0, 194.0, 179.0, 192.0, 164.0, 174.0, 180.0, 180.0, 175.0, 186.0, 169.0, 179.0, 181.0, 185.0, 187.0, 169.0, 165.0, 193.0, 183.0, 173.0, 196.0, 181.0, 192.0, 181.0, 201.0, 198.0, 178.0, 190.0, 186.0, 194.0, 170.0, 187.0, 191.0, 162.0, 168.0, 160.0, 177.0, 187.0, 195.0, 181.0, 196.0, 166.0, 163.0, 179.0, 184.0, 180.0, 159.0, 179.0, 167.0, 187.0, 184.0, 171.0, 175.0, 169.0, 179.0, 190.0, 170.0, 185.0, 175.0, 172.0, 179.0, 170.0, 174.0, 168.0, 200.0, 180.0, 173.0, 182.0, 179.0, 178.0, 186.0, 188.0, 175.0, 174.0, 177.0, 157.0, 165.0, 194.0, 196.0, 178.0, 186.0, 183.0, 211.0, 191.0, 179.0, 170.0, 164.0, 182.0, 172.0, 166.0, 174.0, 169.0, 197.0, 189.0, 180.0, 195.0, 181.0, 171.0, 195.0, 185.0, 170.0, 178.0, 171.0, 166.0, 189.0, 199.0, 166.0, 186.0, 173.0, 175.0, 174.0, 171.0, 180.0, 172.0, 183.0, 179.0, 178.0, 171.0, 174.0, 188.0, 185.0, 170.0, 181.0, 188.0, 163.0, 185.0, 173.0, 186.0, 172.0, 162.0, 164.0, 180.0, 183.0, 171.0, 186.0, 163.0, 179.0, 168.0, 173.0, 180.0, 171.0, 176.0, 190.0, 174.0, 188.0, 169.0, 185.0, 194.0, 155.0, 172.0, 186.0, 178.0, 184.0, 174.0, 181.0, 178.0, 192.0, 183.0, 183.0, 176.0, 175.0, 176.0, 184.0, 176.0, 183.0, 201.0, 189.0, 177.0, 192.0, 176.0, 160.0, 170.0, 161.0, 176.0, 180.0, 197.0, 183.0, 178.0, 188.0, 158.0, 182.0, 188.0, 165.0, 191.0, 183.0, 176.0, 186.0, 203.0, 182.0, 182.0, 175.0, 172.0, 188.0, 171.0, 181.0, 175.0, 185.0, 183.0, 190.0, 175.0, 177.0, 170.0, 176.0, 184.0, 188.0, 171.0, 189.0, 194.0, 184.0, 199.0, 172.0, 168.0, 162.0, 195.0, 187.0, 179.0, 183.0, 169.0, 204.0, 181.0, 181.0, 187.0, 185.0, 182.0, 172.0, 185.0, 199.0, 193.0, 196.0, 175.0, 170.0, 179.0, 181.0, 191.0, 163.0, 195.0, 178.0, 176.0, 170.0, 163.0, 188.0, 181.0, 167.0, 167.0, 177.0, 197.0, 177.0, 165.0, 178.0, 177.0, 153.0, 179.0, 178.0, 187.0, 198.0, 191.0, 177.0, 169.0, 206.0, 181.0, 180.0, 180.0, 182.0, 179.0, 174.0, 175.0, 180.0, 175.0, 173.0, 181.0, 177.0, 195.0, 153.0, 191.0, 192.0, 159.0, 177.0, 176.0, 166.0, 172.0, 169.0, 198.0, 189.0, 193.0, 187.0, 169.0, 175.0, 185.0, 168.0, 187.0, 178.0, 176.0, 187.0, 184.0, 176.0, 192.0, 169.0, 186.0, 186.0, 177.0, 183.0, 167.0, 189.0, 178.0, 175.0, 190.0, 173.0, 166.0, 164.0, 186.0, 167.0, 198.0, 159.0, 197.0, 182.0, 179.0, 175.0, 184.0, 180.0, 191.0, 181.0, 182.0, 176.0, 179.0, 183.0, 163.0, 167.0, 187.0, 182.0, 178.0, 180.0, 183.0, 175.0, 172.0, 182.0, 170.0, 184.0, 163.0, 190.0, 185.0, 183.0, 190.0, 197.0, 190.0, 162.0, 167.0, 174.0, 180.0, 185.0, 173.0, 182.0, 172.0, 174.0, 166.0, 171.0, 166.0, 170.0, 191.0, 171.0, 206.0, 185.0, 182.0, 171.0, 187.0, 174.0, 181.0, 206.0, 179.0, 191.0, 173.0, 180.0, 198.0, 174.0, 198.0, 187.0, 174.0, 186.0, 190.0, 186.0, 164.0, 173.0, 178.0, 179.0, 186.0, 182.0, 167.0, 184.0, 186.0, 186.0, 191.0, 188.0, 185.0, 179.0, 163.0, 184.0, 182.0, 183.0, 167.0, 169.0, 191.0, 180.0, 187.0, 180.0, 180.0, 189.0, 175.0, 181.0, 175.0, 176.0, 177.0, 182.0, 175.0, 193.0, 171.0, 178.0, 176.0, 194.0, 182.0, 190.0, 165.0, 183.0, 189.0, 181.0, 191.0, 175.0, 194.0, 203.0, 176.0, 176.0, 195.0, 196.0, 175.0, 176.0, 177.0, 167.0, 171.0, 170.0, 172.0, 180.0, 182.0, 196.0, 170.0, 190.0, 178.0, 180.0, 187.0, 169.0, 184.0, 182.0, 185.0, 183.0, 205.0, 174.0, 175.0, 174.0, 174.0, 174.0, 192.0, 194.0, 174.0, 172.0, 185.0, 174.0, 186.0, 182.0, 165.0, 195.0, 198.0, 174.0, 176.0, 183.0, 183.0, 187.0, 200.0, 178.0, 172.0, 166.0, 173.0, 180.0, 198.0, 175.0, 182.0, 180.0, 192.0, 205.0, 175.0, 175.0, 190.0, 187.0, 198.0, 186.0, 176.0, 186.0, 191.0, 188.0, 185.0, 191.0, 192.0, 194.0, 186.0, 178.0, 181.0, 192.0, 172.0, 184.0, 176.0, 180.0, 193.0, 182.0, 180.0, 166.0, 187.0, 186.0, 202.0, 177.0, 182.0, 182.0, 196.0, 179.0, 183.0, 186.0, 182.0, 176.0, 182.0, 191.0, 170.0, 181.0, 173.0, 192.0, 165.0, 174.0, 184.0, 196.0, 179.0, 174.0, 199.0, 166.0, 158.0, 184.0, 175.0, 170.0, 187.0, 182.0, 174.0, 167.0, 189.0, 187.0, 179.0, 198.0, 169.0, 165.0, 173.0, 180.0, 182.0, 178.0, 184.0, 167.0, 194.0, 179.0, 191.0, 183.0, 185.0, 186.0, 184.0, 186.0, 193.0, 182.0, 187.0, 179.0, 194.0, 173.0, 198.0, 180.0, 166.0, 181.0, 173.0, 188.0, 173.0, 176.0, 161.0, 175.0, 156.0, 164.0, 188.0, 188.0, 184.0, 170.0, 180.0, 180.0, 168.0, 195.0, 189.0, 178.0, 180.0, 182.0, 160.0, 178.0, 173.0, 170.0, 177.0, 198.0, 186.0, 174.0, 186.0]

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

Добавим выброс и повторно проверим гипотезу.

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

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

Модели ML. Выбросы влияют на качество модели линейной регрессии. Возьмем третий набор данных из квартета Энскомба (Anscombe’s quartet).

Посмотрим на коэффициент корреляции.

Удалим выброс.

Вновь посмотрим на график и коэффициент корреляции.

Выбросы особенно сильны, когда мы располагаем небольшим количеством данных.

Отличающееся наблюдение можно разделить на выбросы (outlier) и новые отличающиеся наблюдения (novelty). Выброс уже присутствует в данных. То есть мы смотрим на данные и понимаем, что часть содержащихся в них наблюдений существенно отличаются от общей массы. Во втором случае, у нас уже есть набор данных, нас просят определить, является ли новое наблюдение выбросом или нет.

Так как для выявления уже присутствующих выбросов у нас нет никакой разметки, это обучение без учителя. Во втором случае, это частичное обучение с учителем (semi-supervised). На практике это означает, что при использовании продвинутых алгоритмов для выявления выбросов, если речь идет о новых отличающихся наблюдениях (novelty), мы должны использовать .fit() на обучающей выборке, а .predict(), .decision_function() и .score_samples() на тестовой (про алгоритмы и эти методы поговорим дальше). Подробнее здесь⧉.

Начнем с более простых методов. Скачаем и подгрузим данные.

Выбросы можно увидеть на boxplot. По умолчанию, длина «усов» рассчитывается как $ 1,5 times IQR $. Данные, которые выходят за их пределы — выбросы.

Кроме того, выбросы можно попытаться выявить на точечной диаграмме.

Количественно выбросы можно найти через стандартизированную оценку (z-оценку, z-score). Эта оценка показывает на сколько средних квадратических отклонений значение отличается от среднего.

Так как мы знаем, что 99,7 процентов наблюдений лежат в пределах трех СКО от среднего, то можем предположить, что выбросами будут оставшиеся 0,3 процента.

Выведем эти значения.

Посмотрим, как удалить выбросы в отдельном столбце.

Теперь удалим выбросы во всем датафрейме.

Выведем корреляцию до и после удаления выбросов.

В данном случае корреляция увеличилась.

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

Вместо z-оценки можно использовать изменнную z-оценку (modified z-score), которая использует метрики робастной статистики.

где MAD представляет собой среднее абсолютное отклонение (median absolute deviation) и рассчитывается по формуле $MAD = median(|x-Q2|). Заметим⧉, что $MAD=0,6745sigma$.

Iglewicz и Hoaglin рекомендуют считать выбросами те значения, для которых $|z_{mod} > 3,5|$. Применим этот метод.

Обратите внимание, что в данном случае мы очень агрессивно удаляли значения. Посмотрим на корреляцию.

Еще одним распространенным способом выявления и удаления выбросов является правило $ 1,5 times IQR $. Рассмотрим, почему именно 1,5? В стандартном нормальном распределении Q1 и Q3 соответствуют $-0.6745sigma$ и $0.6745sigma$.

Зная эти показатели, мы можем рассчитать верхнюю и нижнюю границу.

Замечу, что для того, чтобы этот метод нахождения выбросов был аналогичен z-score, было бы точнее использовать показатель $ 1,75 times IQR $. При таком решении выбросами будет считаться большее количество наблюдений.

Найдем и удалим выбросы в столбце.

Найдем и удалим выбросы во всем датафрейме.

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

Теперь посмотрим на методы выявления выбросов, основанные на модели (model-based approaches)

Изолирующий лес (Isolation Forest или iForest) использует принципы решающего дерева (Decision Tree) и построенного на его основе ансамблевого метода случайного леса (Random Forest).

Принцип построения изолирующиего дерева (Isolation Tree или iTree) довольно прост. Алгоритм случайным образом выбирает признак, затем в пределах диапазона этого признака случайно выбирает разделяющую границу (split). Та часть наблюдений, которая меньше либо равна этой границые. оказывается в левом потомке (left child node), та которая больше — в правом (right child node). Затем процесс рекурсивно повторяется.

Что интересно, в получившейся древовидной структуре путь (то есть количество сплитов) от корневого узла (root node) до выброса будет существенно короче, чем до обычного наблюдения. Это логично, например, в задаче классификации с помощью решающего дерева в первую очередь удается отделить тот класс, который наиболее удален от остальных.

Приведем классификацию с помощью решающего дерева на примере датасета цветов ириса.

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

Лес изолирующих деревьев соответственно дает усредненное расстояние до каждой из точек.

Рассмотрим как количественно выразить среднее расстояние до каждой из точек или показатель аномальности (anomaly score). Приведем формулу.

где x — это конкретное наблюдение из общего числа n наблюдений. При этом c(n) — это средний путь до листа в аналогичном по структуре двоичном дереве поиска (binary search tree, BST) с n наблюдений, а $ E(h(x)) $ — усредненное по всем деревьям расстояние до конкретного наблюдения x. Нормализуя показатель $ E(h(x)) $ по c(n) мы получаем, что:

При этом расстояние $h(x)$ находится в диапазоне $(0, n-1]$, а s в диапазоне $(0, 1]$. Таким образом,

Разберем пример⧉, приведенный на сайте sklearn. Вначале создадим синтетические данные с выбросами.

Разделим выборку.

Обучим класс изолирующего леса. Так как наблюдений мало, для каждого дерева будем брать все объекты обучающей выборки.

Сделаем прогноз на тесте и посмотрим на результат.

Выведем решающую границу.

Продемонстрируем особенности параметра contamination на простом примере. Возьмем небольшой набор данных и поочередно применим параметры contamination = ‘auto’, 0.1, 0.2. Несколько пояснений:

Применим алгоритм изолирующего леса к датасету boston.

Посмотрим на взаимосвязь признака RM с целевой переменной после удаления выбросов.

Для того чтобы увидеть недостаток алгоритма, рассмотрим тепловую карту, на которой цветом будут выводиться области с одинаковым anomaly score.

Как вы видите, в верхнем левом и нижнем правом углу также находятся области (их называют ghost areas), в которых объекты могли бы быть классифицированы как обычные наблюдения, хотя это неправильно (ложноположительный результат). Это связано с тем, что границы, проводимые алгоритмом параллельны осям координат.

Приведем иллюстрацию из статьи⧉ исследователей, усовершенствовавших этот алгоритм.

Для решения этой проблемы был предложен расширенный алгоритм изолирующего леса.

Расширенный алгоритм изолирующего леса (Extended Isolation Forest) делит пространство с помощью случайных, не обязательно параллельных осям координат, гиперплоскостей. Авторами этого алгоритма являются Sahand Hariri, Matias Carrasco Kind и Rober J. Brunner⧉. Для данных на предыдущей иллюстрации разделение с помощью расширенного алгоритма могло бы выглядеть вот так.

Рассмотрим работу этого алгоритма на практике. Приведу две библиотеки, в которых реализован Extended Isolation Forest.

Используем второй вариант.

Установим h2o в Google Colab.

Запустим сервер h2o.

Импортируем класс алгоритма⧉, создадим объекты этого класса для модели обычного изолирующего леса (без наклона гиперплоскостей) и для модели с максимальным наклоном гиперплоскостей.

Максимальный наклон задается параметром extension_level и находится в диапазоне $[0, P-1]$, где P — это количество признаков. В нашем случае признаков два, поэтому для расширенного алгоритма используем extension_level = 1.

Так как Extended Isolation Forest — это алгоритм без учителя (метод .predict() выдает anomaly_score), мы не можем напрямую посчитать точность прогноза. С другой стороны, так как в созданных нами данных есть разметка, мы можем провести косвенное сравнение.

Например, мы можем отсортировать данные по anomaly_score в убывающем порядке (то есть в начале будут наблюдения, которые наиболее вероятно являются выбросами) и посмотреть, какое количество единиц (то есть не выбросов), оказалось в результатах сортировки каждого из алгоритмов.

Начнем с алгоритма обычного изолирующего леса. Сделаем прогноз.

Создадим датафрейм из исходных признаков и целевой переменной.

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

Соединим датафрейм с признаками и целевой переменной с показателями аномальности. Затем отсортируем по этой метрике в убывающем порядке и рассчитаем количество выбросов и не выбросов в имеющихся данных.

Итак, в 60-ти наблюдениях с наибольшим anomaly score обычный алгоритм поместил 39 выбросов и 21 не выброс.

Сделаем то же самое с расширенным алгоритмом.

Расширенный алгоритм сделал чуть менее качественный прогноз.

Сравним тепловые карты обоих алгоритмов.

В данном случае, как мы видим, расширенному алгоритму не удалось сформировать два обособленных кластера.

На сегодняшнем занятии мы разобрали статистические методы выявления выбросов (boxplot, scatter plot, z-score и 1,5 IQR), а также два метода, основанные на модели (алгоритмы обычного и расширенного изолирующего леса).

What is an Outlier? Definition and How to Find Outliers in Statistics

Outliers are an important part of a dataset. They can hold useful information about your data.

Outliers can give helpful insights into the data you’re studying, and they can have an effect on statistical results. This can potentially help you disover inconsistencies and detect any errors in your statistical processes.

So, knowing how to find outliers in a dataset will help you better understand your data.

There are a few different ways to find outliers in statistics.

This article will explain how to detect numeric outliers by calculating the interquartile range.

I give an example of a very simple dataset and how to calculate the interquartile range, so you can follow along if you want.

Let’s get started!

In simple terms, an outlier is an extremely high or extremely low data point relative to the nearest data point and the rest of the neighboring co-existing values in a data graph or dataset you’re working with.

Outliers are extreme values that stand out greatly from the overall pattern of values in a dataset or graph.

Below, on the far left of the graph, there is an outlier.

The value in the month of January is significantly less than in the other months.

Screenshot-2021-08-24-at-3.07.05-PM

How to Identify an Outlier in a Dataset

Alright, how do you go about finding outliers?

An outlier has to satisfy either of the following two conditions:

outlier < Q1 - 1.5(IQR)
outlier > Q3 + 1.5(IQR)

The rule for a low outlier is that a data point in a dataset has to be less than Q1 - 1.5xIQR.

This means that a data point needs to fall more than 1.5 times the Interquartile range below the first quartile to be considered a low outlier.

The rule for a high outlier is that if any data point in a dataset is more than Q3 - 1.5xIQR, it’s a high outlier.

More specifically, the data point needs to fall more than 1.5 times the Interquartile range above the third quartile to be considered a high outlier.

As you can see, there are certain individual values you need to calculate first in a dataset, such as the IQR. But to find the IQR, you need to find the so called first and third quartiles which are Q1 and Q3 respectively.

So, let’s see what each of those does and break down how to find their values in both an odd and an even dataset.

How to Find the Upper and Lower Quartiles in an Odd Dataset

To get started, let’s say that you have this dataset:

25,14,6,5,5,30,11,11,13,4,2

The first step is to sort the values in ascending numerical order,from smallest to largest number.

2,4,5,5,6,11,11,13,14,25,30

The lowest value (MIN) is 2 and the highest (MAX) is 30.

How to calculate Q2 in an odd dataset

The next step is to find the median or quartile 2 (Q2).

This particular set of data has an odd number of values, with a total of 11 scores all together.

To find the median in a dataset means that you’re finding the middle value – the single middle number in the set.

In odd datasets, there in only one middle number.

Since there are 11 values in total, an easy way to do this is to split the set in two equal parts with each side containing 5 values.

The median value will have 5 values on one side and 5 values on the other.

(2,4,5,5,6), 11 ,(11,13,14,25,30)

The median is 11 as it is the number that separates the first half from the second half.

An alternative way to double check if you’re right is to do this:

(total_number_of_scores + 1) / 2.

This is (11 + 1) /2 = 6, which means you want the number in the 6th place of this set of data – which is 11.

So Q2 = 11.

How to calculate Q1 in an odd dataset

Next, to find the lower quartile, Q1, we need to find the median of the first half of the dataset, which is on the left hand side.

As a reminder, the initial dataset is:

(2,4,5,5,6), 11 ,(11,13,14,25,30)

The first half of the dataset, or the lower half, does not include the median:

2,4,5,5,6

This time, there is again an odd set of scores – specifically there are 5 values.

You want to again split this half set into another half, with an equal number of two values on each side. You’ll get a unique number, which will be the number in the middle of the 5 values.

Pick the middle value that stands out:

(2,4),5,(5,6)

In this case it’s Q1 = 5.

To double check, you can also do total_number_of_values + 1 / 2, similar to the previous example:

(5 + 1) /2 = 3.

This means you want the number in the 3rd place, which is 5.

How to calculate Q3 in an odd dataset

To find the upper quartile, Q3, the process is the same as for Q1 above. But in this case you take the second half on the right hand side of the dataset, above the median and without the median itself included:

(2,4,5,5,6), 11 ,(11,13,14,25,30)

11,13,14,25,30

You split this half of the odd set of numbers into another half to find the median and subsequently the value of Q3.

You again want the number in the 3rd place like you did for the first half.

(11,13),14,(25,30)

So Q3 = 14.

How to calculate IQR in an odd dataset

Now, the next step is to calculate the IQR which stands for Interquartile Range.

This is the difference/distance between the lower quartile (Q1) and the upper quartile (Q3) you calculated above.

As a reminder, the formula to do so is the following:

IQR = Q3 - Q1

To find the IQR of the dataset from above:

IQR= 14 - 5
IQR = 9

How to find an outlier in an odd dataset

To recap so far, the dataset is the one below:

2,4,5,5,6,11,11,13,14,25,30

and so far, you have calucalted the five number summary:

MIN = 2
Q1 = 5
MED = 11
Q3 = 14
MAX = 30

Finally, let’s find out if there are any outliers in the dataset.

As a reminder, an outlier must fit the following criteria:

outlier < Q1 - 1.5(IQR)

Or

outlier > Q3 + 1.5(IQR)

To see if there is a lowest value outlier, you need to calculate the first part and see if there is a number in the set that satisfies the condition.

Outlier < Q1 - 1.5(IQR)
Outlier < 5 - 1.5(9)
Outlier < 5 - 13.5 
outlier < - 8.5

There are no lower outliers, since there isn’t a number less than -8.5 in the dataset.

Next, to see if there are any higher outliers:

Outlier > Q3  + 1.5(IQR)=
Outlier > 14 + 1.5(9)
Outlier > 14 + 13.5
Outlier > 27,5

And there is a number in the dataset that is more than 27,5:

2,4,5,5,6,11,11,13,14,25,30

In this case, 30 is the outlier in the existing dataset.

How to Find the Upper and Lower Quartiles in an Even Dataset

What happens when you have a dataset that consists of an even set of data?

There isn’t just one stand-out median (Q2), nor is there a standout upper quartile (Q1) or standout lower quartile (Q3).

So the process of calculating quartiles and then finding an outlier is a bit different.

How to calculate Q2 in an even dataset

Say that you have this dataset with 8 numbers:

10,15,20,26,28,30,35,40

This time, the numbers are already sorted from lowest to highest value.

To find the median number in an even dataset, you need to find the value that would be in between the two numbers that are in the middle. You add them together and divide them by 2, like so:

10,15,20,26,28,30,35,40

26 + 28 = 54
54 / 2 = 27

How to calculate Q1 in an even dataset

To calculate to upper and lower quartiles in an even dataset, you keep all the numbers in the dataset (as opposed to in the odd set you removed the median).

This time, the dataset is cut in half.

10,15,20,26 | 28,30,35,40

To find Q1, you split the first half of the dataset into another half which leaves you with a remaining even set:

10,15 | 20,26

To find the median of this half, you take the two numbers in the middle and divide them by two:

Q1 = (15 + 20)/2
Q1 =  35 / 2
Q1 = 17,5

How to calculate Q3 in an even dataset

To find Q3, you need to focus on the second half of the dataset and split that half into another half:

28,30,35,40 -> 28,30 | 35,40

The two numbers in the middle are 30 and 35.

You add them and divide them by two, and the result is:

Q3 = (30 + 35)/2
Q3 =  65 / 2
Q3 = 32,5

How to calculate the IQR in an even dataset

The formula for calculating IQR is exactly the same as the one we used to calculate it for the odd dataset.

IQR = Q3 - Q1
IQR = 32,5 - 17,5
IQR = 15

How to find an outlier in an even dataset

As a recap, so far the five number summary is the following:

MIN = 10
Q1 = 17,5
MED = 27
Q3 = 32,5
MAX = 40

To calculate any outliers in the dataset:

outlier < Q1 - 1.5(IQR)

Or

outlier > Q3 + 1.5(IQR)

To find any lower outliers, you calcualte Q1 - 1.5(IQR) and see if there are any values less than the result.

outlier < 17,5 - 1.5(15)=
outlier < 17,5 - 22,5
outlier < -5

There aren’t any values in the dataset that are less than -5.

Finally, to find any higher outliers, you calculate Q3 - 1.5(IQR) and see if there are any values in the dataset that are higher than the result

outlier > 32.5 + 1.5(15)=
outlier > 32.5 + 22.5
outlier > 55

There aren’t any values higher than 55 so this dataset doesn’t have any outliers.

Conclusion

In this article you learned how to find the interquartile range in a dataset and in that way calculate any outliers.

If you are interested in learning more about Statistics and the basics of Data Science, check out this free 8hour University course on freeCodeCamp’s YouTube channel.

Thank you for for reading and happy learning.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Понравилась статья? Поделить с друзьями:
  • Как найти длину минимального слова
  • Как лучше составить план времени
  • Как найти платные подписки на билайне
  • Как исправить ошибку 247 касса штрих м
  • Не получается безе как исправить ситуацию