рекомендации

среда, 3 марта 2021 г.

Матрицы рассеяния в R

Я только что обнаружил в R удобную функцию для создания матрицы диаграмм рассеяния выбранных переменных в наборе данных. Базовая графическая функция - pair(). Создание этих графиков может быть полезно при изучении ваших данных, особенно с использованием второго из приведенных ниже методов.

Попробуйте это на встроенном наборе данных iris (набор данных дает измерения в см переменных длины и ширины чашелистника и длины и ширины лепестков, соответственно, для 50 цветков каждого из 3 видов ириса, Iris setosa, versicolor и virginica).
# Load the iris dataset.
data(iris)
 
# Plot #1: Basic scatterplot matrix of the four measurements
pairs(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width, data=iris)

Просматривая страницу справки по pairs, я обнаружил, что есть еще одна встроенная функция, panel.smooth(), которую можно использовать для построения кривой ошибок для каждого графика в матрице рассеяния. Передайте эту функцию аргументу lower.panel функции pairs. Функция panel.cor() ниже может вычислять абсолютную корреляцию между парами переменных и отображать их на верхних панелях с размером шрифта, пропорциональным абсолютному значению корреляции.
# panel.smooth function is built in.
# panel.cor puts correlation in upper panels, size proportional to correlation
panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(x, y))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
    text(0.5, 0.5, txt, cex = cex.cor * r)
}
 
# Plot #2: same as above, but add loess smoother in lower and correlation in 
upper
pairs(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width, data=iris,
      lower.panel=panel.smooth, upper.panel=panel.cor, 
      pch=20, main="Iris Scatterplot Matrix")

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

# Plot #3: similar plot using ggplot2
# install.packages("ggplot2") ## uncomment to install ggplot2

library(ggplot2)

plotmatrix(with(iris, data.frame(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)))


Подробнее о функции pairs здесь.

Оригинал: Scatterplot matrices in R

Комментариев нет:

Отправить комментарий