Обзор методов бинирования данных

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

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

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

Мы знаем, что снег обычно выпадает, когда температура ниже или равна 0°C (32°F). Если температура выше, то вероятность того, что мы увидим снег, довольно мала. Однако все же возможно, что снежинки достигнут поверхности при температуре выше 0°С (32°F) и достаточном насыщении воздуха.

С другой стороны, в очень холодных погодных условиях, когда температура ниже -40°C (-40°F), влагоемкость воздуха будет настолько низкой, что, вероятно, не будет выпадать много снега. Учитывая, что вероятность снега может быть одинаковой или очень похожей в определенных температурных диапазонах, мы можем захотеть смоделировать вероятность снега для данной температурной корзины, а не влияние любого изменения температуры во всей области.

Но как мы можем разделить домен нашей переменной, если у нас нет конкретных знаний о лежащих в основе явлениях и/или мы хотим автоматически группировать данные? Ответ прост: мы можем использовать один из известных методов биннинга!

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

Обратите внимание, что каждый метод пытается определить оптимальное количество бинов k, но некоторые вычисляют рекомендуемую ширину бинаh , который затем вводится в следующую формулу для получения номера ячейки:

Где k – количество бинов, x – значения переменных, h – ширина бина. Фигурные скобки обозначают потолочную функцию.

Выбор квадратного корня

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

Где n – количество наблюдений.

Правило Фридмана – Диакониса

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

Правило Стерджа

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

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

Формула Доана

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

Где s – предполагаемая асимметрия распределения переменной и:

Правило риса

Правило Райса — альтернатива формуле Стерджа, которая также учитывает только размер данных:

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

Правило Скотта

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

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

Все представленные правила биннинга можно найти во многих статистических пакетах. В Python, например, все это было реализовано в функции numpy.histogram_bin_edges.

использованная литература

[1] https://en.m.wikipedia.org/wiki/Histogram#Number_of_bins_and_width

[2] https://numpy.org/doc/stable/reference/generated/numpy.histogram_bin_edges.html

[3] https://en.m.wikipedia.org/wiki/Freedman%E2%80%93Diaconis_rule

[4] http://www.jtrive.com/determining-histogram-bin-width-using-the-freedman-diaconis-rule.html