Как сделать чтобы в гистограмме не было пробелов

Обновлено: 04.07.2024

Гистограмма распределения - это инструмент, позволяющий визуально оценить величину и характер разброса данных. Создадим гистограмму для непрерывной случайной величины с помощью встроенных средств MS EXCEL из надстройки Пакет анализа и в ручную с помощью функции ЧАСТОТА() и диаграммы.

Гистограмма (frequency histogram) – это столбиковая диаграмма MS EXCEL , в каждый столбик представляет собой интервал значений (корзину, карман, class interval, bin, cell), а его высота пропорциональна количеству значений в ней (частоте наблюдений).

Гистограмма поможет визуально оценить распределение набора данных, если:

  • в наборе данных как минимум 50 значений;
  • ширина интервалов одинакова.

Построим гистограмму для набора данных, в котором содержатся значения непрерывной случайной величины . Набор данных (50 значений), а также рассмотренные примеры, можно взять на листе Гистограмма AT в файле примера. Данные содержатся в диапазоне А8:А57 .

Примечание : Для удобства написания формул для диапазона А8:А57 создан Именованный диапазон Исходные_данные.

Построение гистограммы с помощью надстройки Пакет анализа


Вызвав диалоговое окно надстройки Пакет анализа , выберите пункт Гистограмма и нажмите ОК.

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

  • автоматически рассчитаны интервалы значений (карманы);
  • подсчитано количество значений из указанного массива данных, попадающих в каждый интервал (построена таблица частот);
  • если поставлена галочка напротив пункта Вывод графика , то вместе с таблицей частот будет выведена гистограмма.

Перед тем как анализировать полученный результат - отсортируйте исходный массив данных .

Как видно из рисунка, первый интервал включает только одно минимальное значение 113 (точнее, включены все значения меньшие или равные минимальному). Если бы в массиве было 2 или более значения 113, то в первый интервал попало бы соответствующее количество чисел (2 или более).

Второй интервал (отмечен на картинке серым) включает значения больше 113 и меньше или равные 216,428571428571. Можно проверить, что таких значений 11. Предпоследний интервал, от 630,142857142857 (не включая) до 733,571428571429 (включая) содержит 0 значений, т.к. в этом диапазоне значений нет. Последний интервал (со странным названием Еще ) содержит значения больше 733,571428571429 (не включая). Таких значений всего одно - максимальное значение в массиве (837).

Размеры карманов одинаковы и равны 103,428571428571. Это значение можно получить так: =(МАКС( Исходные_данные )-МИН( Исходные_данные ))/7 где Исходные_данные – именованный диапазон , содержащий наши данные.

Почему 7? Дело в том, что количество интервалов гистограммы (карманов) зависит от количества данных и для его определения часто используется формула √n, где n – это количество данных в выборке. В нашем случае √n=√50=7,07 (всего 7 полноценных карманов, т.к. первый карман включает только значения равные минимальному).

Примечание : Похоже, что инструмент Гистограмма для подсчета общего количества интервалов (с учетом первого) использует формулу =ЦЕЛОЕ(КОРЕНЬ(СЧЕТ( Исходные_данные )))+1

Попробуйте, например, сравнить количество интервалов для диапазонов длиной 35 и 36 значений – оно будет отличаться на 1, а у 36 и 48 – будет одинаковым, т.к. функция ЦЕЛОЕ() округляет до ближайшего меньшего целого (ЦЕЛОЕ(КОРЕНЬ(35))=5 , а ЦЕЛОЕ(КОРЕНЬ(36))=6) .


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


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


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


Для нашего набора данных установим размер кармана равным 100 и первый карман возьмем равным 150.


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

Как видно из рисунков выше, надстройка Пакет анализа не осуществляет никакого дополнительного форматирования диаграммы . Соответственно, вид такой гистограммы оставляет желать лучшего (столбцы диаграммы обычно располагают вплотную для непрерывных величин, кроме того подписи интервалов не информативны). О том, как придать диаграмме более презентабельный вид, покажем в следующем разделе при построении гистограммы с помощью функции ЧАСТОТА() без использовании надстройки Пакет анализа .

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

