September 8, 2022

Типичная ошибка построения гистограммы для непрерывных величин

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

import numpy as np

ser = pd.Series(np.random.normal(0, 2, size=100))
ser.head()

Теперь зададим разные границы и получим разные гистограммы:

ser.hist(bins=[-100, -2, 2, 100])
ser.hist(bins=[-100, -4,  4, 100])

Это обусловлено тем, что количество попавших в отрезок точек определяется его высотой вне зависимости от ширины. Из-за этого на первом графике создается впечатление, что большинство точек сосредоточено в левом и правом отрезке, хотя это не так. Их суммарный процент - 35%:

(ser<-2).mean(), (ser>2).mean()

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

ser.plot.kde()