Пример построения простейшей гистограммы

Для быстрого визуального анализа типа распределения используются гистограмма или
график плотности распределения вероятности.

Для построения гистограммы в базовом пакете r-base используется функция hist().
В результате получается следующая гистограмма:

library(car)
hist(Prestige$income)

plot of chunk простая-гистограмма

Аргументы hist()

Ниже приведены аргументы hist() а также значения, заданные “по умолчанию”:

args(hist.default)
## function (x, breaks = "Sturges", freq = NULL, probability = !freq, 
##     include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, 
##     col = NULL, border = NULL, main = paste("Histogram of", xname), 
##     xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = TRUE, 
##     plot = TRUE, labels = FALSE, nclass = NULL, warn.unused = TRUE, 
##     ...) 
## NULL

Аргументы функции hist() на которые стоит обратить внимание – это, в первую
очередь, breaks, который определяет на сколько интервалов (“корзин”) будет
разбита выборка. breaks можно задать с помощью вектора, который задаст границы интервалов явным образом, например breaks=1:10. Можно указать количество интервалов одним числом, например breaks=10, или задать один из нижеприведенных способов автоматического разбиения на интервалы:

  • breaks = "Sturges" , значение по умолчанию
  • breaks = "Scott"
  • breaks = "FD" (Freedman-Diaconis)

Затем, стоит обратить внимание на col, который задает цвет заливки гистограммы,
а также на аргуметны main, xlab, и ylab, с помощью которых можно задать
заголовок графика и названия X и Y осей соответственно.

hist(Prestige$income,                   # одномерные данные
     breaks = "FD",                     # способ разбиения на интервалы
     col= "gray",                       # цвет заливки гистограммы
     main = "Доход участников выборки", # заголовок графика
     xlab = "Доход, $",                 # название оси Х
     ylab = "Частота")                 # название оси Y    

plot of chunk гистограмма

Гистограмма и плотность вероятности

Гистограмма показывает распределение переменной в виде прямоугольных столбцов,
ширина которых задается аргументом breaks, а высота определяется количеством
наблюдений, попавших в данный интервал. В результате мы видим график в виде ступенек,
внешний вид которго сильно зависит от количества интервалов. Сглаженную оценку
формы распределения можно получить при помощи plot(density(x)) или,
если необходимо отобразить плотность распределения вероятности на гистограмме,
можно воспользоваться комбинацией hist() и lines(density(x)):

hist(Prestige$income, breaks = "FD", col= "gray",
     main = "Доход участников выборки", xlab = "Доход", ylab = "Плотность",
     freq=F)
lines(density(Prestige$income), lwd = 2, col="blue")
lines(density(Prestige$income, adjust = .5), lwd = 1, col="blue", lty="dashed")
rug(Prestige$income)

plot of chunk гистограмма-и-плотность-вероятности

При наложении графиков плотностей на гистограмму, важно указать параметр hist(freq=FALSE, т.к. в противном случае плотность распределения вероятности сольётся с осью X. С помощью параметра
density(adjust = можно поиграть со степенью сглаживания графика плотности вероятностей
(непрерывная и пунктирная линии отличаются друг от друга параметром adjust=.
Обратите внимание, как работает lines() в связке с hist(). Функция lines(), в отличие
от plot(), не инициирует новый график, а накладывает его на уже существующий hist().

© 2014 In R we trust.
Top
Follow us: