Найти тему
Аналитика для всех

Boxplot и с чем его едят

Оглавление
Структура Boxplot
Структура Boxplot

Картинка выше это boxplot (ящик с усами). Boxplot - это удобный способ изобразить распределение данных, используя всего 5 метрик:

1. «Минимум» = Q1 - 1.5 * IQR

2. Первый квартиль (Q1)

3. Медиана

4. Третий квартиль (Q3)

5. «Максимум» = Q3 + 1.5 * IQR

По графику сразу можно понять выбросы (outliers), симметричен ли дата-сет, как плотно лежат значения и как скошено распределение. Обратите внимание, что для ящика с усами «минимум» и «максимум» не являются минимальным и максимальным значением, а лишь помогают определить выбросы.

В этой статье мы рассмотрим:

  • А что же такое Boxplot?
  • Постараемся разобраться в структуре графика, сравнивая его с плотностью вероятности распределения (на примере нормального распределения)
  • Как строить Boxplot в Python

Погнали!

Что же такое Boxplot?

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

Разные распределения - одинаковые средние
Разные распределения - одинаковые средние

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

Boxplot для нормального распределения

Скорее всего до этого ты сталкивался только с нижним графиком - используем его, чтобы лучше понять Boxplot.

Для начала давай немного вспомним теорию. Плотность вероятности (probability density function - PDF) показывает вероятность попадания случайной величины в определенный диапазон значений. Эта вероятность определяется интегралом, то есть площадью под функцией плотности, ограниченной осью ОХ и крайними значениями случайной величины. Слова словами, но все любят картинки - давай построим график. Для этого воспользуемся функцией:

-3

Немного упростим, предположив, что среднее (мю) равно 0, а стандартное отклонение (сигма) - единице.

-4

Посмотрим график этой функции в Python.

-5

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

-6

Также важно помнить простое правило - вся площадь под кривой всегда равна 1 (так как вероятность получить хоть какое-то значение равна 100%).

-7

Как стоить Boxplot в Python

Конечно, в реальной жизни далеко не всегда данные будут иметь нормальное распределение. Возьмём для примера дата-сет с Kaggle с данными о диагностировании рака груди.

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

На самом деле сделать это можно несколькими способами - seaborn, pandas и seaborn.

-8

-9

-10

Вот собственно и все :)