Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Анализ данных и знаний / Анализ данных. Реферат

..doc
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
116.22 Кб
Скачать

МИНИСТРЕСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ЗАПОРОЖСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра системного анализа и

вычислительной математики

РЕФЕРАТ

По дисциплине: Анализ данных и знаний

По теме: функция cdplot()

Выполнил студент группы КНТ-812

Спасский Андрей

Проверил Бахрушин В.Е.

Запорожье

2014

Для визуализации связи между двумя переменными, одна из которых является количественной, а другая качественной, можно использовать диаграмму размахов.  При таком подходе ось ординат соответствовала бы значениям количественной переменной. Но что если зависимой является качественная переменная? Полезной здесь может оказаться одна из базовых графических функций R - cdplot(), позволяющая совмещать на одном графике плотности вероятности для каждого уровня интересующей исследователя качественной переменной.

Ниже я приведу пример, заимствованный из книги Everitt & Hothorn (2010) .

Данные Plasma:

library(HSAUR2)

data(plasma)

summary(plasma)

fibrinogen globulin ESR

Min.: 2.090 Min.: 28.00 ESR < 20:26

1st Qu.: 2.290 1st Qu.: 31.75 ESR > 20: 6

Median: 2.600 Median: 36.00

Mean: 2.789 Mean: 35.66

3rd Qu.: 3.167 3rd Qu.: 38.00

Max.: 5.060 Max.: 46.00

Видно, что таблица plasma содержит две количественные переменные - fibrinogen и globulin, и одну качественную переменную с двумя уровнями - ESR. Речь здесь идет о клинических данных. ESR расшифровывается как «erythrocyte sedimentation rate», т.е. скорость оседания эритроцитов (СОЭ, мм/ч). Многие заболевания сопровождаются повышенными значениями СОЭ в связи с увеличением концентрации определенных белков в плазме крови, и благодаря этому СОЭ потенциально может служить критерием для диагностики таких заболеваний. Конкретное значение СОЭ у того или иного пациента не очень важно, но известно, что у здоровых людей этот показатель обычно не превышает 20 мм/ч. Поэтому в рассматриваемом исследовании СОЭ регистрировали как качественную переменную с двумя уровнями - "ESR < 20" и "ESR > 20". Вопрос заключался в том, есть ли связь между между СОЭ и концентрацией двух конкретных белков в плазме крови пациентов - фибриногена и глобулина? При отсутствии такой связи СОЭ не может служить надежным диагностическим критерием.

Данный метод реализуется с помощью «логистической регрессии». Изобразим графически зависимость вероятности наблюдения "ESR <20" и "ESR > 20" при разных концентрациях фибриногена и глобулина. Графики для обоих белков будут изображены на одном рисунке, и поэтому для начала разобьем область графического устройства R на две части при помощи функции layout():

layout(matrix(1:2, ncol = 2))

Теперь создадим сами графики:

cdplot(ESR ~ fibrinogen, data = plasma)

cdplot(ESR ~ globulin, data = plasma)

Из полученных графиков видно, что повышение концентрации обоих белков ведет к увеличению вероятности измерения СОЭ > 20 мм/ч, особенно в случае с фибриногеном.

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

При помощи аргумента col можно задать текстовый вектор с названиями цветов, которые будут использованы для заливки полигонов на графике:

cdplot(ESR ~ fibrinogen, c("coral", "skyblue"), data = plasma)

cdplot(ESR ~ globulin, c("coral", "skyblue"), data = plasma)

Аргумент yaxlabels позволяет "на лету" изменить метки анализируемой зависимой переменной:

cdplot(ESR ~ fibrinogen, col = c("coral", "skyblue"),

yaxlabels = c("< 20 mm/h", "> 20 mm/h"), data = plasma)

cdplot(ESR ~ globulin, col = c("coral", "skyblue"),

yaxlabels = c("< 20 mm/h", "> 20 mm/h"), data = plasma)

При расчете кривых плотности вероятности функция cdplot() обращается к функции density(). Поэтому непосредственно при вызове cdplot() можно изменять некоторые параметры density(), например, величину сглаживания кривой (аргумент bw):