Порядок действий при построении гистограммы в этом случае следующий:

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

СОВЕТ : Часто рекомендуют, чтобы границы интервала были на один порядок точнее самих данных и оканчивались на 5. Например, если данные в массиве определены с точностью до десятых: 1,2; 2,3; 5,0; 6,1; 2,1, …, то границы интервалов должны быть округлены до сотых: 1,25-1,35; 1,35-1,45; … Для небольших наборов данных вид гистограммы сильно зависит количества интервалов и их ширины. Это приводит к тому, что сам метод гистограмм, как инструмент описательной статистики , может быть применен только для наборов данных состоящих, как минимум, из 50, а лучше из 100 значений.

В наших расчетах для определения количества интервалов мы будем пользоваться формулой =ЦЕЛОЕ(КОРЕНЬ(n))+1 .

Примечание : Кроме использованного выше правила (число карманов = √n), используется ряд других эмпирических правил, например, правило Стёрджеса (Sturges): число карманов =1+log2(n). Это обусловлено тем, что например, для n=5000, количество интервалов по формуле √n будет равно 70, а правило Стёрджеса рекомендует более приемлемое количество - 13.

Расчет ширины интервала и таблица интервалов приведены в файле примера на листе Гистограмма . Для вычисления количества значений, попадающих в каждый интервал, использована формула массива на основе функции ЧАСТОТА() . О вводе этой функции см. статью Функция ЧАСТОТА() - Подсчет ЧИСЛОвых значений в MS EXCEL .

В MS EXCEL имеется диаграмма типа Гистограмма с группировкой , которая обычно используется для построения Гистограмм распределения .


В итоге можно добиться вот такого результата.

Примечание : О построении и настройке макета диаграмм см. статью Основы построения диаграмм в MS EXCEL .


Одной из разновидностей гистограмм является график накопленной частоты (cumulative frequency plot).

На этом графике каждый столбец представляет собой число значений исходного массива, меньших или равных правой границе соответствующего интервала. Это очень удобно, т.к., например, из графика сразу видно, что 90% значений (45 из 50) меньше чем 495.

СОВЕТ : О построении двумерной гистограммы см. статью Двумерная гистограмма в MS EXCEL .

Примечание : Альтернативой графику накопленной частоты может служить Кривая процентилей , которая рассмотрена в статье про Процентили .

Примечание : Когда количество значений в выборке недостаточно для построения полноценной гистограммы может быть полезна Блочная диаграмма (иногда она называется Диаграмма размаха или Ящик с усами ).

Гистограмма — это графическое представление пикселей, отображаемых на вашем изображении. Левая часть графика представляет черные тона или тени, правая часть представляет светлые или белые тона, а средняя часть — средние тона. Высота пиков соответствует количеству пикселей в этом конкретном тоне. Каждый тон от 0 до 255 (o — черный, 255 — белый) имеет ширину в один пиксель на графике, поэтому представьте график в виде гистограммы, сплющенной вместе без пробелов между каждой полосой. Взгляните на диаграммы ниже:

Как читать и использовать гистограмму

Как читать и использовать гистограмму

Что мы можем узнать из этой гистограммы

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

Как читать и использовать гистограмму
Как читать и использовать гистограмму

Как читать и использовать гистограмму

Когда гистограмма говорит вам отрегулировать экспозицию

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

Как читать и использовать гистограмму

Что означают скачки по бокам

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

Как читать и использовать гистограмму

На этом графике показано изображение с экстремальной контрастностью, большим количеством черного, всплеском белого и небольшой просадкой посередине.

Здесь нет правильного или неправильного, это то, как вы интерпретируете сцену перед вами. Если сомневаетесь, снимайте в обоих и решайте позже. График выше взят из изображения ниже, поэтому, как вы можете видеть, это вообще не неправильная экспозиция.

В этой сцене нет полутонов.

