Как указать разрывы гистограммы в R (с примерами)


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

Правило Стерджеса использует следующую формулу для определения оптимального количества интервалов для использования в гистограмме:

Оптимальные интервалы = ⌈log 2 n + 1⌉

куда:

  • n: общее количество наблюдений в наборе данных.
  • ⌈ ⌉: Символы, означающие «потолок» — т. е. округлить ответ до ближайшего целого числа.

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

Оптимальные интервалы = ⌈log 2 (31) + 1⌉ = ⌈4,954 + 1⌉ = ⌈5,954⌉ = 6 .

Согласно правилу Стерджеса, мы должны использовать 6 бинов на гистограмме для визуализации этого набора данных.

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

hist(data)

Даже если вы используете аргумент breaks , чтобы указать другое количество используемых бинов, R будет использовать его только как «предложение» о том, сколько бинов использовать.

hist(data, breaks= 7 )

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

#create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))

Примечание.Вы должны использовать длину n+1 для length.out, где n — желаемое количество бинов.

В следующем примере показано, как использовать этот код на практике.

Пример: укажите разрывы гистограммы в R

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

#create vector of 16 values
data <- c(2, 3, 3, 3, 4, 4, 5, 6, 8, 10, 12, 14, 15, 18, 20, 21)

Если мы используем функцию hist() , R создаст следующую гистограмму с 5 интервалами:

#create histogram
hist(data)

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

Если мы попытаемся использовать аргумент breaks , чтобы указать 7 интервалов для использования в гистограмме, R воспримет это только как «предложение» и вместо этого решит использовать 10 интервалов:

#attempt to create histogram with 7 bins
hist(data, breaks= 7 ) 

Однако мы можем использовать следующий код, чтобы заставить R использовать 7 бинов в гистограмме:

#create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))

Обратите внимание, что результатом является гистограмма с 7 равноотстоящими интервалами.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

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