cdplot(ESR ~ fibrinogen, col = c("coral", "skyblue"),

yaxlabels = c("< 20 mm/h", "> 20 mm/h"), bw = 0.9, data = plasma)

cdplot(ESR ~ globulin, col = c("coral", "skyblue"),

yaxlabels = c("< 20 mm/h", "> 20 mm/h"), bw = 0.9, data = plasma)

СПИСОК ЛИТЕРАТУРЫ

Книги и учебные пособия:

  • A Handbook of Statistical Analyses Using R, Second Edition by Torsten Hothorn and Brian S. Everitt (2010), SBN-10: 1420079336, 361 p.

  • Буховец А. Г., Москалев П. В., Богатова В. П., Бирючинская Т. Я. (2010) Статистический анализ данных в системе R. Учебное пособие. Воронеж: ВГАУ, 124 с. 

  • Зарядов И. С. (2010) Введение в статистический пакет R: типы переменных, структуры данных, чтение и запись информации, графика. М.: Издательство Российского университета дружбы народов, 207 с.

  • Зарядов И. С. (2010) Статистический пакет R: теория вероятностей и математическая статистика.  М.: Издательство Российского университета дружбы народов, 141 с.

Журнальные статьи:

  • Шипунов А., Балдин Е. (2008) Введение в R. Часть 1. Linux Format 100/101: 98-101.

Методические указания:

  • Меретилов М. А. (2006) Методические указания к лабораторным работам по курсу "Методы анализа данных". Красноярск: КГТУ. 

  • Дружков П. Н., Золотых Н. Ю., Половинкин А. Н. (2013) Лабораторный практикум по машинному обучению: Введение в систему R. Нижний Новгород: НГУ им. Н. И. Лобачевского. 

Документация по R:

  • Мастицкий С. Э. (2011) Работа с RStudio. Перевод официального руководства пользователя. 

  • Справочник по R. Автор перевода и точная дата неизвестны.

Conditional Density Plots

Package: vcd

Version: 1.3-1

Описание:

Подсчитывает и выводит на графике условную плотность распределения безусловной переменной ''y'' изменяющуюся относительно численной переменной ''x''.

Применение:

cd_plot(x, ...)

## S3 method for class 'default':

cd_plot((x, y,

plot = TRUE, ylab_tol = 0.05,

bw = "nrd0", n = 512, from = NULL, to = NULL,

main = "", xlab = NULL, ylab = NULL, margins = c(5.1, 4.1, 4.1, 3.1),

gp = gpar(), name = "cd_plot", newpage = TRUE, pop = TRUE,

...))

## S3 method for class 'formula':

cd_plot((formula, data = list(),

plot = TRUE, ylab_tol = 0.05,

bw = "nrd0", n = 512, from = NULL, to = NULL,

main = "", xlab = NULL, ylab = NULL, margins = c(5.1, 4.1, 4.1, 3.1),

gp = gpar(), name = "cd_plot", newpage = TRUE, pop = TRUE,

...))

Аргументы:

main: создание названия графика

xlab и ylab служат для изменения названий осей X и Y 

bw, n, from, to, ... передаются к density.

При помощи функции density( ) выполняется оценка плотности вероятности.

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

y: коэффициент определяющий зависимую переменную

x: обэект или метод, по умолчанию ожидающий числовую переменную

data: произвольный объем данных

formula: "формула" типа у ~ х с одним зависимым «аргументом» и одной численной переменной.

plot: график, но только если были внесены значения.

ylab_tol: параметр допустимого отклонения на оси ‘’y’’. Если расстояние между двумя точками находится в этом промежутке, то они построены на одинаковом расстоянии.

margin: устанавливает ограничения при вызове функции plotViewport

gp: Объект управляющий набором графических параметров прямоугольников.

newpage: логический. Следует за вызовом функции grid.newpage.

pop: логический.

name: название просматриваемой области.

Подробности:

Представленный метод подобен «спинограмме (spine plot)», но они не дискретизируют независимую переменную, а использовать другой подход. Кроме того, используется оригинальная ось х, а не искаженная, как для spinograms.