Как читать и использовать гистограмму

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

Как читать и использовать гистограмму
Как читать и использовать гистограмму

Используя передовые методы, такие как слияние/смешивание изображений, HDR и обработка в Lightroom (или PS), вы можете сжимать диапазон контрастности сцены, чтобы он соответствовал гистограмме и, следовательно, имел детали во всех областях.

На изображении выше я использовал 4 изображения в брекетах (снятых через 2 стопа друг от друга) и использовал HDR, чтобы снизить динамический диапазон сцены в пределах диапазона печати.

Чтобы сделать это с помощью Canon, нажмите кнопку “Display” или “Info” (в зависимости от вашей модели), пока они не появятся на экране при предварительном просмотре изображений. Вам также может потребоваться включить эту функцию в настройках меню. Обратитесь к руководству по эксплуатации камеры, если не знаете, где его найти.

Когда следует применять гистограмму?

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

  • Ночная;
  • Предметная;
  • Студийная съёмка.

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

Если же говорить о студийной съёмке, то здесь на шкалу яркости смотрят для выбора наиболее оптимального уровня освещения. Особенно актуален такой приём при условии отсутствия экспонометра. Не всегда же хочется работать наугад, верно?

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

Общий вывод

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

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

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

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

Журналист не только по призванию, но и по специальности. Сила мысли, острое перо, гибкая логика - основные инструменты, используемые в работе.


2

MS Excel Tips&Tricks

MS Excel Tips&Tricks

MS Excel Tips&Tricks запись закреплена

В прикрепленном файле показаны стандартные данные для построения диаграммы (в данном примере разберем гистограмму).


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


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

И нетрудно догадаться почему. Гистограммы весьма интуитивно наглядны: любой поймет их с первого взгляда. Более того, они объективно представляют реальность, не так ли? А вот и нет.

Гистограмма может ввести в заблуждение и привести к ошибочным выводам — ​​даже на простейшем наборе данных!

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

Они слишком сильно зависят от количества интервалов.

Они слишком сильно зависят от максимума и минимума переменной.

Они не дают возможности заметить значимые значения переменной.

Они не позволяют отличить непрерывные переменные от дискретных.

Они делают сравнение распределений сложным.

Их построение затруднено, если в памяти находятся не все данные.

В конце статьи я порекомендую другой график, называемый CDP, который минует эти недостатки.

Итак, что же не так с гистограммой?

1. Она слишком сильно зависит от количества интервалов.

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

Переменная представляет собой максимальную частоту сердечных сокращений (ударов в минуту), полученную у 303 людей во время некоторой физической активности (данные взяты из набора данных UCI по сердечным заболеваниям: источник).

Как изменяется гистограмма при изменении количества интервалов. [Рисунок автора]

Как изменяется гистограмма при изменении количества интервалов. [Рисунок автора]

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

2. Она слишком сильно зависит от максимума и минимума переменной.

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

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

Как меняется гистограмма при изменении максимального значения. [Рисунок автора]

Как меняется гистограмма при изменении максимального значения. [Рисунок автора]

Отличается только одно значение, а весь график получается другим. Это нежелательное свойство, потому что нас интересует общее распределение: одно значение не должно так влиять на график!

3. Не дает возможности заметить значимые значения переменной.

Классическим примером является случай, когда отсутствующим значениям массово присваивается 0. В качестве примера давайте рассмотрим набор данных переменной, состоящий из 10 тысяч значений, 26% из которых — нули.

Те же данные, разная ширина интервала. На левом графике невозможно обнаружить высокую концентрацию нулей. [Рисунок автора]

Те же данные, разная ширина интервала. На левом графике невозможно обнаружить высокую концентрацию нулей. [Рисунок автора]

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

4. Не позволяет отличить непрерывные переменные от дискретных.

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

Слева непрерывная переменная. Справа дискретная переменная. Однако на верхних графиках они выглядят одинаково. [Рисунок автора]

Слева непрерывная переменная. Справа дискретная переменная. Однако на верхних графиках они выглядят одинаково. [Рисунок автора]

