R: Как изменить количество интервалов в гистограмме


Когда вы создаете гистограмму в R, формула, известная как правило Стерджеса, используется для определения оптимального количества ячеек для использования.

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

hist(data, breaks = seq(min(data), max(data), length. out = 7 ))

Обратите внимание, что количество бинов, используемых в гистограмме, будет на единицу меньше, чем число, указанное в аргументе length.out .

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

Пример 1: создание базовой гистограммы

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

#define vector of data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 10, 11, 13, 16, 16, 16)

#create histogram of data
hist(data, col = 'lightblue') 

Используя правило Стерджеса, R решил использовать 8 бинов в гистограмме.

Пример 2. Укажите количество бинов для использования в гистограмме

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

#define vector of data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 10, 11, 13, 16, 16, 16)

#create histogram with 6 bins
hist(data, col = 'lightblue', breaks = seq(min(data), max(data), length. out = 7 )) 

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

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

Если мы используем слишком мало бинов, истинный базовый шаблон в данных может быть скрыт:

#define vector of data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 10, 11, 13, 16, 16, 16)

#create histogram with 3 bins
hist(data, col = 'lightblue', breaks = seq(min(data), max(data), length. out = 4 )) 

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

#define vector of data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 10, 11, 13, 16, 16, 16)

#create histogram with 15 bins
hist(data, col = 'lightblue', breaks = seq(min(data), max(data), length. out = 16 )) 

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

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

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

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

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