Я только что обнаружил в 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
Комментариев нет:
Отправить комментарий