Тот, что слева, непрерывен, а тот, что справа, дискретен. Однако на верхних графиках (по умолчанию в Python) вы не увидите никакой разницы между ними: они выглядят совершенно одинаково.

5. Сложно сравнивать распределения.

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

все население (для справки)

люди моложе 50 страдающие сердечными заболеваниями

люди моложе 50 НЕ страдающие сердечными заболеваниями

люди старше 60 лет страдающие сердечными заболеваниями

люди старше 60 и НЕ страдающие сердечными заболеваниями.

Вот что мы получили бы в итоге:

Сравнение гистограмм. [Рисунок автора]

Сравнение гистограмм. [Рисунок автора]

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

6. Сложно построить, если в памяти находятся не все данные.

Если все ваши данные находятся в Excel, R или Python, построить гистограмму легко: в Excel вам просто нужно кликнуть по иконке гистограммы, в R — выполнить команду hist(x), а в Python — plt.hist(х).

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

| INTERVAL_LEFT | INTERVAL_RIGHT | COUNT |

| 75.0 | 87.0 | 31 |

| 87.0 | 99.0 | 52 |

| 99.0 | 111.0 | 76 |

Но получить ее с помощью SQL-запроса не так просто, как кажется. Например, в Google Big Query код будет выглядеть так:

Немного громоздко, не правда ли?

Альтернатива: график кумулятивного распределения.

График кумулятивного распределения — это график квантилей переменной. Другими словами, каждая точка CDP показывает:

по оси x: исходное значение переменной (как в гистограмме);

по оси y: сколько наблюдений имеют такое же или меньшее значение.

Давайте посмотрим на пример с переменной — максимальной частотой пульса.

График кумулятивного распределения максимальной частоты сердечных сокращений. [Рисунок автора]

График кумулятивного распределения максимальной частоты сердечных сокращений. [Рисунок автора]

Возьмем точку с координатами x = 140 и y = 90 (30%). По горизонтальной оси вы видите значение переменной: 140 ударов сердца в минуту. По вертикальной оси вы видите количество наблюдений, у которых частота сердцебиение равна или ниже 140 (в данном случае 90 человек, что означает 30% выборки). Следовательно, у 30% нашей выборки максимальная частота сердцебиения составляет 140 или менее ударов в минуту.

CDP решает все проблемы, которые мы видели выше. Фактически, по сравнению с гистограммой:

1. Не требует пользовательского выбора. Для одного набора данных, существует только один возможный CDP.

2. Не страдает от выпадающих значений. Экстремальные значения не влияют на CDP, поскольку квантили не меняются.

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

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

5. Упрощает сравнение распределений. На одном графике легко сравнить два или более распределения, поскольку это просто кривые, а не области. Кроме того, ось y всегда находится в диапазоне от 0 до 100%, что делает сравнение еще более простым. Для сравнения, это пример, который мы видели выше:

Сравнение распределений в CDP. [Рисунок автора]

Сравнение распределений в CDP. [Рисунок автора]

6. Его легко построить, даже если у вас нет всех данных в памяти. Все, что вам нужно, это квантили, которые можно легко получить с помощью SQL:

Как построить график кумулятивного распределения в Excel, R, Python

В Excel вам нужно построить два столбца. Первый с 101 числом, равномерно распределенными от 0 до 1. Второй столбец должен содержать процентили, которые могут быть получены по формуле: =PERCENTILE(DATA, FRAC), где DATA - это вектор, содержащий данные, а FRAC - это первый столбец: 0,00, 0,01, 0,02, 0,03,…, 0,98, 0,99, 1. Затем вам просто нужно построить график по этим двум столбцам, разместив значения переменной на оси x.

В R это делается в одну строчку:

Спасибо за внимание! Надеюсь, эта статья оказалась для вас полезной.

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

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

- Узнать подробнее о курсе "Machine Learning. Basic"

- Смотреть онлайн-встречу "День открытых дверей"

Читайте также: