Открыть сервисСервис

Гистограмма — статистический график

Гистограмма — это графическое представление распределения числовых данных, при котором интервал значений разбивается на ряд участков (бинов), а высота столбца пропорциональна количеству наблюдений, попавших в соответствующий интервал. Термин ввёл в употребление Карл Пирсон в 1895 году. Гистограмма широко применяется в статистике, анализе данных, обработке сигналов и компьютерном зрении.

Принцип построения

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

Ключевые параметры построения:

  • Число бинов — определяет степень детализации. Слишком малое число скрывает структуру распределения, слишком большое приводит к «шумному» виду с многочисленными провалами.
  • Ширина бинов — может быть постоянной или переменной.
  • Границы бинов — обычно выбираются так, чтобы каждое наблюдение попало ровно в один бин.

Существует несколько эмпирических правил выбора числа бинов: правило Стёрджеса (k = 1 + 3,322·log₁₀ n), правило Райса (k = 2·∛n), правило Скотта и правило Фридмана-Диакониса, учитывающего межквартильный размах. В пакете matplotlib для языка Python по умолчанию используется правило Фридмана-Диакониса, а в R функция hist() применяет правило Стёрджеса.

Виды гистограмм

По типу представляемых данных различают:

  • Абсолютную — высота столбца равна числу наблюдений.
  • Относительную (нормированную) — высота пропорциональна доле наблюдений, что позволяет сравнивать выборки разного объёма.
  • Накопленную (стековую) — несколько подвыборок представлены сегментами одного столбца.
  • Сглаженную — столбцы заменяются оценкой плотности вероятности (kernel density estimation), что даёт гладкую кривую.

Гистограмма в компьютерном зрении

Отдельное значение имеет гистограмма изображения — распределение яркостей пикселей по каналам цвета. В цифровой фотографии гистограмма по яркости показывает, сколько пикселей имеет каждое значение интенсивности от 0 (чёрный) до 255 (белый) для 8-битного изображения. Левая часть гистограммы отвечает за тени, правая — за света, середина — за средние тона.

По гистограмме изображения можно оценить корректность экспозиции: «прижатая» к левому краю гистограмма указывает на недоэкспозицию, к правому — на переэкспозицию. Многие цифровые камеры и графические редакторы (Adobe Lightroom, Adobe Photoshop, RawTherapee) отображают гистограмму в реальном времени.

На основе гистограммы строится алгоритм гистограммной эквализации — метод повышения контрастности изображения, при котором распределение яркостей выравнивается по равномерному закону. Метод был предложен в 1970-х годах и остаётся базовым в обработке изображений.

Гистограмма в статистике и анализе данных

В описательной статистике гистограмма служит основным инструментом визуализации эмпирического распределения. По её форме можно судить о:

  • симметричности — нормальное распределение даёт колоколообразную гистограмму;
  • смещении (skewness) — правостороннее смещение означает вытянутый правый «хвост»;
  • эксцессе — остроте пика относительно нормального распределения;
  • модальности — одномодальное, бимодальное или многомодальное распределение.

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

Отличие от столбчатой диаграммы

Часто гистограмму путают со столбчатой диаграммой (bar chart). Различие принципиально:

ПризнакГистограммаСтолбчатая диаграмма
Тип данныхНепрерывные числовыеКатегориальные
Ось XЧисловой интервалНазвания категорий
Зазоры между столбцамиНетЕсть
Порядок столбцовОпределяется значениямиПроизвольный

Программная реализация

Построение гистограмм поддерживается практически всеми статистическими пакетами и библиотеками:

  • Python — matplotlib.pyplot.hist(), numpy.histogram(), seaborn.histplot(), pandas.DataFrame.hist().
  • R — функции hist(), ggplot2::geom_histogram().
  • Excel — встроенная «Гистограмма» в разделе анализа данных.
  • gnuplot — команда plot ... using ... with boxes.

В языке Python функция numpy.histogram() возвращает пару массивов: значения частот и границы бинов, что позволяет использовать её как низкоуровневый инструмент для построения собственных визуализаций.

Ограничения

Гистограмма чувствительна к выбору числа и границ бинов: одно и то же наблюдение данных может дать принципиально разные картинки при разных параметрах. Этот недостаток частично устраняется сглаженными оценками плотности. Кроме того, гистограмма неприменима напрямую для категориальных данных и малоинформативна для очень малых выборок.

Источники:

  • Клайн М. Математика. Справочник с комментариями и примерами. — М.: ФИЗМАТЛИТ, 2007.
  • Четвериков Н. С., Сухорукова Н. Л. Статистические методы в биологии. — М.: Издательство КМК, 2017.
  • Scott D. W. Multivariate Density Estimation: Theory, Practice, and Visualization. — Wiley, 2015.
  • Gonzalez R. C., Woods R. E. Digital Image Processing. — Pearson, 2018.
  • Documentation NumPy: numpy.histogram. — URL: numpy.org/doc/stable/reference/generated/numpy.histogram.html.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru