только для медицинских специалистов

Консультант врача

Электронная медицинская библиотека

Раздел 8 / 12
Страница 4 / 4

4. ФОРМУЛИРОВКА НУЛЕВОЙ ГИПОТЕЗЫ

Внимание! Часть функций, например, копирование текста к себе в конспект, озвучивание и т.д. могут быть доступны только в режиме постраничного просмотра.Режим постраничного просмотра
 
 

4.2. Построение гистограмм распределения на языке R

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

  • с применением функции hist (), входящей в пакет graphics;
  • посредством функции geom_histogram(), входящей в состав пакета ggplot2;
  • с помощью столбчатой диаграммы с предварительным расчетом частот и интервалов распределения величин. Построение столбчатых диаграмм можно произвести с помощью:
    • функции barplot(), входящей в пакет graphics;
    • функции geom_bar(), входящей в пакет ggplot2.

В примерах данного раздела приведены все перечисленные способы построения гистограммы распределений.

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

Для построения диаграмм распределения использовались данные по выживаемости заболевших вирусом иммунодефицита, собранных в Австралии после 1 июля 1991 года. Все данные содержатся в пакете MASS, наборе данных Aids2.

Листинг 10

#Построение гистограммы распределения с помощью функции hist () пакета

graphics

library(“MASS”) #Подключаем пакет MASS, содержащий набор данных Aids2

N <- length(Aids2$Age) #Вычисляем количество пациентов в наборе данных

dBreak <-5*log10(N) #Определяем количество интервалов для гистограммы

dBreak <- round(dBreak) #Округляем значение до целых чисел

dX <- (max(Aids2$Age)-min(Aids2$Age))/ dBreak #Рассчитываем шаг

step <- seq(min(Aids2$Age),max(Aids2$Age), dX) # Вектор интервалов

hist (x = Aids2$age, break = step, xlab= “Возраст выявления, полных лет”,

ylab = “Количество, чел”, main = “Выживаемость, заболевших СПИДом”,

col = “blue”) #Строим гистограмму распределения возрастов пациентов с

# с выявленным вирусом иммунодефицита

# x – вектор значений исследуемых распределений, полученный из Data Frame #;

# break – количество участков на гистограмме;

# xlab – подпись оси ОХ;

# ylab – подпись оси OY;

# main – название гистограммы;

# col – задание цвета гистограммы распределения.

Результат выполнения данной команды представлен на рисунке 15.

 

Рисунок 15 – Результат применения функции hist () из пакета graphics

Функция hist () хороша для применения при необходимости быстро построить гистограмму и посмотреть на распределение данных, однако более гибким инструментом для построения и дальнейшей публикации гистограмм является функция geom_histogram(), входящая в пакет ggplot2.

Листинг 11

# Построение гистограммы распределения с помощью функции

# geom_histogram () пакета ggplot2

library(“MASS”) # Подключаем пакет MASS, содержащий набор данных Aids2

library(“ggplot2”) # Подключаем пакет ggplot2, содержащий функцию

# geom_histogram ()

p <- ggplot() #Создаем объект p, содержащийБолее подробно структура и применение пакета ggplot2 представлена в работе: Мастицкий С. Э. Визуализация данных с помощью ggplot2. М.: ДМК Пресс, 2017. 222 с. слои графика

p<- p + geom_histogram (mapping = aes (x= Aids2$age), fill= “blue”, binwith=30)

p<- p+labs (x = “Возраст выявления, полных лет”,

y= “Количество, чел”,

title = “Выживаемость, заболевших СПИДом”)

print(p)

Результат выполнения кода листинга 11 представлен на рисунке 16.

Рисунок 16 – Гистограмма распределения по возрасту пациентов с подтвержденным диагнозом иммунодефицита

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

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

Листинг 12

library(“MASS”) #Подключаем пакет, содержащий исследуемые данные

N <- length(Aids2$age) # Выделяем количество пациентов

dBreak <-5*log10(N) #Определяем количество интервалов для гистограммы

dBreak <- round(dBreak) #Округляем значение до целых чисел

interval <- cut (Aids2$age, breaks = dBreak,) #Разбиваем данные на 12 интервалов

freqData <- summary(interval) #Вычисляем количество вхождений в каждый

# интервал

barplot(freqData, xlab = "Возраст выявления, полных лет",

ylab = "Количество, чел",

main = "Выживаемость, заболевших СПИДом", col = "blue")

Результат выполнения данного кода представлен на рисунке 17.

Рисунок 17 – Гистограмма распределения по возрасту пациентов с подтвержденным диагнозом иммунодефицита

В листинге 13 представлен пример построения гистограммы распределения с помощью geom_bar (), входящей в пакет ggplot2.

Листинг 13

library(“MASS”) #Подключение пакета, содержащего исследуемые данные

library(“ggplot2”) #Подключаем пакет ggplot2, содержащий geom_bar ()

dBreak <-5*log10(N) #Определяем количество интервалов для гистограммы

dBreak <- round(dBreak) #Округляем значение до целых чисел

interval <- cut (Aids2$age, breaks = dBreak) # Разбиваем данные на 12 интервалов

interval <- as. factor(interval) #Преобразуем интервалы в факторы

p<- ggplot()

p<- p+geom_bar(mapping = aes(x=interval), fill = “blue”, stat= “count”)

p<- p+labs (x= “Возраст выявления, полных лет”,

y = “Количество, чел”, title = “Выживаемость, заболевших СПИДом”)

print(p)

На рисунке 18 представлен результат выполнения листинга 13.

Рисунок 18 – Гистограмма распределения по возрасту пациентов с подтвержденным диагнозом иммунодефицита

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