03.06.2019 | Добавил: Narizhny | Просмотров: 110
Диаграмма рассеяния в R

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

В базовой версии программы R для построения scatterplot используется функция plot(x,y), где x и y – числовые вектора (переменные значения), определяющие координаты точек на диаграмме. Таблица с данными была предварительно сформирована в программе Excel и далее загружена в среду R с помощью пакета library(readxl). Вот так выглядит фрагмент таблицы:

В нашем случае x= количество удобрений, y=объем урожая.

Значения переменных измеряются в тоннах, а каждое отдельное наблюдение за каждый год – это поле со своей площадью и с примерно равным объемом внесения удобрений на единицу этой площади (гектар).

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

Программный код выглядит следующим образом:

> plot(удобрения, урожай, data=g, col="red", xlab="К-во удобрений, т", ylab="Объем урожая пшеницы, т")

Команда data в программном коде определяет таблицу данных или объект, который содержит необходимые для построения графика переменные в поименованных колонках или векторах. Другие команды, указанные в скобках кода, задают атрибуты оформления самого графика (цвет точек на диаграмме, подписи осей и т.д).

При необходимости можно добавить на график аппроксимирующую регрессионную линию с помощью функции abline() или сглаживающую кривую функцией lowess(). Программный код ниже:

> abline(lm(урожай~удобрения, data=g), col="blue", lwd=1, lty=1)
> lines(lowess(урожай~удобрения, data=g), col="red", lwd=2, lty=2)

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

Команда lm(formula или “~”) – основная функция в R для подгонки регрессионных моделей. Формула означает, что значение y (урожай) мы будем предсказывать по значению  x (удобрения). Записывается  формула через знак “~”. Обратите внимание, что в графической функции plot() сначала записывается переменная x и далее через запятую y – как координаты осей для построения графика.

Дополнительные пакеты R значительно расширяют стандартные возможности программы.

Например, установив пакет library(car), мы можем построить график для данных, разбитых на подгруппы или факторы. В нашем случае мы определяем разницу во взаимосвязи 2 переменных на 2 уровнях фактора «год»: 2017 и 2018.

> library(car)
> scatterplot(урожай~удобрения|год,  data=g, col=3:4, pch=c(15,16), xlab="К-во удобрений, т", ylab="Объем урожая пшеницы, т")

Функция scatterplot из пакета car позволяет нам увидеть различия в данных по годам.

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

Также удобно рассматривать данные в виде матрицы – особенно если мы работаем не с одной парой переменных, а с несколькими. В базовом варианте функция pairs() используется для этой цели.

Формат записи на примере встроенной в R таблицы данных Duncan:

> pairs(~income+education+prestige, data=Duncan, col="red", pch=15)

Все переменные, указанные справа от знака “~”, показываются на графике.

Здесь мы имеем 3 переменные с графиком взаимосвязи для каждой пары. Матрица содержит 6 графиков: 3 в верхней панели и 3 в нижней панели от диагонали с названиями переменных. Они идентичны.

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

> pairs(~income+education+prestige, data=Duncan, col="red", pch=15, upper.panel=NULL)

Подобную матрицу, но с дополнительными опциями, можно построить с помощью уже упомянутого пакета car:

> scatterplotMatrix(~урожай+удобрения|год, data=g, col=3:4, pch=c(15,16), cex=1.0, var.labels=c("Валовый урожай, т", "Удобрение, т"))

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

> scatterplotMatrix(~урожай+удобрения|год, data=g, col=3:4, pch=c(15,16), cex=1.0, var.labels=c("Валовый урожай, т", "Удобрение, т", ellipse=TRUE))

Согласитесь, что данные типы диаграмм достаточно хорошо и информативно дополнят любой рабочий отчет или проект 6σ.

Естественно, что возможности среды R  описанными выше функциями не ограничиваются. Но в любом случае, чтобы больше узнать, какие значения возвращает любая функция в рабочем окне программы, можно набрать для примера: “help(scatterplot)” или “?scatterplot”.

Лин6Сигм / 03.06.2019 | Просмотров: 110 | Добавил: Narizhny | Всего комментариев: 0 / Теги: язык R, Диаграмма рассеяния, Scatterplot
ПОХОЖИЕ МАТЕРИАЛЫ


  Добавить комментарий
avatar
SixSigmaOnline.ru © 2009-2019            Хостинг от uWeb